AX: Remove CSSDisplayContentsAXSupportEnabled flag
[webkit.git] / Source / WTF / Scripts / Preferences / WebPreferencesInternal.yaml
blob8bb2c7270c30b3bfc4bbd65b93985d5e97019ac9
1 # Copyright (c) 2020-2022 Apple Inc. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions
5 # are met:
6 # 1. Redistributions of source code must retain the above copyright
7 #    notice, this list of conditions and the following disclaimer.
8 # 2. Redistributions in binary form must reproduce the above copyright
9 #    notice, this list of conditions and the following disclaimer in the
10 #    documentation and/or other materials provided with the distribution.
12 # THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
13 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
14 # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
15 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
16 # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
17 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
18 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
19 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
20 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
21 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
22 # THE POSSIBILITY OF SUCH DAMAGE.
24 # For internal features:
25 # The type should be boolean.
26 # They must include a humanReadableName and humanReadableDescription. This is
27 #   the text exposed to the user from the WebKit client.
29 AcceleratedFiltersEnabled:
30   type: bool
31   webcoreOnChange: setNeedsRelayoutAllFrames
32   humanReadableName: "Accelerated Filter Rendering"
33   humanReadableDescription: "Accelerated CSS and SVG filter rendering"
34   condition: USE(CORE_IMAGE)
35   defaultValue:
36     WebKitLegacy:
37       default: false
38     WebKit:
39       default: false
40     WebCore:
41       default: false
43 # FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
44 AllowViewportShrinkToFitContent:
45   type: bool
46   humanReadableName: "Allow Viewport Shrink to Fit Content"
47   humanReadableDescription: "Allow the viewport shrink to fit content heuristic when appropriate"
48   condition: PLATFORM(IOS_FAMILY)
49   defaultValue:
50     WebKitLegacy:
51       default: false
52     WebKit:
53       default: true
54     WebCore:
55       default: true
57 AlwaysZoomOnDoubleTap:
58   type: bool
59   humanReadableName: "DTTZ always"
60   humanReadableDescription: "Double taps zoom, even if we dispatched a click anywhere"
61   webcoreBinding: none
62   condition: PLATFORM(IOS_FAMILY)
63   exposed: [ WebKit ]
64   defaultValue:
65     WebKit:
66       default: false
68 AsyncFrameScrollingEnabled:
69   type: bool
70   webcoreOnChange: setNeedsRelayoutAllFrames
71   humanReadableName: "Async Frame Scrolling"
72   humanReadableDescription: "Perform frame scrolling off the main thread"
73   exposed: [ WebKit ]
74   defaultValue:
75     WebKitLegacy:
76       default: false
77     WebKit:
78       "USE(NICOSIA)": true
79       "PLATFORM(COCOA)": true
80       default: false
81     WebCore:
82       default: false
84 AsyncOverflowScrollingEnabled:
85   type: bool
86   webcoreOnChange: setNeedsRelayoutAllFrames
87   humanReadableName: "Async Overflow Scrolling"
88   humanReadableDescription: "Perform overflow scrolling off the main thread"
89   exposed: [ WebKit ]
90   defaultValue:
91     WebKitLegacy:
92       default: false
93     WebKit:
94       "USE(NICOSIA)": true
95       "PLATFORM(COCOA)": true
96       default: false
97     WebCore:
98       default: false
100 BlockIOKitInWebContentSandbox:
101   type: bool
102   humanReadableName: "IOKit blocking in the WebContent sandbox"
103   humanReadableDescription: "Block IOKit access in the WebContent sandbox"
104   webcoreBinding: none
105   exposed: [ WebKit ]
106   defaultValue:
107     WebKit:
108       default: true
110 CSSLogicalEnabled:
111   type: bool
112   humanReadableName: "CSS Logical Properties and Values"
113   humanReadableDescription: "Enable CSS Logical Properties and Values"
114   webcoreBinding: RuntimeEnabledFeatures
115   defaultValue:
116     WebKitLegacy:
117       default: false
118     WebKit:
119       default: false
121 CSSOMViewScrollingAPIEnabled:
122   type: bool
123   humanReadableName: "CSSOM View Scrolling API"
124   humanReadableDescription: "Implement standard behavior for scrollLeft, scrollTop, scrollWidth, scrollHeight, scrollTo, scrollBy and scrollingElement."
125   defaultValue:
126     WebKitLegacy:
127       default: true
128     WebKit:
129       "PLATFORM(IOS_FAMILY)": WebKit::defaultCSSOMViewScrollingAPIEnabled()
130       default: true
131     WebCore:
132       default: false
134 CaptureAudioInGPUProcessEnabled:
135   type: bool
136   humanReadableName: "GPU Process: Audio Capture"
137   humanReadableDescription: "Enable audio capture in GPU Process"
138   webcoreBinding: none
139   condition: ENABLE(MEDIA_STREAM)
140   exposed: [ WebKit ]
141   defaultValue:
142     WebKit:
143       default: WebKit::defaultCaptureAudioInGPUProcessEnabled()
145 CaptureAudioInUIProcessEnabled:
146   type: bool
147   humanReadableName: "Capture audio in UI Process"
148   humanReadableDescription: "Enable audio capture in UI Process"
149   webcoreBinding: none
150   condition: ENABLE(MEDIA_STREAM)
151   exposed: [ WebKit ]
152   defaultValue:
153     WebKit:
154       default: WebKit::defaultCaptureAudioInUIProcessEnabled()
156 CaptureVideoInGPUProcessEnabled:
157   type: bool
158   humanReadableName: "GPU Process: Video Capture"
159   humanReadableDescription: "Enable video capture in GPU Process"
160   webcoreBinding: none
161   condition: ENABLE(MEDIA_STREAM)
162   exposed: [ WebKit ]
163   defaultValue:
164     WebKit:
165       "ENABLE(GPU_PROCESS_BY_DEFAULT)": true
166       default: false
168 CaptureVideoInUIProcessEnabled:
169   type: bool
170   humanReadableName: "Capture video in UI Process"
171   humanReadableDescription: "Enable video capture in UI Process"
172   webcoreBinding: none
173   condition: ENABLE(MEDIA_STREAM)
174   exposed: [ WebKit ]
175   defaultValue:
176     WebKit:
177       default: false
179 CookieConsentAPIEnabled:
180   type: bool
181   humanReadableName: "Cookie Consent API"
182   humanReadableDescription: "Enable cookie consent API"
183   exposed: [ WebKit ]
184   defaultValue:
185     WebCore:
186       default: false
187     WebKitLegacy:
188       default: false
189     WebKit:
190       default: false
192 DOMPasteAccessRequestsEnabled:
193   type: bool
194   humanReadableName: "DOM Paste Access Requests"
195   humanReadableDescription: "Enable DOM Paste Access Requests"
196   defaultValue:
197     WebKitLegacy:
198       default: false
199     WebKit:
200       "PLATFORM(IOS) || PLATFORM(MAC)": true
201       default: false
202     WebCore:
203       default: false
205 # FIXME: This is on by default in WebKit2 (for everything but WatchOS). Perhaps we should consider turning it on for WebKitLegacy as well.
206 DataListElementEnabled:
207   type: bool
208   humanReadableName: "DataList Element"
209   humanReadableDescription: "Enable datalist elements"
210   webcoreBinding: RuntimeEnabledFeatures
211   condition: ENABLE(DATALIST_ELEMENT)
212   defaultValue:
213     WebKitLegacy:
214       default: false
215     WebKit:
216       "PLATFORM(WATCHOS)": false
217       default: true
219 # FIXME: This is on by default in WebKit2 (for macOS at least). Perhaps we should consider turning it on for WebKitLegacy as well.
220 DateTimeInputsEditableComponentsEnabled:
221   type: bool
222   humanReadableName: "Date/Time inputs have editable components"
223   humanReadableDescription: "Enable multiple editable components in date/time inputs"
224   condition: ENABLE(DATE_AND_TIME_INPUT_TYPES)
225   defaultValue:
226     WebKitLegacy:
227       default: false
228     WebKit:
229       "PLATFORM(MAC) || PLATFORM(GTK)": true
230       default: false
231     WebCore:
232       default: false
234 EnterKeyHintEnabled:
235   type: bool
236   humanReadableName: "Enter Key Hint"
237   humanReadableDescription: "Enable the enterKeyHint HTML attribute"
238   defaultValue:
239     WebKitLegacy:
240       default: false
241     WebKit:
242       "PLATFORM(COCOA)": true
243       default: false
244     WebCore:
245       default: false
247 EventHandlerDrivenSmoothKeyboardScrollingEnabled:
248  type: bool
249  humanReadableName: "EventHandler driven smooth keyboard scrolling"
250  humanReadableDescription: "Enable EventHandler driven smooth keyboard scrolling"
251  defaultValue:
252   WebKitLegacy:
253    default: false
254   WebKit:
255    default: false
256   WebCore:
257    default: false
259 FasterClicksEnabled:
260   type: bool
261   humanReadableName: "Fast clicks"
262   humanReadableDescription: "Support faster clicks on zoomable pages"
263   webcoreBinding: none
264   condition: PLATFORM(IOS_FAMILY)
265   exposed: [ WebKit ]
266   defaultValue:
267     WebKit:
268       default: true
270 FlexFormattingContextIntegrationEnabled:
271   type: bool
272   humanReadableName: "Next-generation flex layout integration (FFC)"
273   humanReadableDescription: "Enable next-generation flex layout integration (FFC)"
274   condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
275   defaultValue:
276     WebKitLegacy:
277       default: false
278     WebKit:
279       default: false
280     WebCore:
281       default: false
283 # FIXME: This should be reconciled with 'FrameFlattening' in WebPreferences.yaml .
284 FrameFlatteningEnabled:
285   type: bool
286   humanReadableName: "Frame flattening"
287   humanReadableDescription: "Enable frame flattening, which adjusts the height of an iframe to fit its contents"
288   webcoreBinding: custom
289   exposed: [ WebKit ]
290   defaultValue:
291     WebKit:
292       "PLATFORM(IOS_FAMILY)": true
293       default: false
295 FullScreenEnabled:
296   type: bool
297   humanReadableName: "Fullscreen API"
298   humanReadableDescription: "Fullscreen API"
299   condition: ENABLE(FULLSCREEN_API)
300   hidden: EXPERIMENTAL_FULLSCREEN_API_HIDDEN
301   defaultValue:
302     WebKitLegacy:
303       default: false
304     WebKit:
305       default: false
306     WebCore:
307       default: false
309 GetUserMediaRequiresFocus:
310   type: bool
311   humanReadableName: "Require focus to start getUserMedia"
312   humanReadableDescription: "Require focus to start getUserMedia"
313   condition: ENABLE(MEDIA_STREAM)
314   defaultValue:
315     WebKitLegacy:
316       default: true
317     WebKit:
318       default: true
319     WebCore:
320       default: true
322 ICECandidateFilteringEnabled:
323   type: bool
324   webcoreOnChange: iceCandidateFilteringEnabledChanged
325   inspectorOverride: true
326   humanReadableName: "Enable ICE Candidate Filtering"
327   humanReadableDescription: "Enable ICE Candidate Filtering"
328   defaultValue:
329     WebKitLegacy:
330       default: true
331     WebKit:
332       default: true
333     WebCore:
334       default: true
336 IOSFormControlRefreshEnabled:
337   type: bool
338   humanReadableName: "iOS Form Control Refresh"
339   humanReadableDescription: "Enable the new appearance for form controls on iOS"
340   condition: ENABLE(IOS_FORM_CONTROL_REFRESH)
341   defaultValue:
342     WebKitLegacy:
343       default: true
344     WebKit:
345       default: true
346     WebCore:
347       default: true
349 IPCTestingAPIEnabled:
350   type: bool
351   humanReadableName: "IPC Testing API"
352   humanReadableDescription: "Enable IPC Testing API for JavaScript"
353   webcoreBinding: none
354   condition: ENABLE(IPC_TESTING_API)
355   exposed: [ WebKit ]
356   defaultValue:
357     WebKit:
358       default: false
360 ImageAnalysisMarkupEnabled:
361   type: bool
362   humanReadableName: "Image analysis markup"
363   humanReadableDescription: "Enable image analysis markup"
364   condition: ENABLE(IMAGE_ANALYSIS)
365   exposed: [ WebKit ]
366   defaultValue:
367     WebCore:
368       default: false
369     WebKitLegacy:
370       default: false
371     WebKit:
372       default: defaultImageAnalysisMarkupEnabled()
374 ImageAnalysisQueueEnabled:
375   type: bool
376   humanReadableName: "Image analysis queue"
377   humanReadableDescription: "Enable image analysis queue"
378   condition: ENABLE(IMAGE_ANALYSIS)
379   exposed: [ WebKit ]
380   defaultValue:
381     WebCore:
382       default: false
383     WebKitLegacy:
384       default: false
385     WebKit:
386       default: defaultImageAnalysisQueueEnabled()
388 InlineFormattingContextIntegrationEnabled:
389   type: bool
390   humanReadableName: "Next-generation inline layout integration (IFC)"
391   humanReadableDescription: "Enable next-generation inline layout integration (IFC)"
392   webcoreBinding: RuntimeEnabledFeatures
393   condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
394   defaultValue:
395     WebKitLegacy:
396       default: true
397     WebKit:
398       default: true
400 InputTypeColorEnabled:
401   type: bool
402   humanReadableName: "Color Inputs"
403   humanReadableDescription: "Enable input elements of type color"
404   condition: ENABLE(INPUT_TYPE_COLOR)
405   defaultValue:
406     WebKitLegacy:
407       default: false
408     WebKit:
409       "PLATFORM(WATCHOS)": false
410       default: true
411     WebCore:
412       default: false
414 InputTypeDateEnabled:
415   type: bool
416   humanReadableName: "Date Input"
417   humanReadableDescription: "Enable input elements of type date"
418   condition: ENABLE(INPUT_TYPE_DATE)
419   defaultValue:
420     WebKitLegacy:
421       "PLATFORM(IOS_FAMILY)": true
422       default: false
423     WebKit:
424       "PLATFORM(APPLETV)": false
425       default: true
426     WebCore:
427       default: false
429 InputTypeDateTimeLocalEnabled:
430   type: bool
431   humanReadableName: "datetime-local Inputs"
432   humanReadableDescription: "Enable input elements of type datetime-local"
433   condition: ENABLE(INPUT_TYPE_DATETIMELOCAL)
434   defaultValue:
435     WebKitLegacy:
436       "PLATFORM(IOS_FAMILY)": true
437       default: false
438     WebKit:
439       "PLATFORM(APPLETV)": false
440       default: true
441     WebCore:
442       default: false
444 InputTypeMonthEnabled:
445   type: bool
446   humanReadableName: "Month Input"
447   humanReadableDescription: "Enable input elements of type month"
448   condition: ENABLE(INPUT_TYPE_MONTH)
449   defaultValue:
450     WebKitLegacy:
451       "PLATFORM(IOS_FAMILY)": true
452       default: false
453     WebKit:
454       "!PLATFORM(MAC) && !PLATFORM(APPLETV)": true
455       default: false
456     WebCore:
457       default: false
459 InputTypeTimeEnabled:
460   type: bool
461   humanReadableName: "Time Input"
462   humanReadableDescription: "Enable input elements of type time"
463   condition: ENABLE(INPUT_TYPE_TIME)
464   defaultValue:
465     WebKitLegacy:
466       "PLATFORM(IOS_FAMILY)": true
467       default: false
468     WebKit:
469       "PLATFORM(APPLETV)": false
470       default: true
471     WebCore:
472       default: false
474 InputTypeWeekEnabled:
475   type: bool
476   humanReadableName: "Week Input"
477   humanReadableDescription: "Enable input elements of type week"
478   condition: ENABLE(INPUT_TYPE_WEEK)
479   defaultValue:
480     WebKitLegacy:
481       default: false
482     WebKit:
483       "!PLATFORM(MAC) && !PLATFORM(APPLETV)": true
484       default: false
485     WebCore:
486       default: false
488 InteractionRegionsEnabled:
489   type: bool
490   humanReadableName: "Interaction Regions"
491   humanReadableDescription: "Generate and visualize interaction regions"
492   condition: ENABLE(INTERACTION_REGIONS_IN_EVENT_REGION)
493   defaultValue:
494     WebKit:
495       default: true
496     WebKitLegacy:
497       default: false
498     WebCore:
499       default: false
501 # FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
502 IsFirstPartyWebsiteDataRemovalLiveOnTestingEnabled:
503   type: bool
504   humanReadableName: "[ITP Live-On] 1 Hour Timeout For Non-Cookie Data Removal"
505   humanReadableDescription: "Remove all non-cookie website data after just one hour of no user interaction when Intelligent Tracking Prevention is enabled"
506   defaultValue:
507     WebKitLegacy:
508       default: false
509     WebKit:
510       default: false
511     WebCore:
512       default: false
514 # FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
515 IsFirstPartyWebsiteDataRemovalReproTestingEnabled:
516   type: bool
517   humanReadableName: "[ITP Repro] 30 Second Timeout For Non-Cookie Data Removal"
518   humanReadableDescription: "Remove all non-cookie website data after just 30 seconds of no user interaction when Intelligent Tracking Prevention is enabled"
519   defaultValue:
520     WebKitLegacy:
521       default: false
522     WebKit:
523       default: false
524     WebCore:
525       default: false
527 LayerBasedSVGEngineEnabled:
528   type: bool
529   humanReadableName: "Layer-based SVG Engine (LBSE)"
530   humanReadableDescription: "Enable next-generation layer-based SVG Engine (LBSE)"
531   condition: ENABLE(LAYER_BASED_SVG_ENGINE)
532   webcoreOnChange: layerBasedSVGEngineEnabledChanged
533   defaultValue:
534     WebCore:
535       default: false
536     WebKitLegacy:
537       default: false
538     WebKit:
539       default: false
541 LayoutFormattingContextEnabled:
542   type: bool
543   humanReadableName: "Full next-generation layout (LFC)"
544   humanReadableDescription: "Enable full next-generation layout (LFC)"
545   webcoreBinding: RuntimeEnabledFeatures
546   condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
547   defaultValue:
548     WebKitLegacy:
549       default: false
550     WebKit:
551       default: false
553 LegacyOverflowScrollingTouchEnabled:
554   type: bool
555   webcoreOnChange: setNeedsRelayoutAllFrames
556   humanReadableName: "Legacy -webkit-overflow-scrolling property"
557   humanReadableDescription: "Support the legacy -webkit-overflow-scrolling CSS property"
558   condition: ENABLE(OVERFLOW_SCROLLING_TOUCH)
559   defaultValue:
560     WebKitLegacy:
561       default: true
562     WebKit:
563       default: true
564     WebCore:
565       default: true
567 LineHeightUnitsEnabled:
568   type: bool
569   humanReadableName: "lh / rlh units"
570   humanReadableDescription: "Enable the lh and lhr units"
571   webcoreBinding: RuntimeEnabledFeatures
572   defaultValue:
573     WebKitLegacy:
574       default: false
575     WebKit:
576       default: false
578 LiveRangeSelectionEnabled:
579   type: bool
580   humanReadableName: "Live Ranges in Selection"
581   humanReadableDescription: "Live range behavior for ranges in the Selection object"
582   defaultValue:
583     WebKitLegacy:
584       default: false
585     WebKit:
586       default: false
587     WebCore:
588       default: false
590 MediaCaptureRequiresSecureConnection:
591   type: bool
592   inspectorOverride: true
593   humanReadableName: "Limit Media Capture to Secure Sites"
594   humanReadableDescription: "Limit Media Capture to Secure Sites"
595   condition: ENABLE(MEDIA_STREAM)
596   defaultValue:
597     WebKitLegacy:
598       default: true
599     WebKit:
600       default: true
601     WebCore:
602       default: true
604 MockCaptureDevicesEnabled:
605   type: bool
606   webcoreOnChange: mockCaptureDevicesEnabledChanged
607   inspectorOverride: true
608   condition: ENABLE(MEDIA_STREAM)
609   humanReadableName: "Enable Mock Capture Devices"
610   humanReadableDescription: "Enable Mock Capture Devices"
611   defaultValue:
612     WebKitLegacy:
613       default: false
614     WebKit:
615       "PLATFORM(IOS_FAMILY_SIMULATOR)": true
616       default: false
617     WebCore:
618       default: false
620 MomentumScrollingAnimatorEnabled:
621   type: bool
622   humanReadableName: "Momentum Scrolling Animator"
623   humanReadableDescription: "Generate momentum events in WebKit instead of using those delivered by the system"
624   defaultValue:
625     WebKitLegacy:
626       default: false
627     WebKit:
628       default: true
629     WebCore:
630       default: false
632 MouseEventsSimulationEnabled:
633   type: bool
634   humanReadableName: "Mouse events simulation"
635   humanReadableDescription: "Enable mouse events dispatch along with touch events on iOS"
636   webcoreBinding: RuntimeEnabledFeatures
637   condition: ENABLE(TOUCH_EVENTS)
638   defaultValue:
639     WebKitLegacy:
640       default: false
641     WebKit:
642       default: false
644 MuteCameraOnMicrophoneInterruptionEnabled:
645   type: bool
646   humanReadableName: "Mute Camera on Microphone Interruption"
647   humanReadableDescription: "Mute Camera on Microphone Interruption"
648   condition: ENABLE(MEDIA_STREAM)
649   defaultValue:
650     WebKitLegacy:
651       default: false
652     WebKit:
653       "PLATFORM(IOS_FAMILY)": true
654       default: false
655     WebCore:
656       default: false
658 NotificationEventEnabled:
659   type: bool
660   humanReadableName: "NotificationEvent support"
661   humanReadableDescription: "NotificationEvent and ServiceWorkerRegistration.showNotification() support"
662   webcoreBinding: RuntimeEnabledFeatures
663   condition: ENABLE(NOTIFICATION_EVENT)
664   defaultValue:
665     WebCore:
666       "ENABLE(NOTIFICATION_EVENT)": true
667       default: false
668     WebKit:
669       "ENABLE(NOTIFICATION_EVENT)": true
670       default: false
672 OffscreenCanvasEnabled:
673   type: bool
674   humanReadableName: "OffscreenCanvas"
675   humanReadableDescription: "Support for the OffscreenCanvas APIs"
676   webcoreBinding: RuntimeEnabledFeatures
677   condition: ENABLE(OFFSCREEN_CANVAS)
678   defaultValue:
679     WebKitLegacy:
680       default: false
681     WebKit:
682       "ENABLE(EXPERIMENTAL_FEATURES)": true
683       default: false
685 OffscreenCanvasInWorkersEnabled:
686   type: bool
687   humanReadableName: "OffscreenCanvas in Workers"
688   humanReadableDescription: "Support for the OffscreenCanvas APIs in Workers"
689   webcoreBinding: RuntimeEnabledFeatures
690   condition: ENABLE(OFFSCREEN_CANVAS_IN_WORKERS)
691   defaultValue:
692     WebKitLegacy:
693       default: false
694     WebKit:
695       "ENABLE(EXPERIMENTAL_FEATURES)": true
696       default: false
698 PdfJSViewerEnabled:
699   type: bool
700   humanReadableName: "Enable PDF.js viewer"
701   humanReadableDescription: "Enable PDF.js viewer"
702   condition: ENABLE(PDFJS)
703   defaultValue:
704     WebKitLegacy:
705       default: false
706     WebKit:
707       "PLATFORM(GTK) || PLATFORM(WPE)": true
708       default: false
709     WebCore:
710       default: false
712 PreferFasterClickOverDoubleTap:
713   type: bool
714   humanReadableName: "Fast clicks beat DTTZ"
715   humanReadableDescription: "Prefer a faster click over a double tap"
716   webcoreBinding: none
717   condition: PLATFORM(IOS_FAMILY)
718   exposed: [ WebKit ]
719   defaultValue:
720     WebKit:
721       "PLATFORM(IOS_FAMILY) && !PLATFORM(WATCHOS)": true
722       default: false
724 PreferSandboxedMediaParsing:
725   type: bool
726   humanReadableName: "Prefer Sandboxed Parsing of Media"
727   humanReadableDescription: "Prefer parsing media out-of-process in a sandboxed service"
728   condition: ENABLE(VIDEO)
729   defaultValue:
730     WebCore:
731       default: true
732     WebKitLegacy:
733       default: true
734     WebKit:
735       default: true
737 ReplayCGDisplayListsIntoBackingStore:
738   type: bool
739   humanReadableName: "CG Display Lists: Replay for Testing"
740   humanReadableDescription: "Replay CG Display Lists into layer contents for testing"
741   webcoreBinding: none
742   condition: ENABLE(CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER)
743   exposed: [ WebKit ]
744   defaultValue:
745     WebKit:
746       default: false
748 ResourceLoadSchedulingEnabled:
749   type: bool
750   humanReadableName: "Resource Load Scheduling"
751   humanReadableDescription: "Network process side priority and visibility based resource load scheduling"
752   defaultValue:
753     WebKitLegacy:
754       default: false
755     WebKit:
756       default: true
757     WebCore:
758       default: true
760 # FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
761 RestrictedHTTPResponseAccess:
762   type: bool
763   humanReadableName: "Filter HTTP Response for Web Processes"
764   humanReadableDescription: "Enable HTTP Response filtering for Web Processes"
765   webcoreBinding: RuntimeEnabledFeatures
766   defaultValue:
767     WebKitLegacy:
768       default: true
769     WebKit:
770       default: true
772 ScrollingPerformanceTestingEnabled:
773   type: bool
774   humanReadableName: "Scroll Performance Testing Enabled"
775   humanReadableDescription: "Enable behaviors used by scrolling performance tests"
776   webcoreOnChange: scrollingPerformanceTestingEnabledChanged
777   exposed: [ WebKit ]
778   defaultValue:
779     WebKitLegacy:
780       default: false
781     WebKit:
782       default: false
783     WebCore:
784       default: false
786 SecureContextChecksEnabled:
787   type: bool
788   humanReadableName: "Secure Context Checks"
789   humanReadableDescription: "Allow access to HTTPS-only Web APIs over HTTP"
790   webcoreBinding: RuntimeEnabledFeatures
791   defaultValue:
792     WebKitLegacy:
793       default: true
794     WebKit:
795       default: true
797 SelectionFlippingEnabled:
798   type: bool
799   humanReadableName: "Selection Flipping"
800   humanReadableDescription: "Enable Selection Flipping"
801   webcoreBinding: none
802   defaultValue:
803     WebKit:
804       default: true
806 # FIXME: This is not implemented for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
807 ServiceWorkersEnabled:
808   type: bool
809   humanReadableName: "Service Workers"
810   humanReadableDescription: "Enable Service Workers"
811   condition: ENABLE(SERVICE_WORKER)
812   defaultValue:
813     WebKitLegacy:
814       default: false
815     WebKit:
816       default: true
817     WebCore:
818       default: false
820 ServiceWorkersUserGestureEnabled:
821   type: bool
822   humanReadableName: "Validate UserGesture requirements in Service Workers"
823   humanReadableDescription: "Validate UserGesture requirements in Service Workers"
824   condition: ENABLE(SERVICE_WORKER)
825   defaultValue:
826     WebKitLegacy:
827       default: false
828     WebKit:
829       default: true
830     WebCore:
831       default: true
833 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
834 SpeakerSelectionRequiresUserGesture:
835   type: bool
836   humanReadableName: "Require a user gesture for speaker selection"
837   humanReadableDescription: "Require a user gesture for speaker selection"
838   condition: ENABLE(MEDIA_STREAM)
839   defaultValue:
840     WebKitLegacy:
841       default: true
842     WebKit:
843       default: true
844     WebCore:
845       default: true
847 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
848 TextAutosizingUsesIdempotentMode:
849   type: bool
850   webcoreOnChange: textAutosizingUsesIdempotentModeChanged
851   humanReadableName: "Idempotent Text Autosizing"
852   humanReadableDescription: "Use idempotent text autosizing mode"
853   condition: ENABLE(TEXT_AUTOSIZING)
854   defaultValue:
855     WebKitLegacy:
856       default: false
857     WebKit:
858       "PLATFORM(IOS_FAMILY)": defaultTextAutosizingUsesIdempotentMode()
859       default: false
860     WebCore:
861       default: false
863 TextRecognitionEnhancementsEnabled:
864   type: bool
865   humanReadableName: "Text Recognition Enhancements"
866   humanReadableDescription: "Enable Text Recognition Enhancements"
867   condition: ENABLE(IMAGE_ANALYSIS)
868   exposed: [ WebKit ]
869   defaultValue:
870     WebCore:
871       default: false
872     WebKitLegacy:
873       default: false
874     WebKit:
875       default: defaultTextRecognitionEnhancementsEnabled()
877 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
878 UndoManagerAPIEnabled:
879   type: bool
880   humanReadableName: "UndoManager DOM API"
881   humanReadableDescription: "Enable the UndoManager DOM API"
882   defaultValue:
883     WebKitLegacy:
884       default: false
885     WebKit:
886       default: false
887     WebCore:
888       default: false
890 UpgradeKnownHostsToHTTPSEnabled:
891   type: bool
892   humanReadableName: "Upgrade known hosts to HTTPS"
893   humanReadableDescription: "Upgrade known hosts to HTTPS"
894   webcoreBinding: none
895   exposed: [ WebKit ]
896   defaultValue:
897     WebKit:
898       default: true
900 UseARKitForModel:
901   type: bool
902   humanReadableName: "Use ARKit for <model>"
903   humanReadableDescription: "Use ARKit for <model>"
904   webcoreBinding: none
905   exposed: [ WebKit ]
906   condition: ENABLE(ARKIT_INLINE_PREVIEW)
907   defaultValue:
908     WebKit:
909       default: true
911 UseCGDisplayListsForDOMRendering:
912   type: bool
913   humanReadableName: "CG Display Lists: DOM Rendering"
914   humanReadableDescription: "Use CG Display Lists for DOM rendering"
915   webcoreBinding: none
916   condition: ENABLE(CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER)
917   exposed: [ WebKit ]
918   defaultValue:
919     WebKit:
920       default: true
922 UseGPUProcessForCanvasRenderingEnabled:
923   type: bool
924   humanReadableName: "GPU Process: Canvas Rendering"
925   humanReadableDescription: "Enable canvas rendering in GPU Process"
926   webcoreBinding: none
927   condition: ENABLE(GPU_PROCESS) && !(PLATFORM(GTK) || PLATFORM(WPE))
928   exposed: [ WebKit ]
929   defaultValue:
930     WebKit:
931       "ENABLE(GPU_PROCESS_BY_DEFAULT)": true
932       "PLATFORM(WIN)": true
933       default: false
935 UseGPUProcessForMediaEnabled:
936   type: bool
937   humanReadableName: "GPU Process: Media"
938   humanReadableDescription: "Do all media loading and playback in the GPU Process"
939   webcoreBinding: none
940   condition: ENABLE(GPU_PROCESS) && !USE(GSTREAMER)
941   exposed: [ WebKit ]
942   defaultValue:
943     WebKit:
944       "ENABLE(GPU_PROCESS_BY_DEFAULT)": true
945       default: false
947 UseGeneralDirectoryForStorage:
948   type: bool
949   humanReadableName: "Use General Directory For Storage"
950   humanReadableDescription: "Use general storage directory for IndexedDB and LocalStorage"
951   webcoreBinding: none
952   exposed: [ WebKit ]
953   defaultValue:
954     WebKit:
955       default: true
957 UseSceneKitForModel:
958   type: bool
959   humanReadableName: "Use SceneKit for <model>"
960   humanReadableDescription: "Use SceneKit for <model>"
961   webcoreBinding: none
962   exposed: [ WebKit ]
963   condition: HAVE(SCENEKIT)
964   defaultValue:
965     WebKit:
966       default: false
968 WebAPIStatisticsEnabled:
969   type: bool
970   humanReadableName: "Web API Statistics"
971   humanReadableDescription: "Enable Web API Statistics"
972   webcoreBinding: RuntimeEnabledFeatures
973   defaultValue:
974     WebKitLegacy:
975       default: false
976     WebKit:
977       default: false
979 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
980 WebRTCDTMFEnabled:
981   type: bool
982   humanReadableName: "WebRTC DTMF"
983   humanReadableDescription: "Enable WebRTC DTMF"
984   webcoreBinding: RuntimeEnabledFeatures
985   condition: ENABLE(WEB_RTC)
986   defaultValue:
987     WebKitLegacy:
988       default: true
989     WebKit:
990       default: true
992 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
993 WebRTCH264HardwareEncoderEnabled:
994   type: bool
995   humanReadableName: "WebRTC H264 Hardware encoder"
996   humanReadableDescription: "Enable H264 Hardware encoder"
997   webcoreBinding: none
998   condition: ENABLE(WEB_RTC)
999   defaultValue:
1000     WebKitLegacy:
1001       default: true
1002     WebKit:
1003       default: true
1005 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
1006 WebRTCH264SimulcastEnabled:
1007   type: bool
1008   humanReadableName: "WebRTC H264 Simulcast"
1009   humanReadableDescription: "Enable WebRTC H264 Simulcast"
1010   webcoreBinding: RuntimeEnabledFeatures
1011   condition: ENABLE(WEB_RTC)
1012   defaultValue:
1013     WebKitLegacy:
1014       default: true
1015     WebKit:
1016       default: true
1018 # FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
1019 WebRTCMDNSICECandidatesEnabled:
1020   type: bool
1021   humanReadableName: "WebRTC mDNS ICE candidates"
1022   humanReadableDescription: "Enable WebRTC mDNS ICE candidates"
1023   webcoreBinding: RuntimeEnabledFeatures
1024   condition: ENABLE(WEB_RTC)
1025   defaultValue:
1026     WebKitLegacy:
1027       default: false
1028     WebKit:
1029       default: true
1031 # FIXME: This is not relevant for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
1032 WebRTCPlatformCodecsInGPUProcessEnabled:
1033   type: bool
1034   humanReadableName: "GPU Process: WebRTC Platform Codecs"
1035   humanReadableDescription: "Enable WebRTC Platform Codecs in GPU Process"
1036   condition: ENABLE(WEB_RTC)
1037   defaultValue:
1038     WebKitLegacy:
1039       default: false
1040     WebKit:
1041       "ENABLE(GPU_PROCESS_BY_DEFAULT)": true
1042       default: false
1043     WebCore:
1044       default: false
1046 WebRTCRemoteVideoFrameEnabled:
1047   type: bool
1048   humanReadableName: "WebRTC Remote Video Frame"
1049   humanReadableDescription: "Enable WebRTC Remote Video Frame"
1050   condition: ENABLE(WEB_RTC)
1051   defaultValue:
1052     WebKitLegacy:
1053       default: false
1054     WebKit:
1055       "PLATFORM(COCOA)": true
1056       default: false
1057     WebCore:
1058       default: false
1060 WebSQLEnabled:
1061   type: bool
1062   humanReadableName: "Enable WebSQL"
1063   humanReadableDescription: "Enable WebSQL"
1064   webcoreBinding: custom
1065   exposed: [ WebKitLegacy ]
1066   defaultValue:
1067     WebKitLegacy:
1068       "PLATFORM(IOS_FAMILY)": WebKit::defaultWebSQLEnabled()
1069       default: true
1071 ZoomOnDoubleTapWhenRoot:
1072   type: bool
1073   condition: PLATFORM(IOS_FAMILY)
1074   humanReadableName: "DTTZ also when root"
1075   humanReadableDescription: "Double taps zoom, even if we dispatched a click on the root nodes"
1076   webcoreBinding: none
1077   exposed: [ WebKit ]
1078   defaultValue:
1079     WebKit:
1080       default: false