Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(484)

Side by Side Diff: third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5

Issue 2656163005: Convert RuntimeEnabledFeatures.in config file to JSON format. (Closed)
Patch Set: Remove RuntimeEnabledFeatures.in Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698