Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / WebRuntimeFeatures.cpp
1 /*
2  * Copyright (C) 2013 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 #include "config.h"
32 #include "WebRuntimeFeatures.h"
33
34 #include "RuntimeEnabledFeatures.h"
35 #include "WebMediaPlayerClientImpl.h"
36
37 using namespace WebCore;
38
39 namespace blink {
40
41 void WebRuntimeFeatures::enableStableFeatures(bool enable)
42 {
43     // FIXME: This entire method should be removed once it is no longer called by Chromium.
44     ASSERT(enable);
45 }
46
47 void WebRuntimeFeatures::enableExperimentalFeatures(bool enable)
48 {
49     RuntimeEnabledFeatures::setExperimentalFeaturesEnabled(enable);
50 }
51
52 void WebRuntimeFeatures::enableTestOnlyFeatures(bool enable)
53 {
54     RuntimeEnabledFeatures::setTestFeaturesEnabled(enable);
55 }
56
57 void WebRuntimeFeatures::enableApplicationCache(bool enable)
58 {
59     RuntimeEnabledFeatures::setApplicationCacheEnabled(enable);
60 }
61
62 void WebRuntimeFeatures::enableDatabase(bool enable)
63 {
64     RuntimeEnabledFeatures::setDatabaseEnabled(enable);
65 }
66
67 void WebRuntimeFeatures::enableDeviceMotion(bool enable)
68 {
69     RuntimeEnabledFeatures::setDeviceMotionEnabled(enable);
70 }
71
72 void WebRuntimeFeatures::enableDeviceOrientation(bool enable)
73 {
74     RuntimeEnabledFeatures::setDeviceOrientationEnabled(enable);
75 }
76
77 void WebRuntimeFeatures::enableDialogElement(bool enable)
78 {
79     RuntimeEnabledFeatures::setDialogElementEnabled(enable);
80 }
81
82 void WebRuntimeFeatures::enableEncryptedMedia(bool enable)
83 {
84     RuntimeEnabledFeatures::setEncryptedMediaEnabled(enable);
85     // FIXME: Hack to allow MediaKeyError to be enabled for either version.
86     RuntimeEnabledFeatures::setEncryptedMediaAnyVersionEnabled(
87         RuntimeEnabledFeatures::encryptedMediaEnabled()
88         || RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled());
89 }
90
91 bool WebRuntimeFeatures::isEncryptedMediaEnabled()
92 {
93     return RuntimeEnabledFeatures::encryptedMediaEnabled();
94 }
95
96 void WebRuntimeFeatures::enablePrefixedEncryptedMedia(bool enable)
97 {
98     RuntimeEnabledFeatures::setPrefixedEncryptedMediaEnabled(enable);
99     // FIXME: Hack to allow MediaKeyError to be enabled for either version.
100     RuntimeEnabledFeatures::setEncryptedMediaAnyVersionEnabled(
101         RuntimeEnabledFeatures::encryptedMediaEnabled()
102         || RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled());
103 }
104
105 bool WebRuntimeFeatures::isPrefixedEncryptedMediaEnabled()
106 {
107     return RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled();
108 }
109
110 void WebRuntimeFeatures::enableDirectWrite(bool enable)
111 {
112     RuntimeEnabledFeatures::setDirectWriteEnabled(enable);
113     RuntimeEnabledFeatures::setSubpixelFontScalingEnabled(enable || RuntimeEnabledFeatures::subpixelFontScalingEnabled());
114 }
115
116 void WebRuntimeFeatures::enableExperimentalCanvasFeatures(bool enable)
117 {
118     RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled(enable);
119 }
120
121 void WebRuntimeFeatures::enableFastTextAutosizing(bool enable)
122 {
123     RuntimeEnabledFeatures::setFastTextAutosizingEnabled(enable);
124 }
125
126 void WebRuntimeFeatures::enableFileSystem(bool enable)
127 {
128     RuntimeEnabledFeatures::setFileSystemEnabled(enable);
129 }
130
131 void WebRuntimeFeatures::enableFullscreen(bool enable)
132 {
133     RuntimeEnabledFeatures::setFullscreenEnabled(enable);
134 }
135
136 void WebRuntimeFeatures::enableGamepad(bool enable)
137 {
138     RuntimeEnabledFeatures::setGamepadEnabled(enable);
139 }
140
141 void WebRuntimeFeatures::enableGeolocation(bool enable)
142 {
143     RuntimeEnabledFeatures::setGeolocationEnabled(enable);
144 }
145
146 void WebRuntimeFeatures::enableLazyLayout(bool enable)
147 {
148     // FIXME: Remove this once Chromium stops calling this.
149 }
150
151 void WebRuntimeFeatures::enableLocalStorage(bool enable)
152 {
153     RuntimeEnabledFeatures::setLocalStorageEnabled(enable);
154 }
155
156 void WebRuntimeFeatures::enableMediaPlayer(bool enable)
157 {
158     RuntimeEnabledFeatures::setMediaEnabled(enable);
159 }
160
161 void WebRuntimeFeatures::enableWebKitMediaSource(bool enable)
162 {
163     RuntimeEnabledFeatures::setWebKitMediaSourceEnabled(enable);
164 }
165
166 void WebRuntimeFeatures::enableMediaSource(bool enable)
167 {
168     RuntimeEnabledFeatures::setMediaSourceEnabled(enable);
169 }
170
171 void WebRuntimeFeatures::enableMediaStream(bool enable)
172 {
173     RuntimeEnabledFeatures::setMediaStreamEnabled(enable);
174 }
175
176 void WebRuntimeFeatures::enableNotifications(bool enable)
177 {
178     RuntimeEnabledFeatures::setNotificationsEnabled(enable);
179 }
180
181 void WebRuntimeFeatures::enableNavigatorContentUtils(bool enable)
182 {
183     RuntimeEnabledFeatures::setNavigatorContentUtilsEnabled(enable);
184 }
185
186 void WebRuntimeFeatures::enableOrientationEvent(bool enable)
187 {
188     RuntimeEnabledFeatures::setOrientationEventEnabled(enable);
189 }
190
191 void WebRuntimeFeatures::enablePagePopup(bool enable)
192 {
193     RuntimeEnabledFeatures::setPagePopupEnabled(enable);
194 }
195
196 void WebRuntimeFeatures::enablePeerConnection(bool enable)
197 {
198     RuntimeEnabledFeatures::setPeerConnectionEnabled(enable);
199 }
200
201 void WebRuntimeFeatures::enableRequestAutocomplete(bool enable)
202 {
203     RuntimeEnabledFeatures::setRequestAutocompleteEnabled(enable);
204 }
205
206 void WebRuntimeFeatures::enableScriptedSpeech(bool enable)
207 {
208     RuntimeEnabledFeatures::setScriptedSpeechEnabled(enable);
209 }
210
211 void WebRuntimeFeatures::enableServiceWorker(bool enable)
212 {
213     RuntimeEnabledFeatures::setServiceWorkerEnabled(enable);
214 }
215
216 void WebRuntimeFeatures::enableSessionStorage(bool enable)
217 {
218     RuntimeEnabledFeatures::setSessionStorageEnabled(enable);
219 }
220
221 void WebRuntimeFeatures::enableSpeechInput(bool enable)
222 {
223     RuntimeEnabledFeatures::setSpeechInputEnabled(enable);
224 }
225
226 void WebRuntimeFeatures::enableSpeechSynthesis(bool enable)
227 {
228     RuntimeEnabledFeatures::setSpeechSynthesisEnabled(enable);
229 }
230
231 void WebRuntimeFeatures::enableTouch(bool enable)
232 {
233     RuntimeEnabledFeatures::setTouchEnabled(enable);
234 }
235
236 void WebRuntimeFeatures::enableTouchIconLoading(bool enable)
237 {
238     RuntimeEnabledFeatures::setTouchIconLoadingEnabled(enable);
239 }
240
241 void WebRuntimeFeatures::enableWebAnimationsCSS(bool enable)
242 {
243     // FIXME: Remove this method once the runtime flags are removed from Chromium.
244     ASSERT(enable);
245 }
246
247 void WebRuntimeFeatures::enableWebAnimationsSVG(bool enable)
248 {
249     RuntimeEnabledFeatures::setWebAnimationsSVGEnabled(enable);
250 }
251
252 void WebRuntimeFeatures::enableWebAudio(bool enable)
253 {
254     RuntimeEnabledFeatures::setWebAudioEnabled(enable);
255 }
256
257 void WebRuntimeFeatures::enableWebGLDraftExtensions(bool enable)
258 {
259     RuntimeEnabledFeatures::setWebGLDraftExtensionsEnabled(enable);
260 }
261
262 void WebRuntimeFeatures::enableWebMIDI(bool enable)
263 {
264     return RuntimeEnabledFeatures::setWebMIDIEnabled(enable);
265 }
266
267 void WebRuntimeFeatures::enableHTMLImports(bool enable)
268 {
269     RuntimeEnabledFeatures::setHTMLImportsEnabled(enable);
270 }
271
272 void WebRuntimeFeatures::enableXSLT(bool enable)
273 {
274     RuntimeEnabledFeatures::setXSLTEnabled(enable);
275 }
276
277 void WebRuntimeFeatures::enableOverlayScrollbars(bool enable)
278 {
279     RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(enable);
280 }
281
282 void WebRuntimeFeatures::enableInputModeAttribute(bool enable)
283 {
284     RuntimeEnabledFeatures::setInputModeAttributeEnabled(enable);
285 }
286
287 void WebRuntimeFeatures::enableOverlayFullscreenVideo(bool enable)
288 {
289     RuntimeEnabledFeatures::setOverlayFullscreenVideoEnabled(enable);
290 }
291
292 void WebRuntimeFeatures::enableSharedWorker(bool enable)
293 {
294     RuntimeEnabledFeatures::setSharedWorkerEnabled(enable);
295 }
296
297 void WebRuntimeFeatures::enableRepaintAfterLayout(bool enable)
298 {
299     RuntimeEnabledFeatures::setRepaintAfterLayoutEnabled(enable);
300 }
301
302 void WebRuntimeFeatures::enableExperimentalWebSocket(bool enable)
303 {
304     RuntimeEnabledFeatures::setExperimentalWebSocketEnabled(enable);
305 }
306
307 void WebRuntimeFeatures::enableTargetedStyleRecalc(bool enable)
308 {
309     RuntimeEnabledFeatures::setTargetedStyleRecalcEnabled(enable);
310 }
311
312 } // namespace blink