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