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