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 "public/web/WebRuntimeFeatures.h" 33 34#include "platform/RuntimeEnabledFeatures.h" 35#include "web/WebMediaPlayerClientImpl.h" 36 37namespace blink { 38 39void WebRuntimeFeatures::enableExperimentalFeatures(bool enable) 40{ 41 RuntimeEnabledFeatures::setExperimentalFeaturesEnabled(enable); 42} 43 44void WebRuntimeFeatures::enableBleedingEdgeFastPaths(bool enable) 45{ 46 ASSERT(enable); 47 RuntimeEnabledFeatures::setBleedingEdgeFastPathsEnabled(enable); 48 RuntimeEnabledFeatures::setSubpixelFontScalingEnabled(enable || RuntimeEnabledFeatures::subpixelFontScalingEnabled()); 49 RuntimeEnabledFeatures::setWebAnimationsAPIEnabled(enable); 50} 51 52void WebRuntimeFeatures::enableTestOnlyFeatures(bool enable) 53{ 54 RuntimeEnabledFeatures::setTestFeaturesEnabled(enable); 55} 56 57void WebRuntimeFeatures::enableApplicationCache(bool enable) 58{ 59 RuntimeEnabledFeatures::setApplicationCacheEnabled(enable); 60} 61 62 63void WebRuntimeFeatures::enableCompositedSelectionUpdate(bool enable) 64{ 65 RuntimeEnabledFeatures::setCompositedSelectionUpdateEnabled(enable); 66} 67 68bool WebRuntimeFeatures::isCompositedSelectionUpdateEnabled() 69{ 70 return RuntimeEnabledFeatures::compositedSelectionUpdateEnabled(); 71} 72 73void WebRuntimeFeatures::enableDatabase(bool enable) 74{ 75 RuntimeEnabledFeatures::setDatabaseEnabled(enable); 76} 77 78void WebRuntimeFeatures::enableDecodeToYUV(bool enable) 79{ 80 RuntimeEnabledFeatures::setDecodeToYUVEnabled(enable); 81} 82 83void WebRuntimeFeatures::enableDisplayList2dCanvas(bool enable) 84{ 85 RuntimeEnabledFeatures::setDisplayList2dCanvasEnabled(enable); 86} 87 88void WebRuntimeFeatures::enableEncryptedMedia(bool enable) 89{ 90 RuntimeEnabledFeatures::setEncryptedMediaEnabled(enable); 91 // FIXME: Hack to allow MediaKeyError to be enabled for either version. 92 RuntimeEnabledFeatures::setEncryptedMediaAnyVersionEnabled( 93 RuntimeEnabledFeatures::encryptedMediaEnabled() 94 || RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()); 95} 96 97bool WebRuntimeFeatures::isEncryptedMediaEnabled() 98{ 99 return RuntimeEnabledFeatures::encryptedMediaEnabled(); 100} 101 102void WebRuntimeFeatures::enablePrefixedEncryptedMedia(bool enable) 103{ 104 RuntimeEnabledFeatures::setPrefixedEncryptedMediaEnabled(enable); 105 // FIXME: Hack to allow MediaKeyError to be enabled for either version. 106 RuntimeEnabledFeatures::setEncryptedMediaAnyVersionEnabled( 107 RuntimeEnabledFeatures::encryptedMediaEnabled() 108 || RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled()); 109} 110 111bool WebRuntimeFeatures::isPrefixedEncryptedMediaEnabled() 112{ 113 return RuntimeEnabledFeatures::prefixedEncryptedMediaEnabled(); 114} 115 116void WebRuntimeFeatures::enableExperimentalCanvasFeatures(bool enable) 117{ 118 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled(enable); 119} 120 121void WebRuntimeFeatures::enableFastMobileScrolling(bool enable) 122{ 123 RuntimeEnabledFeatures::setFastMobileScrollingEnabled(enable); 124} 125 126void WebRuntimeFeatures::enableFileSystem(bool enable) 127{ 128 RuntimeEnabledFeatures::setFileSystemEnabled(enable); 129} 130 131void WebRuntimeFeatures::enableGamepad(bool enable) 132{ 133 RuntimeEnabledFeatures::setGamepadEnabled(enable); 134} 135 136void WebRuntimeFeatures::enableLocalStorage(bool enable) 137{ 138 RuntimeEnabledFeatures::setLocalStorageEnabled(enable); 139} 140 141void WebRuntimeFeatures::enableMediaPlayer(bool enable) 142{ 143 RuntimeEnabledFeatures::setMediaEnabled(enable); 144} 145 146void WebRuntimeFeatures::enableSubpixelFontScaling(bool enable) 147{ 148 RuntimeEnabledFeatures::setSubpixelFontScalingEnabled(enable); 149} 150 151void WebRuntimeFeatures::enableMediaCapture(bool enable) 152{ 153 RuntimeEnabledFeatures::setMediaCaptureEnabled(enable); 154} 155 156void WebRuntimeFeatures::enableMediaSource(bool enable) 157{ 158 RuntimeEnabledFeatures::setMediaSourceEnabled(enable); 159} 160 161void WebRuntimeFeatures::enableMediaStream(bool enable) 162{ 163 RuntimeEnabledFeatures::setMediaStreamEnabled(enable); 164} 165 166void WebRuntimeFeatures::enableNotifications(bool enable) 167{ 168 RuntimeEnabledFeatures::setNotificationsEnabled(enable); 169} 170 171void WebRuntimeFeatures::enableNavigatorContentUtils(bool enable) 172{ 173 RuntimeEnabledFeatures::setNavigatorContentUtilsEnabled(enable); 174} 175 176void WebRuntimeFeatures::enableNavigationTransitions(bool enable) 177{ 178 RuntimeEnabledFeatures::setNavigationTransitionsEnabled(enable); 179} 180 181void WebRuntimeFeatures::enableNetworkInformation(bool enable) 182{ 183 RuntimeEnabledFeatures::setNetworkInformationEnabled(enable); 184} 185 186void WebRuntimeFeatures::enableOrientationEvent(bool enable) 187{ 188 RuntimeEnabledFeatures::setOrientationEventEnabled(enable); 189} 190 191void WebRuntimeFeatures::enablePagePopup(bool enable) 192{ 193 RuntimeEnabledFeatures::setPagePopupEnabled(enable); 194} 195 196void WebRuntimeFeatures::enablePeerConnection(bool enable) 197{ 198 RuntimeEnabledFeatures::setPeerConnectionEnabled(enable); 199} 200 201void WebRuntimeFeatures::enableRequestAutocomplete(bool enable) 202{ 203 RuntimeEnabledFeatures::setRequestAutocompleteEnabled(enable); 204} 205 206void WebRuntimeFeatures::enableScreenOrientation(bool enable) 207{ 208 RuntimeEnabledFeatures::setScreenOrientationEnabled(enable); 209} 210 211void WebRuntimeFeatures::enableScriptedSpeech(bool enable) 212{ 213 RuntimeEnabledFeatures::setScriptedSpeechEnabled(enable); 214} 215 216void WebRuntimeFeatures::enableServiceWorker(bool enable) 217{ 218 RuntimeEnabledFeatures::setServiceWorkerEnabled(enable); 219} 220 221void WebRuntimeFeatures::enableSessionStorage(bool enable) 222{ 223 RuntimeEnabledFeatures::setSessionStorageEnabled(enable); 224} 225 226void WebRuntimeFeatures::enableTouch(bool enable) 227{ 228 RuntimeEnabledFeatures::setTouchEnabled(enable); 229} 230 231void WebRuntimeFeatures::enableTouchIconLoading(bool enable) 232{ 233 RuntimeEnabledFeatures::setTouchIconLoadingEnabled(enable); 234} 235 236void WebRuntimeFeatures::enableWebAudio(bool enable) 237{ 238 RuntimeEnabledFeatures::setWebAudioEnabled(enable); 239} 240 241void WebRuntimeFeatures::enableWebGLDraftExtensions(bool enable) 242{ 243 RuntimeEnabledFeatures::setWebGLDraftExtensionsEnabled(enable); 244} 245 246void WebRuntimeFeatures::enableWebGLImageChromium(bool enable) 247{ 248 RuntimeEnabledFeatures::setWebGLImageChromiumEnabled(enable); 249} 250 251void WebRuntimeFeatures::enableWebMIDI(bool enable) 252{ 253 return RuntimeEnabledFeatures::setWebMIDIEnabled(enable); 254} 255 256void WebRuntimeFeatures::enableXSLT(bool enable) 257{ 258 RuntimeEnabledFeatures::setXSLTEnabled(enable); 259} 260 261void WebRuntimeFeatures::enableOverlayScrollbars(bool enable) 262{ 263 RuntimeEnabledFeatures::setOverlayScrollbarsEnabled(enable); 264} 265 266void WebRuntimeFeatures::enableOverlayFullscreenVideo(bool enable) 267{ 268 RuntimeEnabledFeatures::setOverlayFullscreenVideoEnabled(enable); 269} 270 271void WebRuntimeFeatures::enableSharedWorker(bool enable) 272{ 273 RuntimeEnabledFeatures::setSharedWorkerEnabled(enable); 274} 275 276void WebRuntimeFeatures::enablePreciseMemoryInfo(bool enable) 277{ 278 RuntimeEnabledFeatures::setPreciseMemoryInfoEnabled(enable); 279} 280 281void WebRuntimeFeatures::enableLayerSquashing(bool enable) 282{ 283 RuntimeEnabledFeatures::setLayerSquashingEnabled(enable); 284} 285 286void WebRuntimeFeatures::enableShowModalDialog(bool enable) 287{ 288 RuntimeEnabledFeatures::setShowModalDialogEnabled(enable); 289} 290 291void WebRuntimeFeatures::enableLaxMixedContentChecking(bool enable) 292{ 293 RuntimeEnabledFeatures::setLaxMixedContentCheckingEnabled(enable); 294} 295 296} // namespace blink 297