{
  // http://dev.chromium.org/blink/runtime-enabled-features
  //
  // This list is used to generate runtime_enabled_features.h/cc which contains
  // a class that stores static enablers for all experimental features.

  parameters: {
    // Each feature can be assigned a "status":
    // * status=stable: Enable this in all Blink configurations. We are
    //   committed to these APIs indefinitely.
    // * status=experimental: In-progress features, Web Developers might play
    //   with, but are not on by default in stable.
    // * status=test: Enabled in ContentShell for testing, otherwise off.
    // Features without a status are not enabled anywhere by default.
    //
    // "stable" features listed here should be rare, as anything which we've
    // shipped stable can have its runtime flag removed soon after.
    status: {
      valid_values: ["stable", "experimental", "test"],
    },

    // "implied_by" or "depends_on" specifies relationship to other features:
    // * implied_by: ["feature1","feature2",...]
    //   The feature is automatically enabled if any implied_by features is
    //   enabled;
    // * depends_on: ["feature1","feature2",...]
    //   The feature is enabled only if all depends_on features are enabled.
    // Only one of "implied_by" and "depends_on" can be specified.
    implied_by: {
      default: [],
      valid_type: "list",
    },
    depends_on: {
      default: [],
      valid_type: "list",
    },

    // origin_trial_feature_name: "FEATURE_NAME" is used to integrate the
    // feature with the Origin Trials framework. The framework allows the
    // feature to be enabled at runtime on a per-page basis through a signed
    // token for the corresponding feature name. Declaring the
    // origin_trial_feature_name will cause a static method to be generated in
    // origin_trials.h/cpp. This static method allows the feature implementation
    // to check if it is enabled for the current context.
    origin_trial_feature_name: {
    },
    origin_trial_os: {
      default: [],
      valid_type: "list",
    },

    // settable_from_internals specifies whether a feature can be set from
    // internals.runtimeFlags, with the default being false.
    settable_from_internals: {
      valid_type: "bool",
    },

    // Set to true to have customised {feature}Enabled() method implementation.
    custom: {
      valid_type: "bool",
    },

    // Feature policy IDL extended attribute (see crrev.com/2247923004).
    feature_policy: {
    },
  },

  data: [
    {
      name: "Accelerated2dCanvas",
      settable_from_internals: true,
      status: "stable",
    },
    {
      name: "AccessibilityObjectModel",
      status: "experimental",
    },
    {
      name: "AdTagging",
      status: "test",
    },
    {
      name: "AllowActivationDelegationAttr",
    },
    {
      name: "AllowContentInitiatedDataUrlNavigations",
      status: "stable",
    },
    {
      name: "AnimationWorklet",
      origin_trial_feature_name: "AnimationWorklet",
      status: "experimental",
    },
    {
      name: "AsyncClipboard",
      status: "experimental",
    },
    {
      name: "AudioOutputDevices",
      status: "stable",
    },
    {
      name: "AudioVideoTracks",
      status: "experimental",
    },
    {
      name: "AutomationControlled",
      settable_from_internals: true,
    },
    {
      // Flag set by the media::kAutoplayIgnoreWebAudio feature flag.
      name: "AutoplayIgnoresWebAudio",
      settable_from_internals: true,
    },
    {
      name: "BackgroundFetch",
      status: "experimental",
    },
    {
      name: "BackgroundVideoTrackOptimization",
      status: "stable",
    },
    {
      name: "Badging",
      status: "test",
    },
    {
      name: "BlinkGenPropertyTrees",
    },
    {
      name: "BlinkRuntimeCallStats",
    },
    {
      name: "BloatedRendererDetection",
      status: "experimental",
    },
    {
      // Detects bloated renderers even if the uptime is small.
      // Useful for local testing, not intended for production.
      name: "BloatedRendererDetectionSkipUptimeCheck",
    },
    {
      name: "BlockCredentialedSubresources",
      status: "stable",
    },
    {
      name: "BlockingDownloadsInSandbox",
    },
    {
      name: "BlockMetaSetCookie",
      status: "stable"
    },
    {
      name: "CacheInlineScriptCode"
    },
    {
      name: "CacheStorageAddAllRejectsDuplicates",
      status: "experimental",
    },
    {
      name: "CacheStyleSheetWithMediaQueries",
      status: "experimental",
    },
    {
      name: "CallCaptureListenersAtCapturePhaseAtShadowHosts",
      status: "stable",
    },
    {
      name: "Canvas2dContextLostRestored",
      status: "experimental",
    },
    {
      name: "Canvas2dFixedRenderingMode",
      status: "test",
    },
    {
      name: "Canvas2dImageChromium",
    },
    {
      name: "Canvas2dScrollPathIntoView",
      status: "experimental",
    },
    {
      name: "CanvasColorManagement",
      status: "experimental",
    },
    {
      name: "CanvasHitRegion",
      status: "experimental",
    },
    {
      name: "CanvasImageSmoothing",
      status: "experimental",
    },
    {
      name: "ClickRetargetting",
      status: "experimental",
    },
    {
      name: "ClientPlaceholdersForServerLoFi",
    },
    {
      name: "CompositedSelectionUpdate",
    },
    {
      name: "CompositeOpaqueFixedPosition",
      settable_from_internals: true,
      status: "experimental",
    },
    {
      name: "CompositorTouchAction",
      status: "test",
    },
    {
      name: "ComputedAccessibilityInfo",
      status: "experimental",
    },
    {
      name: "ConstructableStylesheets",
      status: "experimental",
    },
    {
      name: "ContextMenu",
      status: "experimental",
    },
    {
      name: "CookieStore",
      origin_trial_feature_name: "CookieStore",
      status: "experimental",
    },
    {
      name: "CorsRFC1918",
    },
    {
      name: "CSS3Text",
      status: "experimental",
    },
    {
      name: "CSSAdditiveAnimations",
      depends_on: ["StackedCSSPropertyAnimations"],
      status: "experimental",
    },
    {
      name: "CSSBackdropFilter",
      status: "experimental",
    },
    {
      name: "CSSEnvironmentVariables",
      status: "stable",
    },
    {
      name: "CSSFocusVisible",
      status: "experimental",
    },
    {
      name: "CSSFontSizeAdjust",
      status: "experimental",
    },
    {
      name: "CSSFragmentIdentifiers"
    },
    {
      name: "CSSHexAlphaColor",
      status: "stable",
    },
    {
      name: "CSSInBodyDoesNotBlockPaint",
      status: "stable",
    },
    {
      name: "CSSIndependentTransformProperties",
      status: "experimental",
    },
    {
      name: "CSSLayoutAPI",
      status: "experimental",
    },
    {
      name: "CSSLogical",
      status: "experimental",
      settable_from_internals: true,
    },
    {
      name: "CSSMaskSourceType",
      status: "experimental",
    },
    {
      name: "CSSMatches",
      status: "experimental",
    },
    {
      name: "CSSOffsetPathRay",
      status: "experimental",
    },
    {
      name: "CSSOffsetPathRayContain",
      status: "experimental",
    },
    {
      name: "CSSOffsetPositionAnchor",
      status: "experimental",
    },
    {
      name: "CSSOMSmoothScroll",
      status: "stable",
    },
    // Do not ship CSSPaintAPIArguments without shipping CSSVariables2 first.
    //
    // CSSPaintAPIArguments depends on parts of the the 'CSS Properties and
    // Values API Level 1', specification (section 'Supported syntax strings').
    // That specification is implemented behind the runtime enabled feature
    // CSSVariables2.
    {
      name: "CSSPaintAPIArguments",
      status: "experimental",
    },
    {
      name: "CSSPartPseudoElement",
      status: "experimental",
    },
    {
      name: "CSSPseudoIS",
      status: "experimental",
    },
    {
      name: "CSSScrollSnapPoints",
      status: "stable",
    },
    {
      name: "CSSSnapSize",
      status: "experimental",
    },
    {
      name: "CSSVariables2",
      status: "experimental",
    },
    {
      name: "CSSViewport",
      status: "experimental",
    },
    {
      name: "CustomElementDefaultStyle",
      status: "experimental",
    },
    // Introduced this flag as stable so web developers can test their sites
    // without native Custom Elements v0 support.
    {
      name: "CustomElementsV0",
      status: "stable",
    },
    {
      name: "CustomUserTiming",
    },
    {
      name: "Database",
      status: "stable",
    },
    {
      name: "DecodeToYUV",
      status: "experimental",
    },
    {
      name: "DeprecationReporting",
      status: "stable",
    },
    {
      name: "DesktopCaptureDisableLocalEchoControl",
      status: "experimental",
    },
    {
      name: "DisableHardwareNoiseSuppression",
      origin_trial_feature_name: "DisableHardwareNoiseSuppression",
      status: "experimental",
    },
    {
      name: "DisplayCutoutAPI",
      settable_from_internals: true,
    },
    {
      name: "DisplayNoneIFrameCreatesNoLayoutObject",
      status: "stable",
    },
    {
      name: "DocumentCookie",
    },
    {
      name: "DocumentDomain",
    },
    {
      name: "DocumentWrite",
    },
    {
      // http://crbug.com/707656 content editable in LayoutNG.
      name: "EditingNG",
    },
    {
      // https://crbug.com/879270
      name: "ElementTiming",
      status: "test",
    },
    {
      name: "EncodingStreams",
      status: "stable",
    },
    {
      name: "EncryptedMediaEncryptionSchemeQuery",
      status: "test",
    },
    {
      name: "EncryptedMediaHdcpPolicyCheck",
      origin_trial_feature_name: "EncryptedMediaHdcpPolicyCheck",
      status: "experimental",
    },
    {
      name: "EncryptedMediaPersistentUsageRecordSession",
      status: "test",
    },
    {
      name: "EventTiming",
      origin_trial_feature_name: "EventTiming",
      status: "experimental",
    },
    {
      name: "ExecCommandInJavaScript",
      status: "test",
    },
    {
      name: "ExpensiveBackgroundTimerThrottling",
      status: "stable",
    },
    {
      name: "ExperimentalContentSecurityPolicyFeatures",
      status: "experimental",
    },
    {
      name: "ExperimentalHardwareEchoCancellation",
      origin_trial_feature_name: "ExperimentalHardwareEchoCancellation2",
      status: "experimental",
    },
    // Enables a set of features intended to help improve web developer
    // productivity, by restricting the use of potentially problematic web-
    // platform behaviors, as well as adding new high-level APIs for common
    // development patterns.
    {
      name: "ExperimentalProductivityFeatures",
      status: "experimental"
    },
    {
      // Enables the attribute performance.shouldYield in windows. This
      // attribute indicates that the frame should pause its current task so
      // that the browser can perform some high priority work. See
      // https://crbug.com/836310.
      name: "ExperimentalShouldYield",
      status: "experimental"
    },
    {
      name: "ExperimentalV8Extras",
      status: "experimental",
    },
    {
      name: "ExtendedTextMetrics",
      status: "experimental",
    },
    {
      name: "ExtraWebGLVideoTextureMetadata",
      status: "experimental",
    },
    {
      name: "FastMobileScrolling",
    },
    {
      name: "FeaturePolicyJavaScriptInterface",
      origin_trial_feature_name: "FeaturePolicyJSAPI",
      status: "experimental"
    },
    {
      name: "FeaturePolicyReporting",
      status: "experimental"
    },
    {
      name: "FeaturePolicyVibrateFeature"
    },
    {
      name: "FileSystem",
      status: "stable",
    },
    {
      name: "FontCacheScaling",
      status: "test",
    },
    {
      name: "FontSrcLocalMatching",
      // No status, as the web platform runtime enabled feature is controlled by
      // a Chromium level feature.
    },
    // For simulating Android's overlay fullscreen video in layout tests on Linux.
    {
      name: "ForceOverlayFullscreenVideo",
    },
    {
      name: "ForceTallerSelectPopup",
    },
    {
      name: "FormDataEvent",
      status: "experimental",
    },
    {
      name: "FractionalMouseEvent",
    },
    {
      name: "FractionalMouseTypePointerEvent",
      status: "stable",
    },
    {
      name: "FractionalScrollOffsets",
    },
    {
      name: "FramebustingNeedsSameOriginOrUserGesture",
      settable_from_internals: true,
      status: "stable",
    },
    {
      name: "FramesTimingFunction",
      status: "experimental",
    },
    {
      name: "FullscreenOptions",
      status: "stable",
    },
    {
      name: "FullscreenUnprefixed",
      settable_from_internals: true,
      status: "stable",
    },
    {
      name: "GamepadButtonAxisEvents",
      status: "experimental",
    },
    {
      name: "GamepadExtensions",
      status: "experimental",
    },
    {
      name: "GamepadVibration",
      status: "experimental",
    },
    {
      name: "GetDisplayMedia",
      status: "experimental",
    },
    {
      name: "HeapCompaction",
      status: "stable",
    },
    {
      name: "HeapIncrementalMarking",
      status: "stable",
    },
    {
      name: "HeapIncrementalMarkingStress"
    },
    {
      name: "HeapUnifiedGarbageCollection",
    },
    // Only exposed when a translation engine is available
    // and experimental features are enabled.
    {
      name: "HrefTranslate",
    },
    // https://crbug.com/766694 for testing disabling the feature.
    {
      name: "HTMLImports",
      status: "stable",
    },
    // https://crbug.com/523952 for testing disabling the feature.
    {
      name: "HTMLImportsStyleApplication",
      status: "stable",
    },
    {
      name: "IDBObserver",
      status: "experimental",
    },
    {
      name: "IdleTimeColdModeSpellChecking",
      status: "stable",
    },
    {
      name: "ImageOrientation",
      status: "test",
    },
    {
      name: "ImplicitRootScroller",
      status: "experimental",
      settable_from_internals: true,
    },
    {
      name: "InertAttribute",
      status: "experimental",
    },
    {
      name: "InputMultipleFieldsUI",
      status: "stable",
    },
    {
      name: "InstalledApp",
      origin_trial_feature_name: "InstalledApp",
      status: "experimental",
    },
    {
      name: "IntersectionObserverV2",
    },
    {
      name: "InterventionReporting",
      status: "stable",
    },
    {
      name: "InvisibleDOM",
      status: "experimental",
    },
    {
      name: "IsolatedCodeCache",
      status: "experimental",
    },
    {
      // Tracks "jank" from layout objects changing their visual location
      // between animation frames (see crbug.com/581518).
      name: "JankTracking",
      status: "experimental",
    },
    {
      name: "KeyboardMap",
      status: "stable",
    },
    {
      name: "LangAttributeAwareFormControlUI",
    },
    {
      name: "LayeredAPI",
      implied_by: ["ExperimentalProductivityFeatures"],
    },
    {
      name: "LayoutNG",
      implied_by: ["LayoutNGBlockFragmentation", "LayoutNGFieldset", "LayoutNGFlexBox", "EditingNG"],
    },
    {
      name: "LayoutNGBlockFragmentation",
    },
    {
      name: "LayoutNGFieldset",
    },
    {
      name: "LayoutNGFlexBox",
    },
    {
      name: "LayoutNGFragmentCaching",
      implied_by: ["LayoutNG"],
    },
    {
      name: "LazyFrameLoading",
    },
    {
      name: "LazyFrameVisibleLoadTimeMetrics",
    },
    {
      name: "LazyImageLoading",
    },
    {
      name: "LazyImageVisibleLoadTimeMetrics",
    },
    {
      name: "LazyInitializeMediaControls",
      // This is enabled by features::kLazyInitializeMediaControls.
    },
    {
      name: "LongTaskV2",
    },
    {
      name: "LowLatencyCanvas",
      origin_trial_feature_name: "LowLatencyCanvas",
      status: "experimental",
    },
    {
      name:"ManualSlotting",
      status:"experimental",
    },
    {
      name: "MediaCapabilities",
      origin_trial_feature_name: "MediaCapabilities",
      status: "stable",
    },
    {
      name: "MediaCapabilitiesEncodingInfo",
      status: "experimental",
    },
    {
      name: "MediaCapture",
    },
    {
      name: "MediaCaptureDepth",
      status: "experimental",
    },
    {
      name: "MediaCaptureDepthVideoKind",
      status: "experimental",
    },
    // Set to reflect the MediaCastOverlayButton feature.
    {
      name: "MediaCastOverlayButton",
    },
    {
      name: "MediaControlsExpandGesture"
    },
    {
      name: "MediaControlsOverlayPlayButton",
      settable_from_internals: true,
    },
    {
      name: "MediaDocumentDownloadButton",
    },
    // Set to reflect the kMediaEngagementBypassAutoplayPolicies feature.
    {
      name: "MediaEngagementBypassAutoplayPolicies",
    },
    {
      name: "MediaQueryShape",
      status: "experimental",
    },
    // MediaSession is enabled by default on Android only.
    // TODO(rbyers): Add parameter to specify platform.
    {
      name: "MediaSession",
      status: "test",
    },
    {
      name: "MediaSourceExperimental",
      status: "experimental",
    },
    {
      name: "MediaSourceNewAbortAndDuration",
      status: "experimental",
    },
    {
      name: "MediaStreamTrackContentHint",
      status: "stable",
    },
    // This is enabled by default on Windows only. The only part that's
    // "experimental" is the support on other platforms.
    {
      name: "MiddleClickAutoscroll",
      status: "test",
    },
    {
      name: "MobileLayoutTheme",
    },
    {
      name: "ModernMediaControls",
    },
    {
      name: "ModuleDedicatedWorker",
      status: "experimental",
    },
    {
      name: "ModulePreload",
      status: "stable",
    },
    {
      name: "ModuleServiceWorker",
      status: "test",
    },
    {
      name: "MojoJS",
      status: "test",
    },
    // MojoJSTest is used exclusively in testing environments, whereas MojoJS
    // may also be used elsewhere.
    {
      name: "MojoJSTest",
      status: "test",
    },
    {
      name: "NavigatorContentUtils",
    },
    {
      name: "NavigatorDeviceMemory",
      status: "stable",
    },
    {
      name: "NestedWorkers",
      status: "stable",
    },
    {
      name: "NetInfoDownlinkHeader",
      status: "stable",
    },
    {
      name: "NetInfoDownlinkMax",
      status: "stable",
    },
    {
      name: "NetInfoEffectiveTypeHeader",
      status: "stable",
    },
    {
      name: "NetInfoRttHeader",
      status: "stable",
    },
    {
      name: "NetworkService",
    },
    // Not a web exposed feature, enabled from the command line.
    {
      name: "NewRemotePlaybackPipeline",
    },
    {
      name: "NoHoverAfterLayoutChange",
      settable_from_internals: true,
    },
    {
      name: "NoIdleEncodingForLayoutTests",
      status: "test",
    },
    {
      name: "NotificationConstructor",
      status: "stable",
    },
    // NotificationContentImage is not available in all platforms
    {
      name: "NotificationContentImage",
      status: "test",
    },
    {
      name: "NotificationInlineReplies",
      status: "stable",
    },
    {
      name: "Notifications",
      status: "stable",
    },
    {
      name: "NullableDocumentDomain",
      status: "experimental",
    },
    {
      name: "OffMainThreadCSSPaint",
    },
    {
      name: "OffMainThreadWebSocket",
    },
    {
      name: "OffscreenCanvas",
      status: "stable",
    },
    {
      name: "OffscreenCanvasCommit",
      status: "experimental",
    },
    {
      name: "OffscreenCanvasText",
      status: "stable",
    },
    {
      name: "OnDeviceChange",
      status: "stable",
    },
    {
      name: "OrientationEvent",
    },
    {
      name: "OriginTrials",
      status: "stable",
    },
    // Define a sample API for testing integration with the Origin Trials
    // Framework. The sample API is used in both unit and layout 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.
    {
      name: "OriginTrialsSampleAPI",
      origin_trial_feature_name: "Frobulate",
    },
    // Define a sample API for testing integration with the Origin Trials
    // Framework. The sample API is used in both unit and layout 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.
    {
      name: "OriginTrialsSampleAPIImplied",
      origin_trial_feature_name: "FrobulateImplied",
      implied_by: ["OriginTrialsSampleAPI"],
    },
    {
      name: "OutOfBlinkCORS",
    },
    {
      name: "OverflowIconsForMediaControls",
    },
    {
      name: "OverlayScrollbars",
      settable_from_internals: true,
    },
    {
      name: "PageLifecycle",
      status: "stable",
    },
    {
      name: "PagePopup",
      status: "stable",
    },
    // Compute touch action rects in paint instead of ScrollingCoordinator.
    {
      name: "PaintTouchActionRects",
    },
    // PaintTracking enables the Largest Text Paint metric, Last Text Paint
    // metric, Largest Image Paint metric and Last Image Paint metric.
    // See also: https://docs.google.com/document/d/1DRVd4a2VU8-yyWftgOparZF-sf16daf0vfbsHuz2rws/edit
    {
      name: "PaintTracking",
    },
    {
      name: "PaintUnderInvalidationChecking",
      settable_from_internals: true,
    },
    {
      name: "PassiveDocumentEventListeners",
      status: "stable",
    },
    {
      name: "PassiveDocumentWheelEventListeners",
    },
    {
      name: "PassPaintVisualRectToCompositor",
    },
    {
      name: "PaymentApp",
      status: "experimental",
    },
    // PaymentRequest is enabled by default on Android
    {
      name: "PaymentRequest",
      status: "experimental",
    },
    {
      name: "PaymentRetry",
      status: "experimental",
    },
    {
      name: "PerformanceNavigationTiming2",
      status: "stable",
    },
    {
      name: "PermissionDelegation",
      status: "test",
    },
    {
      name: "Permissions",
      status: "stable",
    },
    {
      name: "PermissionsRequestRevoke",
      status: "experimental",
    },
    {
      name: "PictureInPicture",
      settable_from_internals: true,
    },
    // Picture-in-Picture API is disabled by default on Android.
    {
      name: "PictureInPictureAPI",
      status: "stable",
    },
    {
      name: "PictureInPictureControl",
      status: "experimental",
    },
    {
      name: "PointerRawMove",
      status: "experimental",
    },
    {
      name: "Portals",
      status: "test",
    },
    {
      name: "PostMessageOptions",
      status: "stable",
    },
    {
      name: "PreciseMemoryInfo",
    },
    // This feature is deprecated and we are evangelizing affected sites.
    // See https://crbug.com/346236 for current status.
    {
      name: "PrefixedVideoFullscreen",
      status: "stable",
    },
    {
      name: "PreloadDefaultIsMetadata",
      status: "stable",
    },
    {
      name: "PreloadImageSrcSet",
      status: "experimental",
    },
    {
      name: "Presentation",
      status: "stable",
    },
    {
      name: "PrintBrowser",
    },
    {
      name: "PriorityHints",
      status: "experimental",
    },
    {
      name: "PushMessaging",
      status: "stable",
    },
    {
      name: "PWAFullCodeCache"
    },
    {
      name: "RasterInducingScroll",
      status: "experimental",
    },
    {
      name: "ReducedReferrerGranularity",
    },
    {
      name: "RemotePlayback",
      status: "stable",
    },
    // Whether or not the Remote Playback API backend is implemented.
    // Not web-exposed, set per platform. For LayoutTests, disabled by
    // default.
    {
      name: "RemotePlaybackBackend",
      settable_from_internals: true,
    },
    {
      name: "RenderingPipelineThrottling",
      status: "stable",
    },
    {
      name: "ReportingObserver",
      implied_by: ["DeprecationReporting", "InterventionReporting"],
      status: "stable",
    },
    {
      name: "RequireCSSExtensionForFile",
      status: "stable",
    },
    {
      name: "ResourceLoadScheduler",
      status: "experimental",
    },
    {
      name: "RestrictAppCacheToSecureContexts",
      status: "stable",
    },
    // Enables the use of the RTCIceTransport with extensions.
    {
      name: "RTCIceTransportExtension",
      status: "test",
    },
    {
      name: "RtcPeerConnectionId",
      origin_trial_feature_name: "RtcPeerConnectionId",
      status: "experimental",
    },
    // Enables the use of the RTCQuicStream object.
    {
      name: "RTCQuicStream",
      status: "test",
    },
    // Enables the use of the RTCQuicTransport object.
    {
      name: "RTCQuicTransport",
      status: "test",
    },
    {
      name: "RTCRtpSenderParameters",
      status: "stable",
    },
    // Enables the use of |RTCConfiguration::sdpSemantics| to override the
    // default SDP semantics at RTCPeerConnection construction.
    {
      name: "RTCUnifiedPlan",
      status: "stable",
    },
    // Overrides the default SDP semantics to be Unified Plan at
    // RTCPeerConnection construction (unless otherwise specified).
    {
      name: "RTCUnifiedPlanByDefault",
    },
    {
      name: "ScheduledScriptStreaming",
    },
    {
      name: "ScriptedSpeech",
      status: "stable",
    },
    // Serialize and restore scroll anchors.
    {
      name: "ScrollAnchorSerialization",
    },
    {
      name: "ScrollCustomization",
    },
    // Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left
    // as per the spec, matching other Web engines.
    {
      name: "ScrollTopLeftInterop",
      status: "stable",
    },
    {
      name: "SecMetadata",
      status: "experimental"
    },
    {
      name: "SendBeaconThrowForBlobWithNonSimpleType",
      status: "stable",
    },
    {
      name: "SendMouseEventsDisabledFormControls",
      status: "experimental",
    },
    {
      name: "Sensor",
      status: "stable",
    },
    {
      name: "SensorExtraClasses",
      depends_on: ["Sensor"],
      status: "experimental",
    },
    {
      name: "Serial",
      status: "experimental",
    },
    {
      name: "ServiceWorkerScriptFullCodeCache",
    },
    {
      name: "SetRootScroller",
      status: "experimental",
    },
    // Introduced this flag as stable so web developers can test their sites
    // without native Shadow DOM v0 support
    {
      name: "ShadowDOMV0",
      status: "stable",
    },
    {
      name: "ShadowPiercingDescendantCombinator",
      status: "experimental",
    },
    {
      name: "ShapeDetection",
      origin_trial_feature_name: "ShapeDetection",
      status: "experimental",
    },
    {
      name: "SharedArrayBuffer",
      status: "stable",
    },
    {
      name: "SharedWorker",
      status: "stable",
    },
    {
      name: "SignatureBasedIntegrity",
      origin_trial_feature_name: "SignatureBasedIntegrity",
      status: "experimental",
    },
    {
      name: "SignedHTTPExchange",
    },
    {
      name: "SlimmingPaintV2",
    },
    {
      name: "SMIL",
      status: "stable",
    },
    {
      name: "SmoothScrollJSIntervention",
      status: "stable",
    },
    // 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.
    {
      name: "StableBlinkFeatures",
      status: "stable",
    },
    {
      name: "StackedCSSPropertyAnimations",
      status: "experimental",
    },
    {
      name: "StaleWhileRevalidate",
      origin_trial_feature_name: "StaleWhileRevalidate",
      status: "experimental",
    },
    {
      name: "TextUnderlinePositionLeftRight",
      status: "stable",
    },
    {
      name: "TimerThrottlingForBackgroundTabs",
      status: "stable",
    },
    {
      name: "TimerThrottlingForHiddenFrames",
      status: "stable",
    },
    // 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.
    {
      name: "TouchEventFeatureDetection",
      origin_trial_feature_name: "ForceTouchEventFeatureDetectionForInspector",
      status: "stable",
    },
    // This is set conditionally in SetRuntimeFeaturesDefaultsAndUpdateFromArgs
    // and will eventually go away when the touchpad/wheel scroll latching is
    // enabled on all platforms (http://crbug.com/526463).
    {
      name: "TouchpadAndWheelScrollLatching",
    },
    // When enabled, tracks the number of times each LayoutBlock
    // goes through layout. For testing purposes only.
    {
      name: "TrackLayoutPassesPerBlock",
    },
    {
      name: "TrustedDOMTypes",
      status: "experimental",
    },
    {
      name: "TrustedEventsDefaultAction",
      status: "stable",
    },
    {
      name: "UnclosedFormControlIsInvalid",
      status: "experimental",
    },
    {
      name: "UnifiedTouchAdjustment",
      status: "stable",
    },
    {
      name: "UserActivationAPI",
      status: "experimental",
    },
    {
      name: "UserActivationV2",
    },
    {
      name: "V8ContextSnapshot",
      status: "test",
    },
    {
      name: "V8IdleTasks",
    },
    {
      name: "VideoFullscreenDetection",
    },
    {
      name: "VideoFullscreenOrientationLock",
    },
    {
      name: "VideoRotateToFullscreen",
    },
    {
      name: "VisibilityCollapseColumn",
    },
    {
      name: "WakeLock",
      status: "experimental",
    },
    {
      name: "WakeLockNavigator",
      status: "experimental",
    },
    {
      name: "WebAnimationsAPI",
      status: "experimental",
    },
    {
      name: "WebAnimationsSVG",
      status: "experimental",
    },
    {
      name: "WebAssemblyThreads",
      origin_trial_feature_name: "WebAssemblyThreads",
      status: "experimental",
    },
    {
      name: "WebAuth",
      status: "experimental",
    },
    {
      name: "WebAuthGetTransports",
      status: "experimental",
    },
    // WebBluetooth is enabled by default on Android, ChromeOS and Mac.
    {
      name: "WebBluetooth",
      status: "experimental",
    },
    {
      name: "WebFontsCacheAwareTimeoutAdaptation",
      status: "experimental",
    },
    {
      name: "WebGL2ComputeContext",
      status: "experimental",
    },
    {
      name: "WebGLDraftExtensions",
      status: "experimental",
    },
    {
      name: "WebGLImageChromium",
    },
    // WebGPU adds a large attack surface area to the GPU process and allows
    // running arbitrary programs on the GPU (compute shaders), which may
    // perform arbitrary read/writes of GPU memory if not properly sandboxed.
    // That's why it is marked as "test" and not enabled as part of the
    // --enable-experimental-web-platform-features flag.
    {
      name: "WebGPU",
      status: "test",
    },
    {
      name: "WebLocksAPI",
      status: "stable",
    },
    {
      name: "WebNFC",
      status: "experimental",
    },
    // WebShare is enabled by default on Android.
    {
      name: "WebShare",
      status: "experimental",
    },
    {
      name: "WebUSB",
      status: "stable",
    },
    {
      name: "WebUSBOnDedicatedWorkers",
      status: "stable",
      depends_on: ["WebUSB"],
    },
    {
      name: "WebVR",
      status: "experimental",
    },
    {
      name: "WebVTTRegions",
      status: "experimental",
    },
    {
      name: "WebXR",
      origin_trial_feature_name: "WebXRDeviceM69",
      status: "experimental",
    },
    // Subset of the GamepadExtensions wanted for WebXR, which expose VR controller
    // functionality as Gamepads.
    {
      name: "WebXRGamepadSupport",
      origin_trial_feature_name: "WebXRGamepadSupport",
      // This feature is a strict subset of GamepadExtensions.
      implied_by: ["GamepadExtensions"],
      status: "experimental",
    },
    {
      name: "WebXRHitTest",
      status: "experimental"
    },
    {
      name: "WorkerNosniffBlock",
      status: "stable",
    },
    {
      name: "WorkerNosniffWarn",
      status: "stable",
      implied_by: ["WorkerNosniffBlock"],
    },
    {
      name: "WorkerTaskQueue",
      status: "experimental"
    },
    {
      name: "WorkStealingInScriptRunner",
      status: "experimental",
    },
    {
      name: "WritableFiles",
      status: "experimental",
    },
    {
      name: "XSLT",
      status: "stable",
    },
  ],
}
