c1c36c6559f5928e4eb2570f537ada63298e62bf
[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_DOWNLOAD_ATTRIBUTE=1',
46       'ENABLE_FILE_SYSTEM=1',
47       'ENABLE_FILTERS=1',
48       'ENABLE_FULLSCREEN_API=1',
49       'ENABLE_GAMEPAD=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_INPUT_TYPE_COLOR=0',
57       'ENABLE_INPUT_TYPE_DATE=0',
58       'ENABLE_INPUT_TYPE_DATETIME=0',
59       'ENABLE_INPUT_TYPE_DATETIMELOCAL=0',
60       'ENABLE_INPUT_TYPE_MONTH=0',
61       'ENABLE_INPUT_TYPE_TIME=0',
62       'ENABLE_INPUT_TYPE_WEEK=0',
63       'ENABLE_JAVASCRIPT_DEBUGGER=1',
64       'ENABLE_JAVASCRIPT_I18N_API=1',
65       'ENABLE_LINK_PREFETCH=1',
66       'ENABLE_MEDIA_STATISTICS=1',
67       'ENABLE_MEDIA_STREAM=1',
68       'ENABLE_METER_TAG=1',
69       'ENABLE_MHTML=1',
70       'ENABLE_MICRODATA=0',
71       'ENABLE_MUTATION_OBSERVERS=<(enable_mutation_observers)',
72       'ENABLE_NOTIFICATIONS=1',
73       'ENABLE_ORIENTATION_EVENTS=0',
74       'ENABLE_PAGE_VISIBILITY_API=1',
75       'ENABLE_PROGRESS_TAG=1',
76       'ENABLE_QUOTA=1',
77       'ENABLE_REQUEST_ANIMATION_FRAME=1',
78       'ENABLE_RUBY=1',
79       'ENABLE_SANDBOX=1',
80       'ENABLE_SHARED_WORKERS=1',
81       'ENABLE_SMOOTH_SCROLLING=1',
82       'ENABLE_SQL_DATABASE=1',
83       'ENABLE_SVG=<(enable_svg)',
84       'ENABLE_SVG_FONTS=<(enable_svg)',
85       'ENABLE_TOUCH_EVENTS=<(enable_touch_events)',
86       'ENABLE_TOUCH_ICON_LOADING=<(enable_touch_icon_loading)',
87       'ENABLE_V8_SCRIPT_DEBUG_SERVER=1',
88       'ENABLE_VIDEO=1',
89       'ENABLE_VIDEO_TRACK=1',
90       'ENABLE_WEBGL=1',
91       'ENABLE_WEB_SOCKETS=1',
92       'ENABLE_WEB_TIMING=1',
93       'ENABLE_WORKERS=1',
94       'ENABLE_XHR_RESPONSE_BLOB=1',
95       'ENABLE_XPATH=1',
96       'ENABLE_XSLT=1',
97       'WTF_USE_LEVELDB=1',
98       'WTF_USE_BUILTIN_UTF8_CODEC=1',
99       # WTF_USE_DYNAMIC_ANNOTATIONS=1 may be defined in build/common.gypi
100       # We can't define it here because it should be present only
101       # in Debug or release_valgrind_build=1 builds.
102       'WTF_USE_OPENTYPE_SANITIZER=1',
103       'WTF_USE_SKIA_TEXT=<(enable_skia_text)',
104       'WTF_USE_WEBP=1',
105       'WTF_USE_WEBKIT_IMAGE_DECODERS=1',
106     ],
107     # We have to nest variables inside variables so that they can be overridden
108     # through GYP_DEFINES.
109     'variables': {
110       'use_accelerated_compositing%': 1,
111       'use_threaded_compositing%': 0,
112       'enable_skia_text%': 0,
113       'enable_svg%': 1,
114       'enable_touch_events%': 1,
115       'use_skia%': 0,
116       'enable_touch_icon_loading%' : 0,
117       'enable_css3_flexbox%': 0,
118       'enable_mutation_observers%': 0,
119     },
120     'use_accelerated_compositing%': '<(use_accelerated_compositing)',
121     'use_threaded_compositing%': '<(use_threaded_compositing)',
122     'enable_skia_text%': '<(enable_skia_text)',
123     'enable_svg%': '<(enable_svg)',
124     'enable_touch_events%': '<(enable_touch_events)',
125     'use_skia%': '<(use_skia)',
126     'conditions': [
127       ['OS=="android"', {
128         'feature_defines': [
129           'ENABLE_WEB_AUDIO=0',
130         ],
131       }, {
132         'feature_defines': [
133           'ENABLE_WEB_AUDIO=1',
134         ],
135       }],
136       ['use_accelerated_compositing==1', {
137         'feature_defines': [
138           'WTF_USE_ACCELERATED_COMPOSITING=1',
139           'ENABLE_3D_RENDERING=1',
140         ],
141       }],
142       ['use_accelerated_compositing==1 and (OS!="mac" or use_skia==1)', {
143         'feature_defines': [
144           'ENABLE_ACCELERATED_2D_CANVAS=1',
145         ],
146       }],
147       ['use_accelerated_compositing==1 and use_threaded_compositing==1', {
148         'feature_defines': [
149           'WTF_USE_THREADED_COMPOSITING=1',
150         ],
151       }],
152       ['touchui==1', {
153         'enable_touch_icon_loading': 1,
154       }],
155       # Mac OS X uses Accelerate.framework FFT by default instead of FFmpeg.
156       ['OS!="mac"', {
157         'feature_defines': [
158           'WTF_USE_WEBAUDIO_FFMPEG=1',
159         ],
160         'use_skia%': 1,
161       }],
162       ['enable_register_protocol_handler==1', {
163         'feature_defines': [
164           'ENABLE_REGISTER_PROTOCOL_HANDLER=1',
165         ],
166       }],
167       ['OS=="mac"', {
168         'feature_defines': [
169           'ENABLE_RUBBER_BANDING=1',
170           'WTF_USE_SKIA_ON_MAC_CHROMIUM=<(use_skia)',
171         ],
172       }],
173       ['enable_css3_flexbox==1', {
174         'feature_defines': [
175           'ENABLE_CSS3_FLEXBOX=1',
176         ],
177       }],
178     ],
179   },
180 }