Home | History | Annotate | Download | only in src
      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 #include "config.h"
     32 #include "WebRuntimeFeatures.h"
     33 
     34 #include "AbstractDatabase.h"
     35 #include "RuntimeEnabledFeatures.h"
     36 #include "WebMediaPlayerClientImpl.h"
     37 #include "WebSocket.h"
     38 
     39 using namespace WebCore;
     40 
     41 namespace WebKit {
     42 
     43 void WebRuntimeFeatures::enableDatabase(bool enable)
     44 {
     45 #if ENABLE(DATABASE)
     46     AbstractDatabase::setIsAvailable(enable);
     47 #endif
     48 }
     49 
     50 bool WebRuntimeFeatures::isDatabaseEnabled()
     51 {
     52 #if ENABLE(DATABASE)
     53     return AbstractDatabase::isAvailable();
     54 #else
     55     return false;
     56 #endif
     57 }
     58 
     59 void WebRuntimeFeatures::enableLocalStorage(bool enable)
     60 {
     61 #if ENABLE(DOM_STORAGE)
     62     RuntimeEnabledFeatures::setLocalStorageEnabled(enable);
     63 #endif
     64 }
     65 
     66 bool WebRuntimeFeatures::isLocalStorageEnabled()
     67 {
     68 #if ENABLE(DOM_STORAGE)
     69     return RuntimeEnabledFeatures::localStorageEnabled();
     70 #else
     71     return false;
     72 #endif
     73 }
     74 
     75 void WebRuntimeFeatures::enableSessionStorage(bool enable)
     76 {
     77 #if ENABLE(DOM_STORAGE)
     78     RuntimeEnabledFeatures::setSessionStorageEnabled(enable);
     79 #endif
     80 }
     81 
     82 bool WebRuntimeFeatures::isSessionStorageEnabled()
     83 {
     84 #if ENABLE(DOM_STORAGE)
     85     return RuntimeEnabledFeatures::sessionStorageEnabled();
     86 #else
     87     return false;
     88 #endif
     89 }
     90 
     91 void WebRuntimeFeatures::enableMediaPlayer(bool enable)
     92 {
     93 #if ENABLE(VIDEO)
     94     WebMediaPlayerClientImpl::setIsEnabled(enable);
     95 #endif
     96 }
     97 
     98 bool WebRuntimeFeatures::isMediaPlayerEnabled()
     99 {
    100 #if ENABLE(VIDEO)
    101     return WebMediaPlayerClientImpl::isEnabled();
    102 #else
    103     return false;
    104 #endif
    105 }
    106 
    107 void WebRuntimeFeatures::enableSockets(bool enable)
    108 {
    109 #if ENABLE(WEB_SOCKETS)
    110     WebSocket::setIsAvailable(enable);
    111 #endif
    112 }
    113 
    114 bool WebRuntimeFeatures::isSocketsEnabled()
    115 {
    116 #if ENABLE(WEB_SOCKETS)
    117     return WebSocket::isAvailable();
    118 #else
    119     return false;
    120 #endif
    121 }
    122 
    123 void WebRuntimeFeatures::enableNotifications(bool enable)
    124 {
    125 #if ENABLE(NOTIFICATIONS)
    126     RuntimeEnabledFeatures::setWebkitNotificationsEnabled(enable);
    127 #endif
    128 }
    129 
    130 bool WebRuntimeFeatures::isNotificationsEnabled()
    131 {
    132 #if ENABLE(NOTIFICATIONS)
    133     return RuntimeEnabledFeatures::webkitNotificationsEnabled();
    134 #else
    135     return false;
    136 #endif
    137 }
    138 
    139 void WebRuntimeFeatures::enableApplicationCache(bool enable)
    140 {
    141 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
    142     RuntimeEnabledFeatures::setApplicationCacheEnabled(enable);
    143 #endif
    144 }
    145 
    146 bool WebRuntimeFeatures::isApplicationCacheEnabled()
    147 {
    148 #if ENABLE(OFFLINE_WEB_APPLICATIONS)
    149     return RuntimeEnabledFeatures::applicationCacheEnabled();
    150 #else
    151     return false;
    152 #endif
    153 }
    154 
    155 void WebRuntimeFeatures::enableDataTransferItems(bool enable)
    156 {
    157 #if ENABLE(DATA_TRANSFER_ITEMS)
    158     RuntimeEnabledFeatures::setDataTransferItemsEnabled(enable);
    159 #endif
    160 }
    161 
    162 bool WebRuntimeFeatures::isDataTransferItemsEnabled()
    163 {
    164 #if ENABLE(DATA_TRANSFER_ITEMS)
    165     return RuntimeEnabledFeatures::dataTransferItemsEnabled();
    166 #else
    167     return false;
    168 #endif
    169 }
    170 
    171 void WebRuntimeFeatures::enableGeolocation(bool enable)
    172 {
    173 #if ENABLE(GEOLOCATION)
    174     RuntimeEnabledFeatures::setGeolocationEnabled(enable);
    175 #endif
    176 }
    177 
    178 bool WebRuntimeFeatures::isGeolocationEnabled()
    179 {
    180 #if ENABLE(GEOLOCATION)
    181     return RuntimeEnabledFeatures::geolocationEnabled();
    182 #else
    183     return false;
    184 #endif
    185 }
    186 
    187 void WebRuntimeFeatures::enableIndexedDatabase(bool enable)
    188 {
    189 #if ENABLE(INDEXED_DATABASE)
    190     RuntimeEnabledFeatures::setWebkitIndexedDBEnabled(enable);
    191 #endif
    192 }
    193 
    194 bool WebRuntimeFeatures::isIndexedDatabaseEnabled()
    195 {
    196 #if ENABLE(INDEXED_DATABASE)
    197     return RuntimeEnabledFeatures::webkitIndexedDBEnabled();
    198 #else
    199     return false;
    200 #endif
    201 }
    202 
    203 void WebRuntimeFeatures::enableWebAudio(bool enable)
    204 {
    205 #if ENABLE(WEB_AUDIO)
    206     RuntimeEnabledFeatures::setWebkitAudioContextEnabled(enable);
    207 #endif
    208 }
    209 
    210 bool WebRuntimeFeatures::isWebAudioEnabled()
    211 {
    212 #if ENABLE(WEB_AUDIO)
    213     return RuntimeEnabledFeatures::webkitAudioContextEnabled();
    214 #else
    215     return false;
    216 #endif
    217 }
    218 
    219 void WebRuntimeFeatures::enablePushState(bool enable)
    220 {
    221     RuntimeEnabledFeatures::setPushStateEnabled(enable);
    222 }
    223 
    224 bool WebRuntimeFeatures::isPushStateEnabled(bool enable)
    225 {
    226     return RuntimeEnabledFeatures::pushStateEnabled();
    227 }
    228 
    229 void WebRuntimeFeatures::enableTouch(bool enable)
    230 {
    231 #if ENABLE(TOUCH_EVENTS)
    232     RuntimeEnabledFeatures::setTouchEnabled(enable);
    233 #endif
    234 }
    235 
    236 bool WebRuntimeFeatures::isTouchEnabled()
    237 {
    238 #if ENABLE(TOUCH_EVENTS)
    239     return RuntimeEnabledFeatures::touchEnabled();
    240 #else
    241     return false;
    242 #endif
    243 }
    244 
    245 void WebRuntimeFeatures::enableDeviceMotion(bool enable)
    246 {
    247     RuntimeEnabledFeatures::setDeviceMotionEnabled(enable);
    248 }
    249 
    250 bool WebRuntimeFeatures::isDeviceMotionEnabled()
    251 {
    252     return RuntimeEnabledFeatures::deviceMotionEnabled();
    253 }
    254 
    255 void WebRuntimeFeatures::enableDeviceOrientation(bool enable)
    256 {
    257     RuntimeEnabledFeatures::setDeviceOrientationEnabled(enable);
    258 }
    259 
    260 bool WebRuntimeFeatures::isDeviceOrientationEnabled()
    261 {
    262     return RuntimeEnabledFeatures::deviceOrientationEnabled();
    263 }
    264 
    265 void WebRuntimeFeatures::enableSpeechInput(bool enable)
    266 {
    267     RuntimeEnabledFeatures::setSpeechInputEnabled(enable);
    268 }
    269 
    270 bool WebRuntimeFeatures::isSpeechInputEnabled()
    271 {
    272     return RuntimeEnabledFeatures::speechInputEnabled();
    273 }
    274 
    275 void WebRuntimeFeatures::enableXHRResponseBlob(bool enable)
    276 {
    277 #if ENABLE(XHR_RESPONSE_BLOB)
    278     RuntimeEnabledFeatures::setXHRResponseBlobEnabled(enable);
    279 #endif
    280 }
    281 
    282 bool WebRuntimeFeatures::isXHRResponseBlobEnabled()
    283 {
    284 #if ENABLE(XHR_RESPONSE_BLOB)
    285     return RuntimeEnabledFeatures::xhrResponseBlobEnabled();
    286 #else
    287     return false;
    288 #endif
    289 }
    290 
    291 void WebRuntimeFeatures::enableFileSystem(bool enable)
    292 {
    293 #if ENABLE(FILE_SYSTEM)
    294     RuntimeEnabledFeatures::setFileSystemEnabled(enable);
    295 #endif
    296 }
    297 
    298 bool WebRuntimeFeatures::isFileSystemEnabled()
    299 {
    300 #if ENABLE(FILE_SYSTEM)
    301     return RuntimeEnabledFeatures::fileSystemEnabled();
    302 #else
    303     return false;
    304 #endif
    305 }
    306 
    307 void WebRuntimeFeatures::enableJavaScriptI18NAPI(bool enable)
    308 {
    309 #if ENABLE(JAVASCRIPT_I18N_API)
    310     RuntimeEnabledFeatures::setJavaScriptI18NAPIEnabled(enable);
    311 #endif
    312 }
    313 
    314 bool WebRuntimeFeatures::isJavaScriptI18NAPIEnabled()
    315 {
    316 #if ENABLE(JAVASCRIPT_I18N_API)
    317     return RuntimeEnabledFeatures::javaScriptI18NAPIEnabled();
    318 #else
    319     return false;
    320 #endif
    321 }
    322 
    323 void WebRuntimeFeatures::enableQuota(bool enable)
    324 {
    325 #if ENABLE(QUOTA)
    326     RuntimeEnabledFeatures::setQuotaEnabled(enable);
    327 #endif
    328 }
    329 
    330 bool WebRuntimeFeatures::isQuotaEnabled()
    331 {
    332 #if ENABLE(QUOTA)
    333     return RuntimeEnabledFeatures::quotaEnabled();
    334 #else
    335     return false;
    336 #endif
    337 }
    338 
    339 } // namespace WebKit
    340