0fd2b59ecb8e2f444c22cc4a1001eb92c8d9c72b
[WebKit-https.git] / Source / WebKit / chromium / features.gypi
1 #
2 # Copyright (C) 2009 Google Inc. All rights reserved.
3
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are
6 # met:
7
8 #     * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 #     * Redistributions in binary form must reproduce the above
11 # copyright notice, this list of conditions and the following disclaimer
12 # in the documentation and/or other materials provided with the
13 # distribution.
14 #     * Neither the name of Google Inc. nor the names of its
15 # contributors may be used to endorse or promote products derived from
16 # this software without specific prior written permission.
17
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 #
30
31 {
32   # The following defines turn WebKit features on and off.
33   'variables': {
34     'feature_defines': [
35       'ENABLE_3D_PLUGIN=1',
36       'ENABLE_BLOB=1',
37       'ENABLE_BLOB_SLICE=1',
38       'ENABLE_CHANNEL_MESSAGING=1',
39       'ENABLE_CLIENT_BASED_GEOLOCATION=1',
40       'ENABLE_DASHBOARD_SUPPORT=0',
41       'ENABLE_DATA_TRANSFER_ITEMS=1',
42       'ENABLE_DETAILS=1',
43       'ENABLE_DEVICE_ORIENTATION=1',
44       'ENABLE_DIRECTORY_UPLOAD=1',
45       'ENABLE_DOM_STORAGE=1',
46       'ENABLE_DOWNLOAD_ATTRIBUTE=1',
47       'ENABLE_FILE_SYSTEM=1',
48       'ENABLE_FILTERS=1',
49       'ENABLE_FULLSCREEN_API=1',
50       'ENABLE_GEOLOCATION=1',
51       'ENABLE_GESTURE_EVENTS=1',
52       'ENABLE_GESTURE_RECOGNIZER=1',
53       'ENABLE_ICONDATABASE=0',
54       'ENABLE_INDEXED_DATABASE=1',
55       'ENABLE_INPUT_SPEECH=1',
56       'ENABLE_JAVASCRIPT_DEBUGGER=1',
57       'ENABLE_JAVASCRIPT_I18N_API=1',
58       'ENABLE_JSC_MULTIPLE_THREADS=0',
59       'ENABLE_LINK_PREFETCH=1',
60       'ENABLE_MEDIA_STATISTICS=1',
61       'ENABLE_MEDIA_STREAM=1',
62       'ENABLE_METER_TAG=1',
63       'ENABLE_MHTML=1',
64       'ENABLE_NOTIFICATIONS=1',
65       'ENABLE_OFFLINE_WEB_APPLICATIONS=1',
66       'ENABLE_ORIENTATION_EVENTS=0',
67       'ENABLE_PAGE_VISIBILITY_API=1',
68       'ENABLE_PROGRESS_TAG=1',
69       'ENABLE_QUOTA=1',
70       'ENABLE_REQUEST_ANIMATION_FRAME=1',
71       'ENABLE_RUBY=1',
72       'ENABLE_SANDBOX=1',
73       'ENABLE_SHARED_WORKERS=1',
74       'ENABLE_SKIA_GPU=<(use_skia_gpu)',
75       'ENABLE_SMOOTH_SCROLLING=1',
76       'ENABLE_SQL_DATABASE=1',
77       'ENABLE_SVG=<(enable_svg)',
78       'ENABLE_SVG_FONTS=<(enable_svg)',
79       'ENABLE_TOUCH_EVENTS=<(enable_touch_events)',
80       'ENABLE_TOUCH_ICON_LOADING=<(enable_touch_icon_loading)',
81       'ENABLE_V8_SCRIPT_DEBUG_SERVER=1',
82       'ENABLE_VIDEO=1',
83       'ENABLE_WEBGL=1',
84       'ENABLE_WEB_SOCKETS=1',
85       'ENABLE_WEB_TIMING=1',
86       'ENABLE_WORKERS=1',
87       'ENABLE_XHR_RESPONSE_BLOB=1',
88       'ENABLE_XPATH=1',
89       'ENABLE_XSLT=1',
90       'WTF_USE_LEVELDB=1',
91       'WTF_USE_BUILTIN_UTF8_CODEC=1',
92       # WTF_USE_DYNAMIC_ANNOTATIONS=1 may be defined in build/common.gypi
93       # We can't define it here because it should be present only
94       # in Debug or release_valgrind_build=1 builds.
95       'WTF_USE_OPENTYPE_SANITIZER=1',
96       'WTF_USE_WEBP=1',
97       'WTF_USE_WEBKIT_IMAGE_DECODERS=1',
98     ],
99     # We have to nest variables inside variables so that they can be overridden
100     # through GYP_DEFINES.
101     'variables': {
102       'use_accelerated_compositing%': 1,
103       'use_threaded_compositing%': 0,
104       'enable_svg%': 1,
105       'enable_touch_events%': 1,
106       'use_skia_gpu%': 0,
107       'use_skia%': 0,
108       'enable_touch_icon_loading%' : 0,
109       'enable_css3_flexbox%': 0,
110     },
111     'use_accelerated_compositing%': '<(use_accelerated_compositing)',
112     'use_threaded_compositing%': '<(use_threaded_compositing)',
113     'enable_svg%': '<(enable_svg)',
114     'enable_touch_events%': '<(enable_touch_events)',
115     'use_skia%': '<(use_skia)',
116     'conditions': [
117       ['OS=="android"', {
118         'feature_defines': [
119           'ENABLE_WEB_AUDIO=0',
120         ],
121       }, {
122         'feature_defines': [
123           'ENABLE_WEB_AUDIO=1',
124         ],
125       }],
126       ['use_accelerated_compositing==1', {
127         'feature_defines': [
128           'WTF_USE_ACCELERATED_COMPOSITING=1',
129           'ENABLE_3D_RENDERING=1',
130         ],
131       }],
132       ['use_accelerated_compositing==1 and (OS!="mac" or use_skia==1)', {
133         'feature_defines': [
134           'ENABLE_ACCELERATED_2D_CANVAS=1',
135         ],
136       }],
137       ['use_accelerated_compositing==1 and use_threaded_compositing==1', {
138         'feature_defines': [
139           'WTF_USE_THREADED_COMPOSITING=1',
140         ],
141       }],
142       ['touchui==1', {
143         'enable_touch_icon_loading': 1,
144       }],
145       # Mac OS X uses Accelerate.framework FFT by default instead of FFmpeg.
146       ['OS!="mac"', {
147         'feature_defines': [
148           'WTF_USE_WEBAUDIO_FFMPEG=1',
149         ],
150         'use_skia%': 1,
151       }],
152       ['enable_register_protocol_handler==1', {
153         'feature_defines': [
154           'ENABLE_REGISTER_PROTOCOL_HANDLER=1',
155         ],
156       }],
157       ['OS=="mac"', {
158         'feature_defines': [
159           'ENABLE_RUBBER_BANDING=1',
160           'WTF_USE_SKIA_ON_MAC_CHROMIUM=<(use_skia)',
161         ],
162       }],
163       ['enable_css3_flexbox==1', {
164         'feature_defines': [
165           'ENABLE_CSS3_FLEXBOX=1',
166         ],
167       }],
168     ],
169   },
170 }