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