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