1/*
2 * Copyright (C) 2006-2019 Apple Inc. All rights reserved.
3 * Copyright (C) 2007-2009 Torch Mobile, Inc.
4 * Copyright (C) 2010, 2011 Research In Motion Limited. All rights reserved.
5 * Copyright (C) 2013 Samsung Electronics. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
20 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
24 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#pragma once
30
31/* Use this file to list _all_ ENABLE() macros. Define the macros to be one of the following values:
32 * - "0" disables the feature by default. The feature can still be enabled for a specific port or environment.
33 * - "1" enables the feature by default. The feature can still be disabled for a specific port or environment.
34 *
35 * The feature defaults in this file are only taken into account if the (port specific) build system
36 * has not enabled or disabled a particular feature.
37 *
38 * Use this file to define ENABLE() macros only. Do not use this file to define USE() or macros !
39 *
40 * Only define a macro if it was not defined before - always check for !defined first.
41 *
42 * Keep the file sorted by the name of the defines. As an exception you can change the order
43 * to allow interdependencies between the default values.
44 *
45 * Below are a few potential commands to take advantage of this file running from the Source/WTF directory
46 *
47 * Get the list of feature defines: grep -o "ENABLE_\(\w\+\)" wtf/FeatureDefines.h | sort | uniq
48 * Get the list of features enabled by default for a PLATFORM(XXX): gcc -E -dM -I. -DWTF_PLATFORM_XXX "wtf/Platform.h" | grep "ENABLE_\w\+ 1" | cut -d' ' -f2 | sort
49 */
50
51/* FIXME: Move out the PLATFORM specific rules into platform specific files. */
52
53/* --------- Apple IOS (but not MAC) port --------- */
54#if PLATFORM(IOS_FAMILY)
55
56#if !defined(ENABLE_AIRPLAY_PICKER)
57#if !PLATFORM(MACCATALYST)
58#define ENABLE_AIRPLAY_PICKER 1
59#endif
60#endif
61
62#if !defined(ENABLE_APPLE_PAY_REMOTE_UI)
63#if !PLATFORM(APPLETV) && !PLATFORM(MACCATALYST) && !PLATFORM(WATCHOS)
64#define ENABLE_APPLE_PAY_REMOTE_UI 1
65#endif
66#endif
67
68#if !defined(ENABLE_ASYNC_SCROLLING)
69#define ENABLE_ASYNC_SCROLLING 1
70#endif
71
72#if !defined(ENABLE_CONTENT_EXTENSIONS)
73#define ENABLE_CONTENT_EXTENSIONS 1
74#endif
75
76#if !defined(ENABLE_CONTEXT_MENUS)
77#define ENABLE_CONTEXT_MENUS 0
78#endif
79
80#if !defined(ENABLE_CONTEXT_MENU_EVENT)
81#if !PLATFORM(MACCATALYST)
82#define ENABLE_CONTEXT_MENU_EVENT 0
83#endif
84#endif
85
86#if !defined(ENABLE_CURSOR_SUPPORT)
87#define ENABLE_CURSOR_SUPPORT 0
88#endif
89
90#if !defined(ENABLE_DRAG_SUPPORT)
91#define ENABLE_DRAG_SUPPORT 0
92#endif
93
94#if !defined(ENABLE_GEOLOCATION)
95#define ENABLE_GEOLOCATION 1
96#endif
97
98#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
99#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
100#endif
101
102#if !defined(ENABLE_INSPECTOR_TELEMETRY)
103#define ENABLE_INSPECTOR_TELEMETRY 0
104#endif
105
106#if !defined(ENABLE_LETTERPRESS)
107#define ENABLE_LETTERPRESS 1
108#endif
109
110#if !defined(ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE)
111#define ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE 1
112#endif
113
114#if !defined(ENABLE_IOS_GESTURE_EVENTS) && USE(APPLE_INTERNAL_SDK)
115#define ENABLE_IOS_GESTURE_EVENTS 1
116#endif
117
118#if !defined(ENABLE_TEXT_AUTOSIZING)
119#define ENABLE_TEXT_AUTOSIZING 1
120#endif
121
122#if !defined(ENABLE_IOS_TOUCH_EVENTS) && USE(APPLE_INTERNAL_SDK)
123#define ENABLE_IOS_TOUCH_EVENTS 1
124#endif
125
126#if !defined(ENABLE_METER_ELEMENT)
127#define ENABLE_METER_ELEMENT 0
128#endif
129
130#if !defined(ENABLE_NETSCAPE_PLUGIN_API)
131#define ENABLE_NETSCAPE_PLUGIN_API 0
132#endif
133
134#if !defined(ENABLE_ORIENTATION_EVENTS)
135#define ENABLE_ORIENTATION_EVENTS 1
136#endif
137
138#if !defined(ENABLE_POINTER_LOCK)
139#define ENABLE_POINTER_LOCK 0
140#endif
141
142#if !defined(ENABLE_REMOTE_INSPECTOR)
143#define ENABLE_REMOTE_INSPECTOR 1
144#endif
145
146#if !defined(ENABLE_RESPECT_EXIF_ORIENTATION)
147#define ENABLE_RESPECT_EXIF_ORIENTATION 1
148#endif
149
150#if !defined(ENABLE_TEXT_CARET)
151#define ENABLE_TEXT_CARET 0
152#endif
153
154#if !defined(ENABLE_TEXT_SELECTION)
155#define ENABLE_TEXT_SELECTION 0
156#endif
157
158/* FIXME: Remove the USE(APPLE_INTERNAL_SDK) conjunct once we support touch events when building against
159the public iOS SDK. See <https://webkit.org/b/179167>. */
160#if !defined(ENABLE_TOUCH_EVENTS) && USE(APPLE_INTERNAL_SDK)
161#define ENABLE_TOUCH_EVENTS 1
162#endif
163
164#if !defined(ENABLE_WEB_ARCHIVE)
165#define ENABLE_WEB_ARCHIVE 1
166#endif
167
168#if !defined(ENABLE_WEBGL)
169#define ENABLE_WEBGL 1
170#endif
171
172#if !defined(ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
173#define ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC 1
174#endif
175
176#if !defined(ENABLE_DOWNLOAD_ATTRIBUTE)
177#define ENABLE_DOWNLOAD_ATTRIBUTE 1
178#endif
179
180#if !defined(ENABLE_WKPDFVIEW)
181#if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) && !PLATFORM(MACCATALYST) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000
182#define ENABLE_WKPDFVIEW 1
183#endif
184#endif
185
186#if !defined(HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING)
187#if PLATFORM(IOS)
188#define HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING 1
189#endif
190#endif
191
192#if PLATFORM(MACCATALYST) || PLATFORM(IOS)
193#if !defined(USE_UIKIT_KEYBOARD_ADDITIONS)
194#define USE_UIKIT_KEYBOARD_ADDITIONS 1
195#endif
196#endif
197
198#if !defined(HAVE_VISIBILITY_PROPAGATION_VIEW)
199#define HAVE_VISIBILITY_PROPAGATION_VIEW 1
200#endif
201
202#if !defined(HAVE_UISCENE)
203#define HAVE_UISCENE 1
204#endif
205
206#if !defined(HAVE_AVSTREAMSESSION)
207#define HAVE_AVSTREAMSESSION 0
208#endif
209
210#if !defined(ENABLE_MEDIA_SOURCE)
211#define ENABLE_MEDIA_SOURCE 0
212#endif
213
214#if !defined(HAVE_PASSKIT_API_TYPE)
215#define HAVE_PASSKIT_API_TYPE 1
216#endif
217
218#if !defined(HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER)
219#if PLATFORM(IOS)
220#define HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER 1
221#endif
222#endif
223
224#if !defined(ENABLE_PREVIEW_CONVERTER)
225#if PLATFORM(IOS)
226#define ENABLE_PREVIEW_CONVERTER 1
227#endif
228#endif
229
230#endif /* PLATFORM(IOS_FAMILY) */
231
232/* --------- Apple WATCHOS port --------- */
233#if PLATFORM(WATCHOS)
234
235#endif /* PLATFORM(WATCHOS) */
236
237/* --------- Apple MAC port (not IOS) --------- */
238#if PLATFORM(MAC)
239
240#if !defined(ENABLE_CONTENT_EXTENSIONS)
241#define ENABLE_CONTENT_EXTENSIONS 1
242#endif
243
244#if !defined(ENABLE_FULLSCREEN_API)
245#define ENABLE_FULLSCREEN_API 1
246#endif
247
248#if !defined(ENABLE_REMOTE_INSPECTOR)
249#define ENABLE_REMOTE_INSPECTOR 1
250#endif
251
252#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
253#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
254#endif
255
256#if !defined(ENABLE_INSPECTOR_TELEMETRY)
257#define ENABLE_INSPECTOR_TELEMETRY 1
258#endif
259
260#if !defined(ENABLE_SMOOTH_SCROLLING)
261#define ENABLE_SMOOTH_SCROLLING 1
262#endif
263
264#if !defined(ENABLE_ASYNC_SCROLLING)
265#define ENABLE_ASYNC_SCROLLING 1
266#endif
267
268#if ENABLE(VIDEO)
269#if !defined(ENABLE_VIDEO_TRACK)
270#define ENABLE_VIDEO_TRACK 1
271#endif
272#endif
273
274#if !defined(ENABLE_WEB_ARCHIVE)
275#define ENABLE_WEB_ARCHIVE 1
276#endif
277
278#if !defined(ENABLE_WEB_AUDIO)
279#define ENABLE_WEB_AUDIO 1
280#endif
281
282#if !defined(ENABLE_CURSOR_VISIBILITY)
283#define ENABLE_CURSOR_VISIBILITY 1
284#endif
285
286#if !defined(ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
287#define ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC 1
288#endif
289
290#if !defined(ENABLE_MAC_GESTURE_EVENTS) && USE(APPLE_INTERNAL_SDK)
291#define ENABLE_MAC_GESTURE_EVENTS 1
292#endif
293
294#if !defined(ENABLE_WEBPROCESS_NSRUNLOOP)
295#define ENABLE_WEBPROCESS_NSRUNLOOP __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
296#endif
297
298#if !defined(ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING)
299#define ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING ENABLE_WEBPROCESS_NSRUNLOOP
300#endif
301
302#if !defined(HAVE_AVSTREAMSESSION)
303#define HAVE_AVSTREAMSESSION 1
304#endif
305
306#if !defined(ENABLE_MEDIA_SOURCE)
307#define ENABLE_MEDIA_SOURCE 1
308#endif
309
310#if !defined(HAVE_PASSKIT_API_TYPE)
311#define HAVE_PASSKIT_API_TYPE 1
312#endif
313
314#if !defined(HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER)
315#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
316#define HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER 1
317#endif
318#endif
319
320#endif /* PLATFORM(MAC) */
321
322#if PLATFORM(COCOA)
323
324#if !defined(ENABLE_LEGACY_ENCRYPTED_MEDIA)
325#if PLATFORM(MACCATALYST)
326#define ENABLE_LEGACY_ENCRYPTED_MEDIA 0
327#else
328#define ENABLE_LEGACY_ENCRYPTED_MEDIA 1
329#endif
330#endif
331
332#if !defined(ENABLE_FILE_REPLACEMENT)
333#define ENABLE_FILE_REPLACEMENT 1
334#endif
335
336#if !defined(ENABLE_KEYBOARD_KEY_ATTRIBUTE)
337#define ENABLE_KEYBOARD_KEY_ATTRIBUTE 1
338#endif
339
340#if !defined(ENABLE_KEYBOARD_CODE_ATTRIBUTE)
341#define ENABLE_KEYBOARD_CODE_ATTRIBUTE 1
342#endif
343
344#if !defined(ENABLE_PAYMENT_REQUEST)
345#define ENABLE_PAYMENT_REQUEST 1
346#endif
347
348#endif /* PLATFORM(COCOA) */
349
350#if !PLATFORM(COCOA)
351
352#if !defined(JSC_OBJC_API_ENABLED)
353#define JSC_OBJC_API_ENABLED 0
354#endif
355
356#endif /* !PLATFORM(COCOA) */
357
358
359/* --------- Apple Windows port --------- */
360#if PLATFORM(WIN) && !PLATFORM(WIN_CAIRO)
361
362#if !defined(ENABLE_FULLSCREEN_API)
363#define ENABLE_FULLSCREEN_API 1
364#endif
365
366#if !defined(ENABLE_WEB_ARCHIVE)
367#define ENABLE_WEB_ARCHIVE 1
368#endif
369
370#if !defined(ENABLE_WEBGL)
371#define ENABLE_WEBGL 0
372#endif
373
374#if !defined(ENABLE_GEOLOCATION)
375#define ENABLE_GEOLOCATION 1
376#endif
377
378#endif /* PLATFORM(WIN) && !PLATFORM(WIN_CAIRO) */
379
380/* --------- Windows CAIRO port --------- */
381/* PLATFORM(WIN_CAIRO) is a specialization of PLATFORM(WIN). */
382/* PLATFORM(WIN) is always enabled when PLATFORM(WIN_CAIRO) is enabled. */
383#if PLATFORM(WIN_CAIRO)
384
385#if !defined(ENABLE_WEB_ARCHIVE)
386#define ENABLE_WEB_ARCHIVE 1
387#endif
388
389#if !defined(ENABLE_WEBGL)
390#define ENABLE_WEBGL 1
391#endif
392
393#if !defined(ENABLE_GEOLOCATION)
394#define ENABLE_GEOLOCATION 1
395#endif
396
397#endif /* PLATFORM(WIN_CAIRO) */
398
399/* --------- Gtk port (Unix, Windows, Mac) and WPE --------- */
400#if PLATFORM(GTK) || PLATFORM(WPE)
401#if !defined(ENABLE_KEYBOARD_KEY_ATTRIBUTE)
402#define ENABLE_KEYBOARD_KEY_ATTRIBUTE 1
403#endif
404
405#if !defined(ENABLE_KEYBOARD_CODE_ATTRIBUTE)
406#define ENABLE_KEYBOARD_CODE_ATTRIBUTE 1
407#endif
408#endif /* PLATFORM(GTK) || PLATFORM(WPE) */
409
410/* ENABLE macro defaults for WebCore */
411/* Do not use PLATFORM() tests in this section ! */
412
413#if !defined(ENABLE_3D_TRANSFORMS)
414#define ENABLE_3D_TRANSFORMS 0
415#endif
416
417#if !defined(ENABLE_ACCESSIBILITY)
418#define ENABLE_ACCESSIBILITY 1
419#endif
420
421#if !defined(ENABLE_ACCELERATED_2D_CANVAS)
422#define ENABLE_ACCELERATED_2D_CANVAS 0
423#endif
424
425#if !defined(ENABLE_OVERFLOW_SCROLLING_TOUCH)
426#define ENABLE_OVERFLOW_SCROLLING_TOUCH 0
427#endif
428
429#if !defined(ENABLE_APNG)
430#define ENABLE_APNG 1
431#endif
432
433#if !defined(ENABLE_CHANNEL_MESSAGING)
434#define ENABLE_CHANNEL_MESSAGING 1
435#endif
436
437#if !defined(ENABLE_CONTENT_EXTENSIONS)
438#define ENABLE_CONTENT_EXTENSIONS 0
439#endif
440
441#if !defined(ENABLE_CONTEXT_MENUS)
442#define ENABLE_CONTEXT_MENUS 1
443#endif
444
445#if !defined(ENABLE_CONTEXT_MENU_EVENT)
446#define ENABLE_CONTEXT_MENU_EVENT 1
447#endif
448
449#if !defined(ENABLE_CSS3_TEXT)
450#define ENABLE_CSS3_TEXT 0
451#endif
452
453#if !defined(ENABLE_CSS_BOX_DECORATION_BREAK)
454#define ENABLE_CSS_BOX_DECORATION_BREAK 1
455#endif
456
457#if !defined(ENABLE_CSS_DEVICE_ADAPTATION)
458#define ENABLE_CSS_DEVICE_ADAPTATION 0
459#endif
460
461#if !defined(ENABLE_CSS_COMPOSITING)
462#define ENABLE_CSS_COMPOSITING 0
463#endif
464
465#if !defined(ENABLE_CSS_IMAGE_ORIENTATION)
466#define ENABLE_CSS_IMAGE_ORIENTATION 0
467#endif
468
469#if !defined(ENABLE_CSS_IMAGE_RESOLUTION)
470#define ENABLE_CSS_IMAGE_RESOLUTION 0
471#endif
472
473#if !defined(ENABLE_CSS_CONIC_GRADIENTS)
474#define ENABLE_CSS_CONIC_GRADIENTS 0
475#endif
476
477#if !defined(ENABLE_CURSOR_SUPPORT)
478#define ENABLE_CURSOR_SUPPORT 1
479#endif
480
481#if !defined(ENABLE_CUSTOM_SCHEME_HANDLER)
482#define ENABLE_CUSTOM_SCHEME_HANDLER 0
483#endif
484
485#if !defined(ENABLE_DARK_MODE_CSS)
486#define ENABLE_DARK_MODE_CSS 0
487#endif
488
489#if !defined(ENABLE_DATALIST_ELEMENT)
490#define ENABLE_DATALIST_ELEMENT 0
491#endif
492
493#if !defined(ENABLE_DEVICE_ORIENTATION)
494#define ENABLE_DEVICE_ORIENTATION 0
495#endif
496
497#if !defined(ENABLE_DOWNLOAD_ATTRIBUTE)
498#define ENABLE_DOWNLOAD_ATTRIBUTE 1
499#endif
500
501#if !defined(ENABLE_DRAG_SUPPORT)
502#define ENABLE_DRAG_SUPPORT 1
503#endif
504
505#if !defined(ENABLE_ENCRYPTED_MEDIA)
506#define ENABLE_ENCRYPTED_MEDIA 0
507#endif
508
509#if !defined(ENABLE_FILTERS_LEVEL_2)
510#define ENABLE_FILTERS_LEVEL_2 0
511#endif
512
513#if !defined(ENABLE_FTPDIR)
514#define ENABLE_FTPDIR 1
515#endif
516
517#if !defined(ENABLE_FULLSCREEN_API)
518#define ENABLE_FULLSCREEN_API 0
519#endif
520
521#if !defined(ENABLE_GAMEPAD)
522#define ENABLE_GAMEPAD 0
523#endif
524
525#if !defined(ENABLE_GEOLOCATION)
526#define ENABLE_GEOLOCATION 0
527#endif
528
529#if !defined(ENABLE_INDEXED_DATABASE)
530#define ENABLE_INDEXED_DATABASE 0
531#endif
532
533#if !defined(ENABLE_INDEXED_DATABASE_IN_WORKERS)
534#define ENABLE_INDEXED_DATABASE_IN_WORKERS 0
535#endif
536
537#if !defined(ENABLE_INPUT_TYPE_COLOR)
538#define ENABLE_INPUT_TYPE_COLOR 1
539#endif
540
541#if !defined(ENABLE_INPUT_TYPE_DATE)
542#define ENABLE_INPUT_TYPE_DATE 0
543#endif
544
545#if !defined(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE)
546#define ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE 0
547#endif
548
549#if !defined(ENABLE_INPUT_TYPE_DATETIMELOCAL)
550#define ENABLE_INPUT_TYPE_DATETIMELOCAL 0
551#endif
552
553#if !defined(ENABLE_INPUT_TYPE_MONTH)
554#define ENABLE_INPUT_TYPE_MONTH 0
555#endif
556
557#if !defined(ENABLE_INPUT_TYPE_TIME)
558#define ENABLE_INPUT_TYPE_TIME 0
559#endif
560
561#if !defined(ENABLE_INPUT_TYPE_WEEK)
562#define ENABLE_INPUT_TYPE_WEEK 0
563#endif
564
565#if ENABLE(INPUT_TYPE_DATE) || ENABLE(INPUT_TYPE_DATETIME_INCOMPLETE) || ENABLE(INPUT_TYPE_DATETIMELOCAL) || ENABLE(INPUT_TYPE_MONTH) || ENABLE(INPUT_TYPE_TIME) || ENABLE(INPUT_TYPE_WEEK)
566#if !defined(ENABLE_DATE_AND_TIME_INPUT_TYPES)
567#define ENABLE_DATE_AND_TIME_INPUT_TYPES 1
568#endif
569#endif
570
571#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
572#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 0
573#endif
574
575#if !defined(ENABLE_INSPECTOR_TELEMETRY)
576#define ENABLE_INSPECTOR_TELEMETRY 0
577#endif
578
579#if !defined(ENABLE_INTL)
580#define ENABLE_INTL 0
581#endif
582
583#if !defined(ENABLE_LAYOUT_FORMATTING_CONTEXT)
584#define ENABLE_LAYOUT_FORMATTING_CONTEXT 0
585#endif
586
587#if !defined(ENABLE_LEGACY_CSS_VENDOR_PREFIXES)
588#define ENABLE_LEGACY_CSS_VENDOR_PREFIXES 0
589#endif
590
591#if !defined(ENABLE_LETTERPRESS)
592#define ENABLE_LETTERPRESS 0
593#endif
594
595#if !defined(ENABLE_MATHML)
596#define ENABLE_MATHML 1
597#endif
598
599#if !defined(ENABLE_MEDIA_CAPTURE)
600#define ENABLE_MEDIA_CAPTURE 0
601#endif
602
603#if !defined(ENABLE_MEDIA_CONTROLS_SCRIPT)
604#define ENABLE_MEDIA_CONTROLS_SCRIPT 0
605#endif
606
607#if !defined(ENABLE_MEDIA_SOURCE)
608#define ENABLE_MEDIA_SOURCE 0
609#endif
610
611#if !defined(ENABLE_MEDIA_STATISTICS)
612#define ENABLE_MEDIA_STATISTICS 0
613#endif
614
615#if !defined(ENABLE_MEDIA_STREAM)
616#define ENABLE_MEDIA_STREAM 0
617#endif
618
619#if !defined(ENABLE_METER_ELEMENT)
620#define ENABLE_METER_ELEMENT 1
621#endif
622
623#if !defined(ENABLE_MHTML)
624#define ENABLE_MHTML 0
625#endif
626
627#if !defined(ENABLE_MOUSE_CURSOR_SCALE)
628#define ENABLE_MOUSE_CURSOR_SCALE 0
629#endif
630
631#if !defined(ENABLE_MOUSE_FORCE_EVENTS)
632#define ENABLE_MOUSE_FORCE_EVENTS 1
633#endif
634
635#if !defined(ENABLE_NETSCAPE_PLUGIN_API)
636#define ENABLE_NETSCAPE_PLUGIN_API 1
637#endif
638
639#if !defined(ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE)
640#define ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE 0
641#endif
642
643#if !defined(ENABLE_NOTIFICATIONS)
644#define ENABLE_NOTIFICATIONS 0
645#endif
646
647#if !defined(ENABLE_OFFSCREEN_CANVAS)
648#define ENABLE_OFFSCREEN_CANVAS 0
649#endif
650
651#if !defined(ENABLE_OPENTYPE_VERTICAL)
652#define ENABLE_OPENTYPE_VERTICAL 0
653#endif
654
655#if !defined(ENABLE_ORIENTATION_EVENTS)
656#define ENABLE_ORIENTATION_EVENTS 0
657#endif
658
659#if OS(WINDOWS)
660#if !defined(ENABLE_PAN_SCROLLING)
661#define ENABLE_PAN_SCROLLING 1
662#endif
663#endif
664
665#if !defined(ENABLE_PAYMENT_REQUEST)
666#define ENABLE_PAYMENT_REQUEST 0
667#endif
668
669#if !defined(ENABLE_POINTER_LOCK)
670#define ENABLE_POINTER_LOCK 1
671#endif
672
673#if !defined(ENABLE_QUOTA)
674#define ENABLE_QUOTA 0
675#endif
676
677#if !defined(ENABLE_REMOTE_INSPECTOR)
678#define ENABLE_REMOTE_INSPECTOR 0
679#endif
680
681#if !defined(ENABLE_RUBBER_BANDING)
682#define ENABLE_RUBBER_BANDING 0
683#endif
684
685#if !defined(ENABLE_SMOOTH_SCROLLING)
686#define ENABLE_SMOOTH_SCROLLING 0
687#endif
688
689#if !defined(ENABLE_SPEECH_SYNTHESIS)
690#define ENABLE_SPEECH_SYNTHESIS 0
691#endif
692
693#if !defined(ENABLE_SPELLCHECK)
694#define ENABLE_SPELLCHECK 0
695#endif
696
697#if !defined(ENABLE_STREAMS_API)
698#define ENABLE_STREAMS_API 1
699#endif
700
701#if !defined(ENABLE_SVG_FONTS)
702#define ENABLE_SVG_FONTS 1
703#endif
704
705#if !defined(ENABLE_TEXT_CARET)
706#define ENABLE_TEXT_CARET 1
707#endif
708
709#if !defined(ENABLE_TEXT_SELECTION)
710#define ENABLE_TEXT_SELECTION 1
711#endif
712
713#if !defined(ENABLE_ASYNC_SCROLLING)
714#define ENABLE_ASYNC_SCROLLING 0
715#endif
716
717#if !defined(ENABLE_TOUCH_EVENTS)
718#define ENABLE_TOUCH_EVENTS 0
719#endif
720
721#if !defined(ENABLE_VIDEO)
722#define ENABLE_VIDEO 0
723#endif
724
725#if !defined(ENABLE_VIDEO_TRACK)
726#define ENABLE_VIDEO_TRACK 0
727#endif
728
729#if !defined(ENABLE_DATACUE_VALUE)
730#define ENABLE_DATACUE_VALUE 0
731#endif
732
733#if !defined(ENABLE_WEBGL)
734#define ENABLE_WEBGL 0
735#endif
736
737#if !defined(ENABLE_GRAPHICS_CONTEXT_3D)
738#define ENABLE_GRAPHICS_CONTEXT_3D ENABLE_WEBGL
739#endif
740
741#if !defined(ENABLE_WEB_ARCHIVE)
742#define ENABLE_WEB_ARCHIVE 0
743#endif
744
745#if !defined(ENABLE_WEB_AUDIO)
746#define ENABLE_WEB_AUDIO 0
747#endif
748
749#if !defined(ENABLE_XSLT)
750#define ENABLE_XSLT 1
751#endif
752
753#if !defined(ENABLE_KEYBOARD_KEY_ATTRIBUTE)
754#define ENABLE_KEYBOARD_KEY_ATTRIBUTE 0
755#endif
756
757#if !defined(ENABLE_KEYBOARD_CODE_ATTRIBUTE)
758#define ENABLE_KEYBOARD_CODE_ATTRIBUTE 0
759#endif
760
761#if !defined(ENABLE_DATA_INTERACTION)
762#define ENABLE_DATA_INTERACTION 0
763#endif
764
765#if !defined(ENABLE_SERVICE_WORKER)
766#define ENABLE_SERVICE_WORKER 1
767#endif
768
769/* Asserts, invariants for macro definitions */
770
771#if ENABLE(VIDEO_TRACK) && !ENABLE(VIDEO)
772#error "ENABLE(VIDEO_TRACK) requires ENABLE(VIDEO)"
773#endif
774
775#if ENABLE(MEDIA_CONTROLS_SCRIPT) && !ENABLE(VIDEO)
776#error "ENABLE(MEDIA_CONTROLS_SCRIPT) requires ENABLE(VIDEO)"
777#endif
778
779#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) && !ENABLE(REMOTE_INSPECTOR)
780#error "ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) requires ENABLE(REMOTE_INSPECTOR)"
781#endif
782
783#if ENABLE(IOS_TOUCH_EVENTS) && !ENABLE(TOUCH_EVENTS)
784#error "ENABLE(IOS_TOUCH_EVENTS) requires ENABLE(TOUCH_EVENTS)"
785#endif
786
787#if ENABLE(WEBGL) && !ENABLE(GRAPHICS_CONTEXT_3D)
788#error "ENABLE(WEBGL) requires ENABLE(GRAPHICS_CONTEXT_3D)"
789#endif
790
791#if ENABLE(WEBGL2) && !ENABLE(WEBGL)
792#error "ENABLE(WEBGL2) requires ENABLE(WEBGL)"
793#endif
794