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(IOSMAC)
58#define ENABLE_AIRPLAY_PICKER 1
59#endif
60#endif
61
62#if !defined(ENABLE_APPLE_PAY_REMOTE_UI)
63#if !PLATFORM(APPLETV) && !PLATFORM(IOSMAC) && !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_CURSOR_SUPPORT)
81#define ENABLE_CURSOR_SUPPORT 0
82#endif
83
84#if !defined(ENABLE_DRAG_SUPPORT)
85#define ENABLE_DRAG_SUPPORT 0
86#endif
87
88#if !defined(ENABLE_GEOLOCATION)
89#define ENABLE_GEOLOCATION 1
90#endif
91
92#if !defined(ENABLE_ICONDATABASE)
93#define ENABLE_ICONDATABASE 0
94#endif
95
96#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
97#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
98#endif
99
100#if !defined(ENABLE_LETTERPRESS)
101#define ENABLE_LETTERPRESS 1
102#endif
103
104#if !defined(ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE)
105#define ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE 1
106#endif
107
108#if !defined(ENABLE_IOS_GESTURE_EVENTS) && USE(APPLE_INTERNAL_SDK)
109#define ENABLE_IOS_GESTURE_EVENTS 1
110#endif
111
112#if !defined(ENABLE_TEXT_AUTOSIZING)
113#define ENABLE_TEXT_AUTOSIZING 1
114#endif
115
116#if !defined(ENABLE_IOS_TOUCH_EVENTS) && USE(APPLE_INTERNAL_SDK)
117#define ENABLE_IOS_TOUCH_EVENTS 1
118#endif
119
120#if !defined(ENABLE_METER_ELEMENT)
121#define ENABLE_METER_ELEMENT 0
122#endif
123
124#if !defined(ENABLE_NETSCAPE_PLUGIN_API)
125#define ENABLE_NETSCAPE_PLUGIN_API 0
126#endif
127
128#if !defined(ENABLE_ORIENTATION_EVENTS)
129#define ENABLE_ORIENTATION_EVENTS 1
130#endif
131
132#if !defined(ENABLE_POINTER_LOCK)
133#define ENABLE_POINTER_LOCK 0
134#endif
135
136#if !defined(ENABLE_REMOTE_INSPECTOR)
137#define ENABLE_REMOTE_INSPECTOR 1
138#endif
139
140#if !defined(ENABLE_RESPECT_EXIF_ORIENTATION)
141#define ENABLE_RESPECT_EXIF_ORIENTATION 1
142#endif
143
144#if !defined(ENABLE_TEXT_CARET)
145#define ENABLE_TEXT_CARET 0
146#endif
147
148#if !defined(ENABLE_TEXT_SELECTION)
149#define ENABLE_TEXT_SELECTION 0
150#endif
151
152/* FIXME: Remove the USE(APPLE_INTERNAL_SDK) conjunct once we support touch events when building against
153the public iOS SDK. See <https://webkit.org/b/179167>. */
154#if !defined(ENABLE_TOUCH_EVENTS) && USE(APPLE_INTERNAL_SDK)
155#define ENABLE_TOUCH_EVENTS 1
156#endif
157
158#if !defined(ENABLE_WEB_ARCHIVE)
159#define ENABLE_WEB_ARCHIVE 1
160#endif
161
162#if !defined(ENABLE_WEBGL)
163#define ENABLE_WEBGL 1
164#endif
165
166#if !defined(ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
167#define ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC 1
168#endif
169
170#if !defined(ENABLE_DOWNLOAD_ATTRIBUTE)
171#define ENABLE_DOWNLOAD_ATTRIBUTE 1
172#endif
173
174#if !defined(ENABLE_WKPDFVIEW)
175#if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) && !PLATFORM(IOSMAC) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 120000
176#define ENABLE_WKPDFVIEW 1
177#endif
178#endif
179
180#if !defined(HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING)
181#if !PLATFORM(WATCHOS) && !PLATFORM(APPLETV) && !PLATFORM(IOSMAC) && __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
182#define HAVE_PDFHOSTVIEWCONTROLLER_SNAPSHOTTING 1
183#endif
184#endif
185
186#if !defined(HAVE_VISIBILITY_PROPAGATION_VIEW)
187#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
188#define HAVE_VISIBILITY_PROPAGATION_VIEW 1
189#endif
190#endif
191
192#if !defined(HAVE_UISCENE)
193#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 130000) || (PLATFORM(APPLETV) && __TV_OS_VERSION_MIN_REQUIRED >= 130000) || (PLATFORM(WATCHOS) && __WATCH_OS_VERSION_MIN_REQUIRED >= 60000)
194#define HAVE_UISCENE 1
195#endif
196#endif
197
198#if !defined(HAVE_AVSTREAMSESSION)
199#define HAVE_AVSTREAMSESSION 0
200#endif
201
202#if !defined(ENABLE_MEDIA_SOURCE)
203#define ENABLE_MEDIA_SOURCE 0
204#endif
205
206#if !defined(HAVE_PASSKIT_GRANULAR_ERRORS)
207#define HAVE_PASSKIT_GRANULAR_ERRORS 1
208#endif
209
210#if !defined(HAVE_PASSKIT_API_TYPE)
211#define HAVE_PASSKIT_API_TYPE 1
212#endif
213
214#if !defined(HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER)
215#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 130000
216#define HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER 1
217#endif
218#endif
219
220#endif /* PLATFORM(IOS_FAMILY) */
221
222/* --------- Apple WATCHOS port --------- */
223#if PLATFORM(WATCHOS)
224
225#endif /* PLATFORM(WATCHOS) */
226
227/* --------- Apple MAC port (not IOS) --------- */
228#if PLATFORM(MAC)
229
230#if !defined(ENABLE_CONTENT_EXTENSIONS)
231#define ENABLE_CONTENT_EXTENSIONS 1
232#endif
233
234#if !defined(ENABLE_FULLSCREEN_API)
235#define ENABLE_FULLSCREEN_API 1
236#endif
237
238#if !defined(ENABLE_REMOTE_INSPECTOR)
239#define ENABLE_REMOTE_INSPECTOR 1
240#endif
241
242#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
243#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
244#endif
245
246#if !defined(ENABLE_SMOOTH_SCROLLING)
247#define ENABLE_SMOOTH_SCROLLING 1
248#endif
249
250#if !defined(ENABLE_ASYNC_SCROLLING)
251#define ENABLE_ASYNC_SCROLLING 1
252#endif
253
254#if ENABLE(VIDEO)
255#if !defined(ENABLE_VIDEO_TRACK)
256#define ENABLE_VIDEO_TRACK 1
257#endif
258#endif
259
260#if !defined(ENABLE_WEB_ARCHIVE)
261#define ENABLE_WEB_ARCHIVE 1
262#endif
263
264#if !defined(ENABLE_WEB_AUDIO)
265#define ENABLE_WEB_AUDIO 1
266#endif
267
268#if !defined(ENABLE_CURSOR_VISIBILITY)
269#define ENABLE_CURSOR_VISIBILITY 1
270#endif
271
272#if !defined(ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
273#define ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC 1
274#endif
275
276#if !defined(ENABLE_MAC_GESTURE_EVENTS) && USE(APPLE_INTERNAL_SDK)
277#define ENABLE_MAC_GESTURE_EVENTS 1
278#endif
279
280#if !defined(ENABLE_WEBPROCESS_NSRUNLOOP)
281#define ENABLE_WEBPROCESS_NSRUNLOOP __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
282#endif
283
284#if !defined(ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING)
285#define ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING ENABLE_WEBPROCESS_NSRUNLOOP
286#endif
287
288#if !defined(HAVE_AVSTREAMSESSION)
289#define HAVE_AVSTREAMSESSION 1
290#endif
291
292#if !defined(ENABLE_MEDIA_SOURCE)
293#define ENABLE_MEDIA_SOURCE 1
294#endif
295
296#if !defined(HAVE_PASSKIT_GRANULAR_ERRORS)
297#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300
298#define HAVE_PASSKIT_GRANULAR_ERRORS 1
299#endif
300#endif
301
302#if !defined(HAVE_PASSKIT_API_TYPE)
303#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101300 && __MAC_OS_X_VERSION_MAX_ALLOWED >= 101304
304#define HAVE_PASSKIT_API_TYPE 1
305#endif
306#endif
307
308#if !defined(HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER)
309#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
310#define HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER 1
311#endif
312#endif
313
314#endif /* PLATFORM(MAC) */
315
316#if PLATFORM(COCOA)
317
318#if !defined(ENABLE_LEGACY_ENCRYPTED_MEDIA)
319#if PLATFORM(IOSMAC)
320#define ENABLE_LEGACY_ENCRYPTED_MEDIA 0
321#else
322#define ENABLE_LEGACY_ENCRYPTED_MEDIA 1
323#endif
324#endif
325
326#if !defined(ENABLE_FILE_REPLACEMENT)
327#define ENABLE_FILE_REPLACEMENT 1
328#endif
329
330#if !defined(ENABLE_KEYBOARD_KEY_ATTRIBUTE)
331#define ENABLE_KEYBOARD_KEY_ATTRIBUTE 1
332#endif
333
334#if !defined(ENABLE_KEYBOARD_CODE_ATTRIBUTE)
335#define ENABLE_KEYBOARD_CODE_ATTRIBUTE 1
336#endif
337
338#if !defined(ENABLE_PAYMENT_REQUEST)
339#define ENABLE_PAYMENT_REQUEST 1
340#endif
341
342#endif /* PLATFORM(COCOA) */
343
344#if !PLATFORM(COCOA)
345
346#if !defined(JSC_OBJC_API_ENABLED)
347#define JSC_OBJC_API_ENABLED 0
348#endif
349
350#endif /* !PLATFORM(COCOA) */
351
352
353/* --------- Apple Windows port --------- */
354#if PLATFORM(WIN) && !PLATFORM(WIN_CAIRO)
355
356#if !defined(ENABLE_FULLSCREEN_API)
357#define ENABLE_FULLSCREEN_API 1
358#endif
359
360#if !defined(ENABLE_WEB_ARCHIVE)
361#define ENABLE_WEB_ARCHIVE 1
362#endif
363
364#if !defined(ENABLE_WEBGL)
365#define ENABLE_WEBGL 0
366#endif
367
368#if !defined(ENABLE_GEOLOCATION)
369#define ENABLE_GEOLOCATION 1
370#endif
371
372#endif /* PLATFORM(WIN) && !PLATFORM(WIN_CAIRO) */
373
374/* --------- Windows CAIRO port --------- */
375/* PLATFORM(WIN_CAIRO) is a specialization of PLATFORM(WIN). */
376/* PLATFORM(WIN) is always enabled when PLATFORM(WIN_CAIRO) is enabled. */
377#if PLATFORM(WIN_CAIRO)
378
379#if !defined(ENABLE_WEB_ARCHIVE)
380#define ENABLE_WEB_ARCHIVE 1
381#endif
382
383#if !defined(ENABLE_WEBGL)
384#define ENABLE_WEBGL 1
385#endif
386
387#if !defined(ENABLE_GEOLOCATION)
388#define ENABLE_GEOLOCATION 1
389#endif
390
391#endif /* PLATFORM(WIN_CAIRO) */
392
393/* --------- Gtk port (Unix, Windows, Mac) and WPE --------- */
394#if PLATFORM(GTK) || PLATFORM(WPE)
395#if !defined(ENABLE_KEYBOARD_KEY_ATTRIBUTE)
396#define ENABLE_KEYBOARD_KEY_ATTRIBUTE 1
397#endif
398
399#if !defined(ENABLE_KEYBOARD_CODE_ATTRIBUTE)
400#define ENABLE_KEYBOARD_CODE_ATTRIBUTE 1
401#endif
402#endif /* PLATFORM(GTK) || PLATFORM(WPE) */
403
404/* ENABLE macro defaults for WebCore */
405/* Do not use PLATFORM() tests in this section ! */
406
407#if !defined(ENABLE_3D_TRANSFORMS)
408#define ENABLE_3D_TRANSFORMS 0
409#endif
410
411#if !defined(ENABLE_ACCELERATED_2D_CANVAS)
412#define ENABLE_ACCELERATED_2D_CANVAS 0
413#endif
414
415#if !defined(ENABLE_OVERFLOW_SCROLLING_TOUCH)
416#define ENABLE_OVERFLOW_SCROLLING_TOUCH 0
417#endif
418
419#if !defined(ENABLE_APNG)
420#define ENABLE_APNG 1
421#endif
422
423#if !defined(ENABLE_CHANNEL_MESSAGING)
424#define ENABLE_CHANNEL_MESSAGING 1
425#endif
426
427#if !defined(ENABLE_CONTENT_EXTENSIONS)
428#define ENABLE_CONTENT_EXTENSIONS 0
429#endif
430
431#if !defined(ENABLE_CONTEXT_MENUS)
432#define ENABLE_CONTEXT_MENUS 1
433#endif
434
435#if !defined(ENABLE_CSS3_TEXT)
436#define ENABLE_CSS3_TEXT 0
437#endif
438
439#if !defined(ENABLE_CSS_BOX_DECORATION_BREAK)
440#define ENABLE_CSS_BOX_DECORATION_BREAK 1
441#endif
442
443#if !defined(ENABLE_CSS_DEVICE_ADAPTATION)
444#define ENABLE_CSS_DEVICE_ADAPTATION 0
445#endif
446
447#if !defined(ENABLE_CSS_COMPOSITING)
448#define ENABLE_CSS_COMPOSITING 0
449#endif
450
451#if !defined(ENABLE_CSS_IMAGE_ORIENTATION)
452#define ENABLE_CSS_IMAGE_ORIENTATION 0
453#endif
454
455#if !defined(ENABLE_CSS_IMAGE_RESOLUTION)
456#define ENABLE_CSS_IMAGE_RESOLUTION 0
457#endif
458
459#if !defined(ENABLE_CSS_CONIC_GRADIENTS)
460#define ENABLE_CSS_CONIC_GRADIENTS 0
461#endif
462
463#if !defined(ENABLE_CURSOR_SUPPORT)
464#define ENABLE_CURSOR_SUPPORT 1
465#endif
466
467#if !defined(ENABLE_CUSTOM_SCHEME_HANDLER)
468#define ENABLE_CUSTOM_SCHEME_HANDLER 0
469#endif
470
471#if !defined(ENABLE_DARK_MODE_CSS)
472#define ENABLE_DARK_MODE_CSS 0
473#endif
474
475#if !defined(ENABLE_DATALIST_ELEMENT)
476#define ENABLE_DATALIST_ELEMENT 0
477#endif
478
479#if !defined(ENABLE_DEVICE_ORIENTATION)
480#define ENABLE_DEVICE_ORIENTATION 0
481#endif
482
483#if !defined(ENABLE_DOWNLOAD_ATTRIBUTE)
484#define ENABLE_DOWNLOAD_ATTRIBUTE 1
485#endif
486
487#if !defined(ENABLE_DRAG_SUPPORT)
488#define ENABLE_DRAG_SUPPORT 1
489#endif
490
491#if !defined(ENABLE_ENCRYPTED_MEDIA)
492#define ENABLE_ENCRYPTED_MEDIA 0
493#endif
494
495#if !defined(ENABLE_FILTERS_LEVEL_2)
496#define ENABLE_FILTERS_LEVEL_2 0
497#endif
498
499#if !defined(ENABLE_FTPDIR)
500#define ENABLE_FTPDIR 1
501#endif
502
503#if !defined(ENABLE_FULLSCREEN_API)
504#define ENABLE_FULLSCREEN_API 0
505#endif
506
507#if !defined(ENABLE_GAMEPAD)
508#define ENABLE_GAMEPAD 0
509#endif
510
511#if !defined(ENABLE_GEOLOCATION)
512#define ENABLE_GEOLOCATION 0
513#endif
514
515#if !defined(ENABLE_ICONDATABASE)
516#define ENABLE_ICONDATABASE 1
517#endif
518
519#if !defined(ENABLE_INDEXED_DATABASE)
520#define ENABLE_INDEXED_DATABASE 0
521#endif
522
523#if !defined(ENABLE_INDEXED_DATABASE_IN_WORKERS)
524#define ENABLE_INDEXED_DATABASE_IN_WORKERS 0
525#endif
526
527#if !defined(ENABLE_INPUT_TYPE_COLOR)
528#define ENABLE_INPUT_TYPE_COLOR 1
529#endif
530
531#if !defined(ENABLE_INPUT_TYPE_DATE)
532#define ENABLE_INPUT_TYPE_DATE 0
533#endif
534
535#if !defined(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE)
536#define ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE 0
537#endif
538
539#if !defined(ENABLE_INPUT_TYPE_DATETIMELOCAL)
540#define ENABLE_INPUT_TYPE_DATETIMELOCAL 0
541#endif
542
543#if !defined(ENABLE_INPUT_TYPE_MONTH)
544#define ENABLE_INPUT_TYPE_MONTH 0
545#endif
546
547#if !defined(ENABLE_INPUT_TYPE_TIME)
548#define ENABLE_INPUT_TYPE_TIME 0
549#endif
550
551#if !defined(ENABLE_INPUT_TYPE_WEEK)
552#define ENABLE_INPUT_TYPE_WEEK 0
553#endif
554
555#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)
556#if !defined(ENABLE_DATE_AND_TIME_INPUT_TYPES)
557#define ENABLE_DATE_AND_TIME_INPUT_TYPES 1
558#endif
559#endif
560
561#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
562#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 0
563#endif
564
565#if !defined(ENABLE_INTL)
566#define ENABLE_INTL 0
567#endif
568
569#if !defined(ENABLE_LAYOUT_FORMATTING_CONTEXT)
570#define ENABLE_LAYOUT_FORMATTING_CONTEXT 0
571#endif
572
573#if !defined(ENABLE_LEGACY_CSS_VENDOR_PREFIXES)
574#define ENABLE_LEGACY_CSS_VENDOR_PREFIXES 0
575#endif
576
577#if !defined(ENABLE_LETTERPRESS)
578#define ENABLE_LETTERPRESS 0
579#endif
580
581#if !defined(ENABLE_MATHML)
582#define ENABLE_MATHML 1
583#endif
584
585#if !defined(ENABLE_MEDIA_CAPTURE)
586#define ENABLE_MEDIA_CAPTURE 0
587#endif
588
589#if !defined(ENABLE_MEDIA_CONTROLS_SCRIPT)
590#define ENABLE_MEDIA_CONTROLS_SCRIPT 0
591#endif
592
593#if !defined(ENABLE_MEDIA_SOURCE)
594#define ENABLE_MEDIA_SOURCE 0
595#endif
596
597#if !defined(ENABLE_MEDIA_STATISTICS)
598#define ENABLE_MEDIA_STATISTICS 0
599#endif
600
601#if !defined(ENABLE_MEDIA_STREAM)
602#define ENABLE_MEDIA_STREAM 0
603#endif
604
605#if !defined(ENABLE_METER_ELEMENT)
606#define ENABLE_METER_ELEMENT 1
607#endif
608
609#if !defined(ENABLE_MHTML)
610#define ENABLE_MHTML 0
611#endif
612
613#if !defined(ENABLE_MOUSE_CURSOR_SCALE)
614#define ENABLE_MOUSE_CURSOR_SCALE 0
615#endif
616
617#if !defined(ENABLE_MOUSE_FORCE_EVENTS)
618#define ENABLE_MOUSE_FORCE_EVENTS 1
619#endif
620
621#if !defined(ENABLE_NAVIGATOR_CONTENT_UTILS)
622#define ENABLE_NAVIGATOR_CONTENT_UTILS 0
623#endif
624
625#if !defined(ENABLE_NETSCAPE_PLUGIN_API)
626#define ENABLE_NETSCAPE_PLUGIN_API 1
627#endif
628
629#if !defined(ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE)
630#define ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE 0
631#endif
632
633#if !defined(ENABLE_NOTIFICATIONS)
634#define ENABLE_NOTIFICATIONS 0
635#endif
636
637#if !defined(ENABLE_OPENTYPE_VERTICAL)
638#define ENABLE_OPENTYPE_VERTICAL 0
639#endif
640
641#if !defined(ENABLE_ORIENTATION_EVENTS)
642#define ENABLE_ORIENTATION_EVENTS 0
643#endif
644
645#if OS(WINDOWS)
646#if !defined(ENABLE_PAN_SCROLLING)
647#define ENABLE_PAN_SCROLLING 1
648#endif
649#endif
650
651#if !defined(ENABLE_PAYMENT_REQUEST)
652#define ENABLE_PAYMENT_REQUEST 0
653#endif
654
655#if !defined(ENABLE_POINTER_LOCK)
656#define ENABLE_POINTER_LOCK 1
657#endif
658
659#if !defined(ENABLE_QUOTA)
660#define ENABLE_QUOTA 0
661#endif
662
663#if !defined(ENABLE_REMOTE_INSPECTOR)
664#define ENABLE_REMOTE_INSPECTOR 0
665#endif
666
667#if !defined(ENABLE_RUBBER_BANDING)
668#define ENABLE_RUBBER_BANDING 0
669#endif
670
671#if !defined(ENABLE_SMOOTH_SCROLLING)
672#define ENABLE_SMOOTH_SCROLLING 0
673#endif
674
675#if !defined(ENABLE_SPEECH_SYNTHESIS)
676#define ENABLE_SPEECH_SYNTHESIS 0
677#endif
678
679#if !defined(ENABLE_SPELLCHECK)
680#define ENABLE_SPELLCHECK 0
681#endif
682
683#if !defined(ENABLE_STREAMS_API)
684#define ENABLE_STREAMS_API 1
685#endif
686
687#if !defined(ENABLE_SVG_FONTS)
688#define ENABLE_SVG_FONTS 1
689#endif
690
691#if !defined(ENABLE_TEXT_CARET)
692#define ENABLE_TEXT_CARET 1
693#endif
694
695#if !defined(ENABLE_TEXT_SELECTION)
696#define ENABLE_TEXT_SELECTION 1
697#endif
698
699#if !defined(ENABLE_ASYNC_SCROLLING)
700#define ENABLE_ASYNC_SCROLLING 0
701#endif
702
703#if !defined(ENABLE_TOUCH_EVENTS)
704#define ENABLE_TOUCH_EVENTS 0
705#endif
706
707#if !defined(ENABLE_VIDEO)
708#define ENABLE_VIDEO 0
709#endif
710
711#if !defined(ENABLE_VIDEO_TRACK)
712#define ENABLE_VIDEO_TRACK 0
713#endif
714
715#if !defined(ENABLE_DATACUE_VALUE)
716#define ENABLE_DATACUE_VALUE 0
717#endif
718
719#if !defined(ENABLE_WEBGL)
720#define ENABLE_WEBGL 0
721#endif
722
723#if !defined(ENABLE_GRAPHICS_CONTEXT_3D)
724#define ENABLE_GRAPHICS_CONTEXT_3D ENABLE_WEBGL
725#endif
726
727#if !defined(ENABLE_WEB_ARCHIVE)
728#define ENABLE_WEB_ARCHIVE 0
729#endif
730
731#if !defined(ENABLE_WEB_AUDIO)
732#define ENABLE_WEB_AUDIO 0
733#endif
734
735#if !defined(ENABLE_XSLT)
736#define ENABLE_XSLT 1
737#endif
738
739#if !defined(ENABLE_KEYBOARD_KEY_ATTRIBUTE)
740#define ENABLE_KEYBOARD_KEY_ATTRIBUTE 0
741#endif
742
743#if !defined(ENABLE_KEYBOARD_CODE_ATTRIBUTE)
744#define ENABLE_KEYBOARD_CODE_ATTRIBUTE 0
745#endif
746
747#if !defined(ENABLE_DATA_INTERACTION)
748#define ENABLE_DATA_INTERACTION 0
749#endif
750
751#if !defined(ENABLE_SERVICE_WORKER)
752#define ENABLE_SERVICE_WORKER 1
753#endif
754
755/* Asserts, invariants for macro definitions */
756
757#if ENABLE(VIDEO_TRACK) && !ENABLE(VIDEO)
758#error "ENABLE(VIDEO_TRACK) requires ENABLE(VIDEO)"
759#endif
760
761#if ENABLE(MEDIA_CONTROLS_SCRIPT) && !ENABLE(VIDEO)
762#error "ENABLE(MEDIA_CONTROLS_SCRIPT) requires ENABLE(VIDEO)"
763#endif
764
765#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) && !ENABLE(REMOTE_INSPECTOR)
766#error "ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) requires ENABLE(REMOTE_INSPECTOR)"
767#endif
768
769#if ENABLE(IOS_TOUCH_EVENTS) && !ENABLE(TOUCH_EVENTS)
770#error "ENABLE(IOS_TOUCH_EVENTS) requires ENABLE(TOUCH_EVENTS)"
771#endif
772
773#if ENABLE(WEBGL) && !ENABLE(GRAPHICS_CONTEXT_3D)
774#error "ENABLE(WEBGL) requires ENABLE(GRAPHICS_CONTEXT_3D)"
775#endif
776
777#if ENABLE(WEBGL2) && !ENABLE(WEBGL)
778#error "ENABLE(WEBGL2) requires ENABLE(WEBGL)"
779#endif
780