1/*
2 * Copyright (C) 2006, 2007, 2008, 2009, 2013 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#ifndef WTF_FeatureDefines_h
30#define WTF_FeatureDefines_h
31
32/* Use this file to list _all_ ENABLE() macros. Define the macros to be one of the following values:
33 * - "0" disables the feature by default. The feature can still be enabled for a specific port or environment.
34 * - "1" enables the feature by default. The feature can still be disabled for a specific port or environment.
35 *
36 * The feature defaults in this file are only taken into account if the (port specific) build system
37 * has not enabled or disabled a particular feature.
38 *
39 * Use this file to define ENABLE() macros only. Do not use this file to define USE() or macros !
40 *
41 * Only define a macro if it was not defined before - always check for !defined first.
42 *
43 * Keep the file sorted by the name of the defines. As an exception you can change the order
44 * to allow interdependencies between the default values.
45 *
46 * Below are a few potential commands to take advantage of this file running from the Source/WTF directory
47 *
48 * Get the list of feature defines: grep -o "ENABLE_\(\w\+\)" wtf/FeatureDefines.h | sort | uniq
49 * 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
50 */
51
52/* FIXME: Move out the PLATFORM specific rules into platform specific files. */
53
54/* --------- Apple IOS (but not MAC) port --------- */
55#if PLATFORM(IOS)
56
57#if !defined(ENABLE_ASYNC_SCROLLING)
58#define ENABLE_ASYNC_SCROLLING 1
59#endif
60
61#if !defined(ENABLE_CONTENT_EXTENSIONS)
62#define ENABLE_CONTENT_EXTENSIONS 1
63#endif
64
65#if !defined(ENABLE_CONTEXT_MENUS)
66#define ENABLE_CONTEXT_MENUS 0
67#endif
68
69#if !defined(ENABLE_CSS_IMAGE_SET)
70#define ENABLE_CSS_IMAGE_SET 1
71#endif
72
73#if !defined(ENABLE_CURSOR_SUPPORT)
74#define ENABLE_CURSOR_SUPPORT 0
75#endif
76
77#if !defined(ENABLE_DRAG_SUPPORT)
78#define ENABLE_DRAG_SUPPORT 0
79#endif
80
81#if !defined(ENABLE_GEOLOCATION)
82#define ENABLE_GEOLOCATION 1
83#endif
84
85#if !defined(ENABLE_ICONDATABASE)
86#define ENABLE_ICONDATABASE 0
87#endif
88
89#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
90#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
91#endif
92
93#if !defined(ENABLE_LETTERPRESS)
94#define ENABLE_LETTERPRESS 1
95#endif
96
97#if !defined(ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE)
98#define ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE 1
99#endif
100
101#if !defined(ENABLE_IOS_GESTURE_EVENTS) && USE(APPLE_INTERNAL_SDK)
102#define ENABLE_IOS_GESTURE_EVENTS 1
103#endif
104
105#if !defined(ENABLE_IOS_TEXT_AUTOSIZING)
106#define ENABLE_IOS_TEXT_AUTOSIZING 1
107#endif
108
109#if !defined(ENABLE_IOS_TOUCH_EVENTS) && USE(APPLE_INTERNAL_SDK)
110#define ENABLE_IOS_TOUCH_EVENTS 1
111#endif
112
113#if !defined(ENABLE_METER_ELEMENT)
114#define ENABLE_METER_ELEMENT 0
115#endif
116
117#if !defined(ENABLE_NETSCAPE_PLUGIN_API)
118#define ENABLE_NETSCAPE_PLUGIN_API 0
119#endif
120
121#if !defined(ENABLE_ORIENTATION_EVENTS)
122#define ENABLE_ORIENTATION_EVENTS 1
123#endif
124
125#if !defined(ENABLE_POINTER_LOCK)
126#define ENABLE_POINTER_LOCK 0
127#endif
128
129#if !defined(ENABLE_REMOTE_INSPECTOR)
130#define ENABLE_REMOTE_INSPECTOR 1
131#endif
132
133#if !defined(ENABLE_RESPECT_EXIF_ORIENTATION)
134#define ENABLE_RESPECT_EXIF_ORIENTATION 1
135#endif
136
137#if !defined(ENABLE_SHADOW_DOM)
138#define ENABLE_SHADOW_DOM 1
139#endif
140
141#if !defined(ENABLE_CUSTOM_ELEMENTS)
142#define ENABLE_CUSTOM_ELEMENTS 1
143#endif
144
145#if !defined(ENABLE_TEXT_CARET)
146#define ENABLE_TEXT_CARET 0
147#endif
148
149#if !defined(ENABLE_TEXT_SELECTION)
150#define ENABLE_TEXT_SELECTION 0
151#endif
152
153/* FIXME: Remove the USE(APPLE_INTERNAL_SDK) conjunct once we support touch events when building against
154the public iOS SDK. We will also need to update the FeatureDefines.xcconfig files. */
155#if !defined(ENABLE_TOUCH_EVENTS) && USE(APPLE_INTERNAL_SDK)
156#define ENABLE_TOUCH_EVENTS 1
157#endif
158
159#if !defined(ENABLE_WEB_ARCHIVE)
160#define ENABLE_WEB_ARCHIVE 1
161#endif
162
163#if !defined(ENABLE_VIEW_MODE_CSS_MEDIA)
164#define ENABLE_VIEW_MODE_CSS_MEDIA 0
165#endif
166
167#if !defined(ENABLE_WEBASSEMBLY)
168#define ENABLE_WEBASSEMBLY 0
169#endif
170
171#if !defined(ENABLE_WEBGL)
172#define ENABLE_WEBGL 1
173#endif
174
175#if !defined(ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
176#define ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC 1
177#endif
178
179#endif /* PLATFORM(IOS) */
180
181/* --------- Apple MAC port (not IOS) --------- */
182#if PLATFORM(MAC)
183
184#if !defined(ENABLE_CONTENT_EXTENSIONS)
185#define ENABLE_CONTENT_EXTENSIONS 1
186#endif
187
188#if !defined(ENABLE_CSS_IMAGE_SET)
189#define ENABLE_CSS_IMAGE_SET 1
190#endif
191
192#if !defined(ENABLE_DASHBOARD_SUPPORT)
193#define ENABLE_DASHBOARD_SUPPORT 1
194#endif
195
196#if !defined(ENABLE_ENCRYPTED_MEDIA)
197#define ENABLE_ENCRYPTED_MEDIA 1
198#endif
199#if !defined(ENABLE_ENCRYPTED_MEDIA_V2)
200#define ENABLE_ENCRYPTED_MEDIA_V2 1
201#endif
202
203#if !defined(ENABLE_FULLSCREEN_API)
204#define ENABLE_FULLSCREEN_API 1
205#endif
206
207#if !defined(ENABLE_REMOTE_INSPECTOR)
208#define ENABLE_REMOTE_INSPECTOR 1
209#endif
210
211#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
212#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 1
213#endif
214
215#if !defined(ENABLE_SMOOTH_SCROLLING)
216#define ENABLE_SMOOTH_SCROLLING 1
217#endif
218
219#if !defined(ENABLE_ASYNC_SCROLLING)
220#define ENABLE_ASYNC_SCROLLING 1
221#endif
222
223#if ENABLE(VIDEO)
224#if !defined(ENABLE_VIDEO_TRACK)
225#define ENABLE_VIDEO_TRACK 1
226#endif
227#endif
228
229#if !defined(ENABLE_VIEW_MODE_CSS_MEDIA)
230#define ENABLE_VIEW_MODE_CSS_MEDIA 0
231#endif
232
233#if !defined(ENABLE_WEB_ARCHIVE)
234#define ENABLE_WEB_ARCHIVE 1
235#endif
236
237#if !defined(ENABLE_WEB_AUDIO)
238#define ENABLE_WEB_AUDIO 1
239#endif
240
241#if !defined(ENABLE_CURSOR_VISIBILITY)
242#define ENABLE_CURSOR_VISIBILITY 1
243#endif
244
245#if !defined(ENABLE_INPUT_TYPE_COLOR)
246#define ENABLE_INPUT_TYPE_COLOR 1
247#endif
248
249#if !defined(ENABLE_INPUT_TYPE_COLOR_POPOVER)
250#define ENABLE_INPUT_TYPE_COLOR_POPOVER 1
251#endif
252
253#if !defined(ENABLE_FILE_REPLACEMENT)
254#define ENABLE_FILE_REPLACEMENT 1
255#endif
256
257#if !defined(ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC)
258#define ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC 1
259#endif
260
261#if !defined(ENABLE_SHADOW_DOM)
262#define ENABLE_SHADOW_DOM 1
263#endif
264
265#if !defined(ENABLE_CUSTOM_ELEMENTS)
266#define ENABLE_CUSTOM_ELEMENTS 1
267#endif
268
269#if !defined(ENABLE_MAC_GESTURE_EVENTS) && USE(APPLE_INTERNAL_SDK)
270#define ENABLE_MAC_GESTURE_EVENTS 1
271#endif
272
273#endif /* PLATFORM(MAC) */
274
275#if PLATFORM(COCOA)
276
277#if !defined(ENABLE_DATA_DETECTION)
278#define ENABLE_DATA_DETECTION 1
279#endif
280
281#endif /* PLATFORM(COCOA) */
282
283#if !PLATFORM(COCOA)
284
285#if !defined(JSC_OBJC_API_ENABLED)
286#define JSC_OBJC_API_ENABLED 0
287#endif
288
289#endif /* !PLATFORM(COCOA) */
290
291
292/* --------- Apple Windows port --------- */
293#if PLATFORM(WIN) && !PLATFORM(WIN_CAIRO)
294
295#if !defined(ENABLE_FULLSCREEN_API)
296#define ENABLE_FULLSCREEN_API 1
297#endif
298
299#if !defined(ENABLE_WEB_ARCHIVE)
300#define ENABLE_WEB_ARCHIVE 1
301#endif
302
303#if !defined(ENABLE_WEBGL)
304#define ENABLE_WEBGL 0
305#endif
306
307#if !defined(ENABLE_GEOLOCATION)
308#define ENABLE_GEOLOCATION 1
309#endif
310
311#endif /* PLATFORM(WIN) && !PLATFORM(WIN_CAIRO) */
312
313/* --------- Windows CAIRO port --------- */
314/* PLATFORM(WIN_CAIRO) is a specialization of PLATFORM(WIN). */
315/* PLATFORM(WIN) is always enabled when PLATFORM(WIN_CAIRO) is enabled. */
316#if PLATFORM(WIN_CAIRO)
317
318#if !defined(ENABLE_WEB_ARCHIVE)
319#define ENABLE_WEB_ARCHIVE 1
320#endif
321
322#if !defined(ENABLE_VIEW_MODE_CSS_MEDIA)
323#define ENABLE_VIEW_MODE_CSS_MEDIA 0
324#endif
325
326#if !defined(ENABLE_WEBGL)
327#define ENABLE_WEBGL 1
328#endif
329
330#if !defined(ENABLE_GEOLOCATION)
331#define ENABLE_GEOLOCATION 1
332#endif
333
334#endif /* PLATFORM(WIN_CAIRO) */
335
336/* --------- EFL port (Unix) --------- */
337#if PLATFORM(EFL)
338
339#if !defined(ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH)
340#define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH 1
341#endif
342
343#endif /* PLATFORM(EFL) */
344
345/* --------- Gtk port (Unix, Windows, Mac) --------- */
346#if PLATFORM(GTK)
347
348#if OS(UNIX)
349#if !defined(ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH)
350#define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH 1
351#endif
352#endif
353
354#endif /* PLATFORM(GTK) */
355
356/* ENABLE macro defaults for WebCore */
357/* Do not use PLATFORM() tests in this section ! */
358
359#if !defined(ENABLE_3D_TRANSFORMS)
360#define ENABLE_3D_TRANSFORMS 0
361#endif
362
363#if !defined(ENABLE_ACCELERATED_2D_CANVAS)
364#define ENABLE_ACCELERATED_2D_CANVAS 0
365#endif
366
367#if !defined(ENABLE_ACCELERATED_OVERFLOW_SCROLLING)
368#define ENABLE_ACCELERATED_OVERFLOW_SCROLLING 0
369#endif
370
371#if !defined(ENABLE_APNG)
372#define ENABLE_APNG 1
373#endif
374
375#if !defined(ENABLE_BATTERY_STATUS)
376#define ENABLE_BATTERY_STATUS 0
377#endif
378
379#if !defined(ENABLE_CANVAS_PATH)
380#define ENABLE_CANVAS_PATH 1
381#endif
382
383#if !defined(ENABLE_CANVAS_PROXY)
384#define ENABLE_CANVAS_PROXY 0
385#endif
386
387#if !defined(ENABLE_CHANNEL_MESSAGING)
388#define ENABLE_CHANNEL_MESSAGING 1
389#endif
390
391#if !defined(ENABLE_ES6_ARROWFUNCTION_SYNTAX)
392#define ENABLE_ES6_ARROWFUNCTION_SYNTAX 1
393#endif
394
395#if !defined(ENABLE_ES6_CLASS_SYNTAX)
396#define ENABLE_ES6_CLASS_SYNTAX 1
397#endif
398
399#if !defined(ENABLE_ES6_CLASS_SYNTAX)
400#define ENABLE_ES6_GENERATORS 1
401#endif
402
403#if !defined(ENABLE_ES6_MODULES)
404#define ENABLE_ES6_MODULES 0
405#endif
406
407#if !defined(ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX)
408#define ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX 1
409#endif
410
411#if !defined(ENABLE_CONTENT_EXTENSIONS)
412#define ENABLE_CONTENT_EXTENSIONS 0
413#endif
414
415#if !defined(ENABLE_CONTEXT_MENUS)
416#define ENABLE_CONTEXT_MENUS 1
417#endif
418
419#if !defined(ENABLE_CSP_NEXT)
420#define ENABLE_CSP_NEXT 0
421#endif
422
423#if !defined(ENABLE_CSS3_TEXT)
424#define ENABLE_CSS3_TEXT 0
425#endif
426
427#if !defined(ENABLE_CSS_BOX_DECORATION_BREAK)
428#define ENABLE_CSS_BOX_DECORATION_BREAK 1
429#endif
430
431#if !defined(ENABLE_CSS_DEVICE_ADAPTATION)
432#define ENABLE_CSS_DEVICE_ADAPTATION 0
433#endif
434
435#if !defined(ENABLE_CSS_COMPOSITING)
436#define ENABLE_CSS_COMPOSITING 0
437#endif
438
439#if !defined(ENABLE_CSS_IMAGE_ORIENTATION)
440#define ENABLE_CSS_IMAGE_ORIENTATION 0
441#endif
442
443#if !defined(ENABLE_CSS_IMAGE_RESOLUTION)
444#define ENABLE_CSS_IMAGE_RESOLUTION 0
445#endif
446
447#if !defined(ENABLE_CSS_IMAGE_SET)
448#define ENABLE_CSS_IMAGE_SET 0
449#endif
450
451#if !defined(ENABLE_CURSOR_SUPPORT)
452#define ENABLE_CURSOR_SUPPORT 1
453#endif
454
455#if !defined(ENABLE_CUSTOM_SCHEME_HANDLER)
456#define ENABLE_CUSTOM_SCHEME_HANDLER 0
457#endif
458
459#if !defined(ENABLE_DASHBOARD_SUPPORT)
460#define ENABLE_DASHBOARD_SUPPORT 0
461#endif
462
463#if !defined(ENABLE_DATALIST_ELEMENT)
464#define ENABLE_DATALIST_ELEMENT 0
465#endif
466
467#if !defined(ENABLE_DATA_TRANSFER_ITEMS)
468#define ENABLE_DATA_TRANSFER_ITEMS 0
469#endif
470
471#if !defined(ENABLE_DETAILS_ELEMENT)
472#define ENABLE_DETAILS_ELEMENT 1
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 0
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_ENCRYPTED_MEDIA_V2)
492#define ENABLE_ENCRYPTED_MEDIA_V2 0
493#endif
494
495#if !defined(ENABLE_FETCH_API)
496#define ENABLE_FETCH_API 1
497#endif
498
499#if !defined(ENABLE_FILTERS_LEVEL_2)
500#define ENABLE_FILTERS_LEVEL_2 0
501#endif
502
503#if !defined(ENABLE_FONT_LOAD_EVENTS)
504#define ENABLE_FONT_LOAD_EVENTS 0
505#endif
506
507#if !defined(ENABLE_FTPDIR)
508#define ENABLE_FTPDIR 1
509#endif
510
511#if !defined(ENABLE_FULLSCREEN_API)
512#define ENABLE_FULLSCREEN_API 0
513#endif
514
515#if !defined(ENABLE_GAMEPAD)
516#define ENABLE_GAMEPAD 0
517#endif
518
519#if !defined(ENABLE_GAMEPAD_DEPRECATED)
520#define ENABLE_GAMEPAD_DEPRECATED 0
521#endif
522
523#if !defined(ENABLE_GEOLOCATION)
524#define ENABLE_GEOLOCATION 0
525#endif
526
527#if !defined(ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING)
528#define ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING 0
529#endif
530
531#if !defined(ENABLE_ICONDATABASE)
532#define ENABLE_ICONDATABASE 1
533#endif
534
535#if !defined(ENABLE_IMAGE_DECODER_DOWN_SAMPLING)
536#define ENABLE_IMAGE_DECODER_DOWN_SAMPLING 0
537#endif
538
539#if !defined(ENABLE_INDEXED_DATABASE)
540#define ENABLE_INDEXED_DATABASE 0
541#endif
542
543#if !defined(ENABLE_INDEXED_DATABASE_IN_WORKERS)
544#define ENABLE_INDEXED_DATABASE_IN_WORKERS 0
545#endif
546
547#if !defined(ENABLE_INPUT_TYPE_COLOR)
548#define ENABLE_INPUT_TYPE_COLOR 0
549#endif
550
551#if !defined(ENABLE_INPUT_TYPE_COLOR_POPOVER)
552#define ENABLE_INPUT_TYPE_COLOR_POPOVER 0
553#endif
554
555#if !defined(ENABLE_INPUT_TYPE_DATE)
556#define ENABLE_INPUT_TYPE_DATE 0
557#endif
558
559#if !defined(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE)
560#define ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE 0
561#endif
562
563#if !defined(ENABLE_INPUT_TYPE_DATETIMELOCAL)
564#define ENABLE_INPUT_TYPE_DATETIMELOCAL 0
565#endif
566
567#if !defined(ENABLE_INPUT_TYPE_MONTH)
568#define ENABLE_INPUT_TYPE_MONTH 0
569#endif
570
571#if !defined(ENABLE_INPUT_TYPE_TIME)
572#define ENABLE_INPUT_TYPE_TIME 0
573#endif
574
575#if !defined(ENABLE_INPUT_TYPE_WEEK)
576#define ENABLE_INPUT_TYPE_WEEK 0
577#endif
578
579#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)
580#if !defined(ENABLE_DATE_AND_TIME_INPUT_TYPES)
581#define ENABLE_DATE_AND_TIME_INPUT_TYPES 1
582#endif
583#endif
584
585#if !defined(ENABLE_INSPECTOR)
586#define ENABLE_INSPECTOR 1
587#endif
588
589#if !defined(ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS)
590#define ENABLE_INSPECTOR_ALTERNATE_DISPATCHERS 0
591#endif
592
593#if !defined(ENABLE_INTL)
594#define ENABLE_INTL 0
595#endif
596
597#if !defined(ENABLE_JAVASCRIPT_I18N_API)
598#define ENABLE_JAVASCRIPT_I18N_API 0
599#endif
600
601#if !defined(ENABLE_LEGACY_CSS_VENDOR_PREFIXES)
602#define ENABLE_LEGACY_CSS_VENDOR_PREFIXES 0
603#endif
604
605#if !defined(ENABLE_LEGACY_NOTIFICATIONS)
606#define ENABLE_LEGACY_NOTIFICATIONS 0
607#endif
608
609#if !defined(ENABLE_LEGACY_VENDOR_PREFIXES)
610#define ENABLE_LEGACY_VENDOR_PREFIXES 0
611#endif
612
613#if !defined(ENABLE_LETTERPRESS)
614#define ENABLE_LETTERPRESS 0
615#endif
616
617#if !defined(ENABLE_LINK_PREFETCH)
618#define ENABLE_LINK_PREFETCH 0
619#endif
620
621#if !defined(ENABLE_MATHML)
622#define ENABLE_MATHML 1
623#endif
624
625#if !defined(ENABLE_MEDIA_CAPTURE)
626#define ENABLE_MEDIA_CAPTURE 0
627#endif
628
629#if !defined(ENABLE_MEDIA_CONTROLS_SCRIPT)
630#define ENABLE_MEDIA_CONTROLS_SCRIPT 0
631#endif
632
633#if !defined(ENABLE_MEDIA_SOURCE)
634#define ENABLE_MEDIA_SOURCE 0
635#endif
636
637#if !defined(ENABLE_MEDIA_STATISTICS)
638#define ENABLE_MEDIA_STATISTICS 0
639#endif
640
641#if !defined(ENABLE_MEDIA_STREAM)
642#define ENABLE_MEDIA_STREAM 0
643#endif
644
645#if !defined(ENABLE_METER_ELEMENT)
646#define ENABLE_METER_ELEMENT 1
647#endif
648
649#if !defined(ENABLE_MHTML)
650#define ENABLE_MHTML 0
651#endif
652
653#if !defined(ENABLE_MOUSE_CURSOR_SCALE)
654#define ENABLE_MOUSE_CURSOR_SCALE 0
655#endif
656
657#if !defined(ENABLE_MOUSE_FORCE_EVENTS)
658#define ENABLE_MOUSE_FORCE_EVENTS 1
659#endif
660
661#if !defined(ENABLE_NAVIGATOR_CONTENT_UTILS)
662#define ENABLE_NAVIGATOR_CONTENT_UTILS 0
663#endif
664
665#if !defined(ENABLE_NAVIGATOR_HWCONCURRENCY)
666#define ENABLE_NAVIGATOR_HWCONCURRENCY 1
667#endif
668
669#if !defined(ENABLE_NETSCAPE_PLUGIN_API)
670#define ENABLE_NETSCAPE_PLUGIN_API 1
671#endif
672
673#if !defined(ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE)
674#define ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE 0
675#endif
676
677#if !defined(ENABLE_NOTIFICATIONS)
678#define ENABLE_NOTIFICATIONS 0
679#endif
680
681#if !defined(ENABLE_OPENTYPE_VERTICAL)
682#define ENABLE_OPENTYPE_VERTICAL 0
683#endif
684
685#if !defined(ENABLE_ORIENTATION_EVENTS)
686#define ENABLE_ORIENTATION_EVENTS 0
687#endif
688
689#if OS(WINDOWS)
690#if !defined(ENABLE_PAN_SCROLLING)
691#define ENABLE_PAN_SCROLLING 1
692#endif
693#endif
694
695#if !defined(ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH)
696#define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH 0
697#endif
698
699#if !defined(ENABLE_POINTER_LOCK)
700#define ENABLE_POINTER_LOCK 0
701#endif
702
703#if !defined(ENABLE_PROXIMITY_EVENTS)
704#define ENABLE_PROXIMITY_EVENTS 0
705#endif
706
707#if !defined(ENABLE_QUOTA)
708#define ENABLE_QUOTA 0
709#endif
710
711#if !defined(ENABLE_REMOTE_INSPECTOR)
712#define ENABLE_REMOTE_INSPECTOR 0
713#endif
714
715#if !defined(ENABLE_REQUEST_ANIMATION_FRAME)
716#define ENABLE_REQUEST_ANIMATION_FRAME 0
717#endif
718
719#if !defined(ENABLE_REQUEST_AUTOCOMPLETE)
720#define ENABLE_REQUEST_AUTOCOMPLETE 0
721#endif
722
723#if !defined(ENABLE_RUBBER_BANDING)
724#define ENABLE_RUBBER_BANDING 0
725#endif
726
727#if !defined(ENABLE_SHADOW_DOM)
728#define ENABLE_SHADOW_DOM 0
729#endif
730
731#if !defined(ENABLE_CUSTOM_ELEMENTS)
732#define ENABLE_CUSTOM_ELEMENTS 0
733#endif
734
735#if !defined(ENABLE_SMOOTH_SCROLLING)
736#define ENABLE_SMOOTH_SCROLLING 0
737#endif
738
739#if !defined(ENABLE_SPEECH_SYNTHESIS)
740#define ENABLE_SPEECH_SYNTHESIS 0
741#endif
742
743#if !defined(ENABLE_SPELLCHECK)
744#define ENABLE_SPELLCHECK 0
745#endif
746
747#if !defined(ENABLE_STREAMS_API)
748#if PLATFORM(WIN)
749#define ENABLE_STREAMS_API 0
750#else
751#define ENABLE_STREAMS_API 1
752#endif
753#endif
754
755#if !defined(ENABLE_SVG_FONTS)
756#define ENABLE_SVG_FONTS 1
757#endif
758
759#if !defined(ENABLE_TEMPLATE_ELEMENT)
760#define ENABLE_TEMPLATE_ELEMENT 1
761#endif
762
763#if !defined(ENABLE_TEXT_AUTOSIZING)
764#define ENABLE_TEXT_AUTOSIZING 0
765#endif
766
767#if !defined(ENABLE_TEXT_CARET)
768#define ENABLE_TEXT_CARET 1
769#endif
770
771#if !defined(ENABLE_TEXT_SELECTION)
772#define ENABLE_TEXT_SELECTION 1
773#endif
774
775#if !defined(ENABLE_ASYNC_SCROLLING)
776#define ENABLE_ASYNC_SCROLLING 0
777#endif
778
779#if !defined(ENABLE_TOUCH_EVENTS)
780#define ENABLE_TOUCH_EVENTS 0
781#endif
782
783#if !defined(ENABLE_TOUCH_ICON_LOADING)
784#define ENABLE_TOUCH_ICON_LOADING 0
785#endif
786
787#if !defined(ENABLE_VIBRATION)
788#define ENABLE_VIBRATION 0
789#endif
790
791#if !defined(ENABLE_VIDEO)
792#define ENABLE_VIDEO 0
793#endif
794
795#if !defined(ENABLE_VIDEO_TRACK)
796#define ENABLE_VIDEO_TRACK 0
797#endif
798
799#if !defined(ENABLE_DATACUE_VALUE)
800#define ENABLE_DATACUE_VALUE 0
801#endif
802
803#if !defined(ENABLE_VIEWPORT)
804#define ENABLE_VIEWPORT 0
805#endif
806
807#if !defined(ENABLE_VIEW_MODE_CSS_MEDIA)
808#define ENABLE_VIEW_MODE_CSS_MEDIA 1
809#endif
810
811#if !defined(ENABLE_WEBGL)
812#define ENABLE_WEBGL 0
813#endif
814
815#if !defined(ENABLE_WEBGL2)
816#define ENABLE_WEBGL2 0
817#endif
818
819#if !defined(ENABLE_GRAPHICS_CONTEXT_3D)
820#define ENABLE_GRAPHICS_CONTEXT_3D ENABLE_WEBGL
821#endif
822
823#if !defined(ENABLE_WEB_ANIMATIONS)
824#define ENABLE_WEB_ANIMATIONS 0
825#endif
826
827#if !defined(ENABLE_WEB_ARCHIVE)
828#define ENABLE_WEB_ARCHIVE 0
829#endif
830
831#if !defined(ENABLE_WEB_AUDIO)
832#define ENABLE_WEB_AUDIO 0
833#endif
834
835#if !defined(ENABLE_WEB_REPLAY)
836#define ENABLE_WEB_REPLAY 0
837#endif
838
839#if !defined(ENABLE_WEB_SOCKETS)
840#define ENABLE_WEB_SOCKETS 1
841#endif
842
843#if !defined(ENABLE_WEB_TIMING)
844#define ENABLE_WEB_TIMING 0
845#endif
846
847#if !defined(ENABLE_WILL_REVEAL_EDGE_EVENTS)
848#define ENABLE_WILL_REVEAL_EDGE_EVENTS 1
849#endif
850
851#if !defined(ENABLE_XSLT)
852#define ENABLE_XSLT 1
853#endif
854
855/* Asserts, invariants for macro definitions */
856
857#if ENABLE(VIDEO_TRACK) && !ENABLE(VIDEO)
858#error "ENABLE(VIDEO_TRACK) requires ENABLE(VIDEO)"
859#endif
860
861#if ENABLE(MEDIA_CONTROLS_SCRIPT) && !ENABLE(VIDEO)
862#error "ENABLE(MEDIA_CONTROLS_SCRIPT) requires ENABLE(VIDEO)"
863#endif
864
865#if ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) && !ENABLE(REMOTE_INSPECTOR)
866#error "ENABLE(INSPECTOR_ALTERNATE_DISPATCHERS) requires ENABLE(REMOTE_INSPECTOR)"
867#endif
868
869#if ENABLE(IOS_TOUCH_EVENTS) && !ENABLE(TOUCH_EVENTS)
870#error "ENABLE(IOS_TOUCH_EVENTS) requires ENABLE(TOUCH_EVENTS)"
871#endif
872
873#if ENABLE(WEBGL) && !ENABLE(GRAPHICS_CONTEXT_3D)
874#error "ENABLE(WEBGL) requires ENABLE(GRAPHICS_CONTEXT_3D)"
875#endif
876
877#endif /* WTF_FeatureDefines_h */
878