Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 { | |
| 2 // http://dev.chromium.org/blink/runtime-enabled-features | |
| 3 // | |
| 4 // This list is used to generate RuntimeEnabledFeatures.h/cpp which contains | |
| 5 // a class that stores static enablers for all experimental features. | |
| 6 | |
| 7 parameters: { | |
| 8 // Each feature can be assigned a "status": | |
| 9 // status=stable -> Enable this in all Blink configurations. We are committ ed to these APIs indefinitely. | |
| 10 // status=experimental -> In-progress features, Web Developers might play wi th, but are not on by default in stable. | |
| 11 // status=test -> Enabled in ContentShell for testing, otherwise off. | |
| 12 // Features without a status are not enabled anywhere by default. | |
| 13 status: { | |
| 14 valid_values: ["stable", "experimental", "test"], | |
| 15 }, | |
| 16 | |
| 17 // "implied_by" or "depends_on" specifies relationship to other features: | |
| 18 // implied_by: ["feature1","feature2",...] -> The feature is automatically e nabled if any implied_by features is enabled; | |
| 19 // depends_on: ["feature1","feature2",...] -> The feature is enabled only if all depends_on features are enabled. | |
| 20 // Only one of "implied_by" and "depends_on" can be specified. | |
| 21 // | |
| 22 // "stable" features listed here should be rare, as anything which we've shi pped stable | |
| 23 // can have its runtime flag removed soon after. | |
| 24 implied_by: { | |
| 25 default: [], | |
| 26 valid_type: "list", | |
| 27 }, | |
| 28 depends_on: { | |
| 29 default: [], | |
| 30 valid_type: "list", | |
| 31 }, | |
| 32 | |
| 33 // origin_trial_feature_name: "FEATURE_NAME" is used to integrate the featur e with | |
| 34 // the Origin Trials framework. The framework allows the feature to be enabl ed | |
| 35 // at runtime on a per-page basis through a signed token for the correspondi ng | |
| 36 // feature name. Declaring the origin_trial_feature_name will cause a static | |
| 37 // method to be generated in OriginTrials.h/cpp. This static method allows t he | |
| 38 // feature implementation to check if it is enabled for the current context. | |
| 39 origin_trial_feature_name: { | |
| 40 }, | |
| 41 origin_trial_os: { | |
| 42 default: [], | |
| 43 valid_type: "list", | |
| 44 }, | |
| 45 | |
| 46 // settable_from_internals specifies whether a feature can be set from inter nals.runtimeFlags, with the default | |
| 47 // being false. | |
| 48 settable_from_internals: { | |
| 49 valid_type: "bool", | |
| 50 }, | |
| 51 | |
| 52 condition: { | |
|
Rick Byers
2017/01/27 22:17:02
what are these three? They don't appear to be use
ktyliu
2017/01/29 21:22:14
these three are from make_runtime_features.py;
the
Rick Byers
2017/02/06 20:46:24
Can you try to add a comment summarizing what they
ktyliu
2017/02/07 01:12:18
added comments for feature_policy and custom
cond
| |
| 53 }, | |
| 54 | |
| 55 custom: { | |
| 56 }, | |
| 57 | |
| 58 feature_policy: { | |
| 59 }, | |
| 60 }, | |
| 61 | |
| 62 data: [ | |
| 63 { | |
| 64 name: "Accelerated2dCanvas", | |
| 65 settable_from_internals: true, | |
| 66 status: "stable", | |
| 67 }, | |
| 68 { | |
| 69 name: "AudioOutputDevices", | |
| 70 status: "stable", | |
| 71 }, | |
| 72 { | |
| 73 name: "AudioVideoTracks", | |
| 74 status: "experimental", | |
| 75 }, | |
| 76 { | |
| 77 name: "AudioWorklet", | |
| 78 status: "experimental", | |
| 79 }, | |
| 80 { | |
| 81 name: "Auxclick", | |
| 82 status: "stable", | |
| 83 }, | |
| 84 { | |
| 85 name: "CoalescedEvents", | |
| 86 status: "experimental", | |
| 87 }, | |
| 88 { | |
| 89 name: "BackgroundSync", | |
| 90 status: "stable", | |
| 91 }, | |
| 92 { | |
| 93 name: "BackspaceDefaultHandler", | |
| 94 status: "test", | |
| 95 }, | |
| 96 { | |
| 97 name: "BroadcastChannel", | |
| 98 status: "stable", | |
| 99 }, | |
| 100 { | |
| 101 name: "Budget", | |
| 102 status: "experimental", | |
| 103 }, | |
| 104 { | |
| 105 name: "Canvas2dFixedRenderingMode", | |
| 106 status: "test", | |
| 107 }, | |
| 108 { | |
| 109 name: "EnableCanvas2dDynamicRenderingModeSwitching", | |
| 110 status: "experimental", | |
| 111 }, | |
| 112 { | |
| 113 name: "CanMakePayment", | |
| 114 status: "stable", | |
| 115 }, | |
| 116 { | |
| 117 name: "Canvas2dImageChromium", | |
| 118 status: "experimental", | |
| 119 }, | |
| 120 { | |
| 121 name: "ClientHints", | |
| 122 status: "stable", | |
| 123 }, | |
| 124 { | |
| 125 name: "CompositeOpaqueFixedPosition", | |
| 126 settable_from_internals: true, | |
| 127 status: "test", | |
| 128 }, | |
| 129 { | |
| 130 name: "CompositeOpaqueScrollers", | |
| 131 settable_from_internals: true, | |
| 132 status: "stable", | |
| 133 }, | |
| 134 { | |
| 135 name: "ColorCorrectRendering", | |
| 136 status: "experimental", | |
| 137 }, | |
| 138 { | |
| 139 name: "ColorCorrectRenderingDefaultMode", | |
| 140 status: "experimental", | |
| 141 }, | |
| 142 "CompositedSelectionUpdate", | |
|
Rick Byers
2017/01/27 22:17:01
are bare strings allowed here? I assume this is i
ktyliu
2017/01/29 21:22:14
agree the more verbose syntax is good for consiste
Rick Byers
2017/02/06 20:46:24
Great thanks - definitely looks nicer!
| |
| 143 { | |
| 144 name: "CompositorWorker", | |
| 145 status: "experimental", | |
| 146 }, | |
| 147 { | |
| 148 name: "ContextMenu", | |
| 149 status: "test", | |
| 150 }, | |
| 151 { | |
| 152 name: "CorsRFC1918", | |
| 153 status: "test", | |
| 154 }, | |
| 155 { | |
| 156 name: "CredentialManager", | |
| 157 status: "stable", | |
| 158 }, | |
| 159 { | |
| 160 name: "CSS3Text", | |
| 161 status: "experimental", | |
| 162 }, | |
| 163 { | |
| 164 name: "CSS3TextDecorations", | |
| 165 status: "stable", | |
| 166 }, | |
| 167 { | |
| 168 name: "CSSApplyAtRules", | |
| 169 status: "experimental", | |
| 170 }, | |
| 171 { | |
| 172 name: "CSSAdditiveAnimations", | |
| 173 depends_on: ["StackedCSSPropertyAnimations"], | |
| 174 status: "experimental", | |
| 175 }, | |
| 176 { | |
| 177 name: "CSSBackdropFilter", | |
| 178 status: "experimental", | |
| 179 }, | |
| 180 { | |
| 181 name: "CSSHexAlphaColor", | |
| 182 status: "experimental", | |
| 183 }, | |
| 184 { | |
| 185 name: "CSSContainment", | |
| 186 status: "stable", | |
| 187 }, | |
| 188 { | |
| 189 name: "CSSFontDisplay", | |
| 190 status: "experimental", | |
| 191 }, | |
| 192 { | |
| 193 name: "CSSFontSizeAdjust", | |
| 194 status: "experimental", | |
| 195 }, | |
| 196 { | |
| 197 name: "CSSGridLayout", | |
| 198 settable_from_internals: true, | |
| 199 status: "stable", | |
| 200 }, | |
| 201 { | |
| 202 name: "CSSDisplayContents", | |
| 203 status: "experimental", | |
| 204 }, | |
| 205 { | |
| 206 name: "CSSHyphens", | |
| 207 status: "stable", | |
| 208 }, | |
| 209 { | |
| 210 name: "CSSInBodyDoesNotBlockPaint", | |
| 211 status: "experimental", | |
| 212 }, | |
| 213 { | |
| 214 name: "CSSIndependentTransformProperties", | |
| 215 status: "experimental", | |
| 216 }, | |
| 217 { | |
| 218 name: "CSSMaskSourceType", | |
| 219 status: "experimental", | |
| 220 }, | |
| 221 { | |
| 222 name: "CSSOMSmoothScroll", | |
| 223 status: "experimental", | |
| 224 }, | |
| 225 { | |
| 226 name: "CSSOffsetPositionAnchor", | |
| 227 status: "experimental", | |
| 228 }, | |
| 229 { | |
| 230 name: "CSSOffsetRotate", | |
| 231 status: "stable", | |
| 232 }, | |
| 233 { | |
| 234 name: "CSSOffsetRotation", | |
| 235 status: "stable", | |
| 236 }, | |
| 237 { | |
| 238 name: "CSSPaintAPI", | |
| 239 depends_on: ["Worklet"], | |
| 240 status: "experimental", | |
| 241 }, | |
| 242 { | |
| 243 name: "CSSPaintAPIArguments", | |
| 244 depends_on: ["CSSPaintAPI"], | |
| 245 status: "experimental", | |
| 246 }, | |
| 247 { | |
| 248 name: "CSSSnapSize", | |
| 249 status: "experimental", | |
| 250 }, | |
| 251 { | |
| 252 name: "CSSStickyPosition", | |
| 253 status: "stable", | |
| 254 }, | |
| 255 { | |
| 256 name: "CSSTouchActionPanDirections", | |
| 257 status: "stable", | |
| 258 }, | |
| 259 { | |
| 260 name: "CSSTouchActionPinchZoom", | |
| 261 status: "stable", | |
| 262 }, | |
| 263 { | |
| 264 name: "CSSTypedOM", | |
| 265 status: "experimental", | |
| 266 }, | |
| 267 { | |
| 268 name: "CSSVariableFonts", | |
| 269 status: "experimental", | |
| 270 }, | |
| 271 { | |
| 272 name: "CSSVariables2", | |
| 273 status: "experimental", | |
| 274 }, | |
| 275 { | |
| 276 name: "CSSViewport", | |
| 277 status: "experimental", | |
| 278 }, | |
| 279 { | |
| 280 name: "CSSScrollSnapPoints", | |
| 281 status: "test", | |
| 282 }, | |
| 283 { | |
| 284 name: "CustomElementsBuiltin", | |
| 285 status: "test", | |
| 286 }, | |
| 287 { | |
| 288 name: "CustomElementsV1", | |
| 289 status: "stable", | |
| 290 }, | |
| 291 { | |
| 292 name: "CustomSchemeHandler", | |
| 293 depends_on: ["NavigatorContentUtils"], | |
| 294 status: "experimental", | |
| 295 }, | |
| 296 { | |
| 297 name: "Database", | |
| 298 status: "stable", | |
| 299 }, | |
| 300 { | |
| 301 name: "DecodeToYUV", | |
| 302 status: "experimental", | |
| 303 }, | |
| 304 { | |
| 305 name: "DesktopCaptureDisableLocalEchoControl", | |
| 306 status: "experimental", | |
| 307 }, | |
| 308 { | |
| 309 name: "DeviceLight", | |
| 310 status: "experimental", | |
| 311 }, | |
| 312 { | |
| 313 name: "DisplayList2dCanvas", | |
| 314 status: "stable", | |
| 315 }, | |
| 316 "DocumentCookie", | |
| 317 "DocumentDomain", | |
| 318 "DocumentWrite", | |
| 319 "DocumentWriteEvaluator", | |
| 320 { | |
| 321 name: "DOMConvenienceAPI", | |
| 322 status: "stable", | |
| 323 }, | |
| 324 { | |
| 325 name: "DurableStorage", | |
| 326 status: "stable", | |
| 327 }, | |
| 328 { | |
| 329 name: "ExpensiveBackgroundTimerThrottling", | |
| 330 status: "experimental", | |
| 331 }, | |
| 332 { | |
| 333 name: "FasterLocationReload", | |
| 334 status: "experimental", | |
| 335 }, | |
| 336 { | |
| 337 name: "FontCacheScaling", | |
| 338 status: "test", | |
| 339 }, | |
| 340 "ForceDisplayList2dCanvas", | |
| 341 // See crbug.com/585250. | |
| 342 "ForceDisable2dCanvasCopyOnWrite", | |
| 343 { | |
| 344 name: "EmbedderCSPEnforcement", | |
| 345 status: "experimental", | |
| 346 }, | |
| 347 { | |
| 348 name: "ExecCommandInJavaScript", | |
| 349 status: "test", | |
| 350 }, | |
| 351 { | |
| 352 name: "ComputedAccessibilityInfo", | |
| 353 status: "experimental", | |
| 354 }, | |
| 355 { | |
| 356 name: "ExperimentalCanvasFeatures", | |
| 357 status: "test", | |
| 358 }, | |
| 359 { | |
| 360 name: "ExperimentalContentSecurityPolicyFeatures", | |
| 361 status: "experimental", | |
| 362 }, | |
| 363 { | |
| 364 name: "ExperimentalV8Extras", | |
| 365 status: "experimental", | |
| 366 }, | |
| 367 "FastMobileScrolling", | |
| 368 { | |
| 369 name: "FeaturePolicy", | |
| 370 status: "experimental", | |
| 371 }, | |
| 372 { | |
| 373 name: "FileAPIBlobClose", | |
| 374 status: "experimental", | |
| 375 }, | |
| 376 { | |
| 377 name: "FileSystem", | |
| 378 status: "stable", | |
| 379 }, | |
| 380 { | |
| 381 name: "ForeignFetch", | |
| 382 origin_trial_feature_name: "ForeignFetch", | |
| 383 status: "experimental", | |
| 384 }, | |
| 385 { | |
| 386 name: "FramebustingNeedsSameOriginOrUserGesture", | |
| 387 settable_from_internals: true, | |
| 388 status: "stable", | |
| 389 }, | |
| 390 { | |
| 391 name: "FullscreenUnprefixed", | |
| 392 settable_from_internals: true, | |
| 393 status: "test", | |
| 394 }, | |
| 395 { | |
| 396 name: "FrameTimingSupport", | |
| 397 status: "experimental", | |
| 398 }, | |
| 399 { | |
| 400 name: "GamepadExtensions", | |
| 401 origin_trial_feature_name: "WebVR", | |
| 402 status: "test", | |
| 403 }, | |
| 404 { | |
| 405 name: "GeometryInterfaces", | |
| 406 implied_by: ["CompositorWorker"], | |
| 407 status: "experimental", | |
| 408 }, | |
| 409 { | |
| 410 name: "GetUserMedia", | |
| 411 status: "stable", | |
| 412 }, | |
| 413 { | |
| 414 name: "GlobalCacheStorage", | |
| 415 status: "stable", | |
| 416 }, | |
| 417 { | |
| 418 name: "HeapCompaction", | |
| 419 status: "experimental", | |
| 420 }, | |
| 421 { | |
| 422 name: "IDBObserver", | |
| 423 status: "experimental", | |
| 424 }, | |
| 425 "IdleTimeSpellChecking", | |
| 426 { | |
| 427 name: "ImageCapture", | |
| 428 origin_trial_feature_name: "ImageCapture", | |
| 429 status: "experimental", | |
| 430 }, | |
| 431 { | |
| 432 name: "ImageOrientation", | |
| 433 status: "test", | |
| 434 }, | |
| 435 { | |
| 436 name: "IndexedDBExperimental", | |
| 437 status: "experimental", | |
| 438 }, | |
| 439 { | |
| 440 name: "InertTopControls", | |
| 441 status: "stable", | |
| 442 }, | |
| 443 { | |
| 444 name: "InputEvent", | |
| 445 status: "experimental", | |
| 446 }, | |
| 447 { | |
| 448 name: "InputModeAttribute", | |
| 449 status: "experimental", | |
| 450 }, | |
| 451 { | |
| 452 name: "InputMultipleFieldsUI", | |
| 453 status: "stable", | |
| 454 }, | |
| 455 { | |
| 456 name: "InstalledApp", | |
| 457 status: "experimental", | |
| 458 }, | |
| 459 { | |
| 460 name: "IntersectionObserver", | |
| 461 status: "stable", | |
| 462 }, | |
| 463 "LangAttributeAwareFormControlUI", | |
| 464 "LayoutNG", | |
| 465 "LayoutNGInline", | |
| 466 { | |
| 467 name: "LinkServiceWorker", | |
| 468 origin_trial_feature_name: "ForeignFetch", | |
| 469 status: "experimental", | |
| 470 }, | |
| 471 { | |
| 472 name: "LongTaskObserver", | |
| 473 origin_trial_feature_name: "LongTaskObserver", | |
| 474 status: "experimental", | |
| 475 }, | |
| 476 "FractionalScrollOffsets", | |
| 477 "LoadingWithMojo", | |
| 478 "MediaCapture", | |
| 479 { | |
| 480 name: "MediaCaptureFromCanvas", | |
| 481 status: "stable", | |
| 482 }, | |
| 483 { | |
| 484 name: "MediaCaptureFromVideo", | |
| 485 status: "experimental", | |
| 486 }, | |
| 487 { | |
| 488 name: "MediaConstraints", | |
| 489 status: "stable", | |
| 490 }, | |
| 491 "MediaDocumentDownloadButton", | |
| 492 { | |
| 493 name: "MediaGetSettings", | |
| 494 status: "experimental", | |
| 495 }, | |
| 496 // MediaSession is enabled by default on Android only. | |
|
Rick Byers
2017/01/27 22:17:01
nit: I'd find this a little more readable if the c
mlamouri (slow - plz ping)
2017/01/28 01:10:44
```
{ // MediaSession is enabled by default on And
ktyliu
2017/01/29 21:22:14
I have slight preference for comment above the ent
Rick Byers
2017/02/06 20:46:24
Ok, SGTM
| |
| 497 { | |
| 498 name: "MediaSession", | |
| 499 status: "test", | |
| 500 }, | |
| 501 { | |
| 502 name: "MediaSourceExperimental", | |
| 503 status: "experimental", | |
| 504 }, | |
| 505 { | |
| 506 name: "MediaSourceNewAbortAndDuration", | |
| 507 status: "experimental", | |
| 508 }, | |
| 509 { | |
| 510 name: "MediaStreamSpeech", | |
| 511 status: "experimental", | |
| 512 }, | |
| 513 { | |
| 514 name: "MediaQueryShape", | |
| 515 status: "experimental", | |
| 516 }, | |
| 517 { | |
| 518 name: "MediaStreamTrackContentHint", | |
| 519 status: "experimental", | |
| 520 }, | |
| 521 { | |
| 522 name: "MemoryInfoInWorkers", | |
| 523 status: "experimental", | |
| 524 }, | |
| 525 // This is enabled by default on Windows only. The only part that's | |
| 526 // "experimental" is the support on other platforms. | |
| 527 { | |
| 528 name: "MiddleClickAutoscroll", | |
| 529 status: "experimental", | |
| 530 }, | |
| 531 "MobileLayoutTheme", | |
| 532 { | |
| 533 name: "ModuleScripts", | |
| 534 status: "test", | |
| 535 }, | |
| 536 "NavigatorContentUtils", | |
| 537 { | |
| 538 name: "WebNFC", | |
| 539 status: "experimental", | |
| 540 }, | |
| 541 { | |
| 542 name: "NetworkInformation", | |
| 543 status: "stable", | |
| 544 }, | |
| 545 { | |
| 546 name: "NetInfoDownlinkMax", | |
| 547 status: "stable", | |
| 548 }, | |
| 549 { | |
| 550 name: "NotificationConstructor", | |
| 551 status: "stable", | |
| 552 }, | |
| 553 { | |
| 554 name: "NotificationBadge", | |
| 555 status: "stable", | |
| 556 }, | |
| 557 { | |
| 558 name: "NotificationContentImage", | |
| 559 status: "stable", | |
| 560 }, | |
| 561 { | |
| 562 name: "NotificationInlineReplies", | |
| 563 status: "experimental", | |
| 564 }, | |
| 565 { | |
| 566 name: "Notifications", | |
| 567 status: "stable", | |
| 568 }, | |
| 569 { | |
| 570 name: "OnDeviceChange", | |
| 571 status: "stable", | |
| 572 }, | |
| 573 "OrientationEvent", | |
| 574 { | |
| 575 name: "OriginTrials", | |
| 576 status: "stable", | |
| 577 }, | |
| 578 // Define a sample API for testing integration with the Origin Trials Framew ork. | |
| 579 // The sample API is used in both unit and layout tests for the Origin Trial s | |
| 580 // Framework. Do not change this flag to stable, as it exists solely to gene rate | |
| 581 // code used by the sample API implementation. | |
| 582 { | |
| 583 name: "OriginTrialsSampleAPI", | |
| 584 origin_trial_feature_name: "Frobulate", | |
| 585 }, | |
| 586 // For simulating Android's overlay fullscreen video in layout tests on Linu x. | |
| 587 "ForceOverlayFullscreenVideo", | |
| 588 "OverlayScrollbars", | |
| 589 { | |
| 590 name: "PagePopup", | |
| 591 status: "stable", | |
| 592 }, | |
| 593 { | |
| 594 name: "PaintUnderInvalidationChecking", | |
| 595 settable_from_internals: true, | |
| 596 }, | |
| 597 { | |
| 598 name: "PassiveDocumentEventListeners", | |
| 599 status: "stable", | |
| 600 }, | |
| 601 "PassPaintVisualRectToCompositor", | |
| 602 { | |
| 603 name: "PaymentApp", | |
| 604 status: "experimental", | |
| 605 }, | |
| 606 { | |
| 607 name: "PaymentDetailsError", | |
| 608 status: "stable", | |
| 609 }, | |
| 610 { | |
| 611 name: "PaymentDetailsModifierData", | |
| 612 status: "experimental", | |
| 613 }, | |
| 614 // PaymentRequest is enabled by default on Android | |
| 615 { | |
| 616 name: "PaymentRequest", | |
| 617 status: "experimental", | |
| 618 }, | |
| 619 { | |
| 620 name: "PaymentRequestBasicCard", | |
| 621 status: "stable", | |
| 622 }, | |
| 623 { | |
| 624 name: "PaymentRequestPayerName", | |
| 625 status: "stable", | |
| 626 }, | |
| 627 { | |
| 628 name: "PerformanceObserver", | |
| 629 status: "stable", | |
| 630 }, | |
| 631 { | |
| 632 name: "PermissionDelegation", | |
| 633 status: "test", | |
| 634 }, | |
| 635 { | |
| 636 name: "Permissions", | |
| 637 status: "stable", | |
| 638 }, | |
| 639 { | |
| 640 name: "PermissionsRequestRevoke", | |
| 641 status: "experimental", | |
| 642 }, | |
| 643 { | |
| 644 name: "PointerEvent", | |
| 645 status: "stable", | |
| 646 }, | |
| 647 "PreciseMemoryInfo", | |
| 648 { | |
| 649 name: "PreferredImageRasterBounds", | |
| 650 settable_from_internals: true, | |
| 651 }, | |
| 652 // This feature is deprecated and we are evangelizing affected sites. | |
| 653 // See https://crbug.com/346236 for current status. | |
| 654 { | |
| 655 name: "PrefixedVideoFullscreen", | |
| 656 status: "stable", | |
| 657 }, | |
| 658 { | |
| 659 name: "Presentation", | |
| 660 status: "stable", | |
| 661 }, | |
| 662 { | |
| 663 name: "PresentationReceiver", | |
| 664 status: "test", | |
| 665 }, | |
| 666 { | |
| 667 name: "PushMessaging", | |
| 668 status: "stable", | |
| 669 }, | |
| 670 { | |
| 671 name: "QuotaPromise", | |
| 672 status: "experimental", | |
| 673 }, | |
| 674 "ReducedReferrerGranularity", | |
| 675 { | |
| 676 name: "RemotePlayback", | |
| 677 status: "stable", | |
| 678 }, | |
| 679 { | |
| 680 name: "RenderingPipelineThrottling", | |
| 681 status: "stable", | |
| 682 }, | |
| 683 { | |
| 684 name: "RenderingPipelineThrottlingLoadingIframes", | |
| 685 status: "stable", | |
| 686 }, | |
| 687 { | |
| 688 name: "RenderUnicodeControlCharacters", | |
| 689 status: "stable", | |
| 690 }, | |
| 691 { | |
| 692 name: "ResizeObserver", | |
| 693 status: "experimental", | |
| 694 }, | |
| 695 // Handles frame scrolling via the root PaintLayer instead of the FrameView. | |
| 696 // crbug.com/417782 tracks enabling this by default. | |
| 697 "RootLayerScrolling", | |
| 698 { | |
| 699 name: "RTCPeerConnectionNewGetStats", | |
| 700 status: "experimental", | |
| 701 }, | |
| 702 { | |
| 703 name: "ScriptedSpeech", | |
| 704 status: "stable", | |
| 705 }, | |
| 706 // Scrolls to compensate for layout movements (bit.ly/scroll-anchoring). | |
| 707 { | |
| 708 name: "ScrollAnchoring", | |
| 709 settable_from_internals: true, | |
| 710 status: "experimental", | |
| 711 }, | |
| 712 // Implements documentElement.scrollTop/Left and bodyElement.scrollTop/Left | |
| 713 // as per the spec, matching other Web engines. | |
| 714 { | |
| 715 name: "ScrollTopLeftInterop", | |
| 716 status: "experimental", | |
| 717 }, | |
| 718 { | |
| 719 name: "Sensor", | |
| 720 status: "experimental", | |
| 721 }, | |
| 722 { | |
| 723 name: "ServiceWorkerNavigationPreload", | |
| 724 origin_trial_feature_name: "ServiceWorkerNavigationPreload", | |
| 725 }, | |
| 726 { | |
| 727 name: "SetRootScroller", | |
| 728 origin_trial_feature_name: "RootScroller", | |
| 729 status: "experimental", | |
| 730 }, | |
| 731 { | |
| 732 name: "ShadowPiercingDescendantCombinator", | |
| 733 status: "experimental", | |
| 734 }, | |
| 735 { | |
| 736 name: "ShapeDetection", | |
| 737 status: "experimental", | |
| 738 }, | |
| 739 "SharedArrayBuffer", | |
| 740 { | |
| 741 name: "SharedWorker", | |
| 742 status: "stable", | |
| 743 }, | |
| 744 { | |
| 745 name: "SlimmingPaintInvalidation", | |
| 746 implied_by: ["SlimmingPaintV2"], | |
| 747 status: "stable", | |
| 748 }, | |
| 749 "SlimmingPaintV2", | |
| 750 "SlimmingPaintStrictCullRectClipping", | |
| 751 // Used as argument in attribute of stable-release functions/interfaces wher e | |
| 752 // a runtime-enabled feature name is required for correct IDL syntax. | |
| 753 // This is a global flag; do not change its status. | |
| 754 { | |
| 755 name: "StableBlinkFeatures", | |
| 756 status: "stable", | |
| 757 }, | |
| 758 { | |
| 759 name: "StackedCSSPropertyAnimations", | |
| 760 status: "experimental", | |
| 761 }, | |
| 762 { | |
| 763 name: "StyleSharing", | |
| 764 status: "stable", | |
| 765 }, | |
| 766 // Do not turn this flag into stable, because many interfaces that should no t | |
| 767 // be shipped would be enabled. Instead, remove the flag from the shipping | |
| 768 // interface. | |
| 769 "SpeculativeLaunchServiceWorker", | |
| 770 { | |
| 771 name: "StorageEstimate", | |
| 772 status: "experimental", | |
| 773 }, | |
| 774 { | |
| 775 name: "Suborigins", | |
| 776 status: "experimental", | |
| 777 }, | |
| 778 { | |
| 779 name: "TimerThrottlingForBackgroundTabs", | |
| 780 status: "stable", | |
| 781 }, | |
| 782 { | |
| 783 name: "TimerThrottlingForHiddenFrames", | |
| 784 status: "stable", | |
| 785 }, | |
| 786 { | |
| 787 name: "TopNavWithUserActivationInSandbox", | |
| 788 status: "experimental", | |
| 789 }, | |
| 790 // Many websites disable mouse support when touch APIs are available. We'd | |
| 791 // like to enable this always but can't until more websites fix this bug. | |
| 792 // Chromium sets this conditionally (eg. based on the presence of a | |
| 793 // touchscreen) in ApplyWebPreferences. "Touch events" themselves are always | |
| 794 // enabled since they're a feature always supported by Chrome. | |
| 795 { | |
| 796 name: "TouchEventFeatureDetection", | |
| 797 status: "stable", | |
| 798 }, | |
| 799 { | |
| 800 name: "TrueColorRendering", | |
| 801 status: "experimental", | |
| 802 }, | |
| 803 { | |
| 804 name: "TrustedEventsDefaultAction", | |
| 805 status: "stable", | |
| 806 }, | |
| 807 { | |
| 808 name: "WebAnimationsAPI", | |
| 809 status: "experimental", | |
| 810 }, | |
| 811 { | |
| 812 name: "WebAnimationsSVG", | |
| 813 status: "experimental", | |
| 814 }, | |
| 815 { | |
| 816 name: "WebAssemblySerialization", | |
| 817 status: "test", | |
| 818 }, | |
| 819 // WebBluetooth is enabled by default on Android, ChromeOS and Mac. | |
| 820 { | |
| 821 name: "WebBluetooth", | |
| 822 status: "experimental", | |
| 823 }, | |
| 824 { | |
| 825 name: "WebGLDraftExtensions", | |
| 826 status: "experimental", | |
| 827 }, | |
| 828 "WebGLImageChromium", | |
| 829 { | |
| 830 name: "WebUSB", | |
| 831 origin_trial_feature_name: "WebUSB", | |
| 832 status: "experimental", | |
| 833 }, | |
| 834 { | |
| 835 name: "WebVR", | |
| 836 origin_trial_feature_name: "WebVR", | |
| 837 status: "test", | |
| 838 }, | |
| 839 { | |
| 840 name: "WebVTTRegions", | |
| 841 status: "experimental", | |
| 842 }, | |
| 843 { | |
| 844 name: "V8BasedStructuredClone", | |
| 845 status: "stable", | |
| 846 }, | |
| 847 "V8IdleTasks", | |
| 848 "VideoFullscreenOrientationLock", | |
| 849 { | |
| 850 name: "VisibilityChangeOnUnload", | |
| 851 status: "stable", | |
| 852 }, | |
| 853 { | |
| 854 name: "XSLT", | |
| 855 status: "stable", | |
| 856 }, | |
| 857 { | |
| 858 name: "smil", | |
| 859 status: "stable", | |
| 860 }, | |
| 861 "ScrollCustomization", | |
| 862 { | |
| 863 name: "AutoplayMutedVideos", | |
| 864 settable_from_internals: true, | |
| 865 }, | |
| 866 { | |
| 867 name: "VisualViewportAPI", | |
| 868 status: "experimental", | |
| 869 }, | |
| 870 { | |
| 871 name: "WakeLock", | |
| 872 status: "experimental", | |
| 873 }, | |
| 874 { | |
| 875 name: "WebAuth", | |
| 876 status: "experimental", | |
| 877 }, | |
| 878 { | |
| 879 name: "WebFontsCacheAwareTimeoutAdaptation", | |
| 880 status: "experimental", | |
| 881 }, | |
| 882 "WebFontsInterventionV2With2G", | |
| 883 "WebFontsInterventionV2With3G", | |
| 884 "WebFontsInterventionV2WithSlow2G", | |
| 885 "WebFontsInterventionTrigger", | |
| 886 { | |
| 887 name: "WebShare", | |
| 888 origin_trial_feature_name: "WebShare", | |
| 889 origin_trial_os: ["android"], | |
| 890 status: "experimental", | |
| 891 }, | |
| 892 { | |
| 893 name: "Worklet", | |
| 894 status: "experimental", | |
| 895 }, | |
| 896 { | |
| 897 name: "LazyParseCSS", | |
| 898 status: "experimental", | |
| 899 }, | |
| 900 { | |
| 901 name: "ParseHTMLOnMainThread", | |
| 902 status: "test", | |
| 903 }, | |
| 904 { | |
| 905 name: "SendBeaconThrowForBlobWithNonSimpleType", | |
| 906 status: "experimental", | |
| 907 }, | |
| 908 { | |
| 909 name: "PerformanceNavigationTiming2", | |
| 910 status: "stable", | |
| 911 }, | |
| 912 { | |
| 913 name: "BackgroundVideoTrackOptimization", | |
| 914 status: "stable", | |
| 915 }, | |
| 916 { | |
| 917 name: "PerformancePaintTiming", | |
| 918 status: "test", | |
| 919 }, | |
| 920 { | |
| 921 name: "HideNonceContentAttribute", | |
| 922 status: "experimental", | |
| 923 }, | |
| 924 { | |
| 925 name: "UnclosedFormControlIsInvalid", | |
| 926 status: "experimental", | |
| 927 }, | |
| 928 { | |
| 929 name: "RestrictCompleteURLCharacterSet", | |
| 930 status: "experimental", | |
| 931 }, | |
| 932 ], | |
| 933 } | |
| OLD | NEW |