/* * Copyright (C) 2009 Google Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following disclaimer * in the documentation and/or other materials provided with the * distribution. * * Neither the name of Google Inc. nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef RuntimeEnabledFeatures_h #define RuntimeEnabledFeatures_h namespace WebCore { // A class that stores static enablers for all experimental features. Note that // the method names must line up with the JavaScript method they enable for code // generation to work properly. class RuntimeEnabledFeatures { public: static void setLocalStorageEnabled(bool isEnabled) { isLocalStorageEnabled = isEnabled; } static bool localStorageEnabled() { return isLocalStorageEnabled; } static void setSessionStorageEnabled(bool isEnabled) { isSessionStorageEnabled = isEnabled; } static bool sessionStorageEnabled() { return isSessionStorageEnabled; } static void setWebkitNotificationsEnabled(bool isEnabled) { isWebkitNotificationsEnabled = isEnabled; } static bool webkitNotificationsEnabled() { return isWebkitNotificationsEnabled; } static void setApplicationCacheEnabled(bool isEnabled) { isApplicationCacheEnabled = isEnabled; } static bool applicationCacheEnabled() { return isApplicationCacheEnabled; } static void setGeolocationEnabled(bool isEnabled) { isGeolocationEnabled = isEnabled; } static bool geolocationEnabled() { return isGeolocationEnabled; } static void setIndexedDBEnabled(bool isEnabled) { isIndexedDBEnabled = isEnabled; } static bool indexedDBEnabled() { return isIndexedDBEnabled; } #if ENABLE(VIDEO) static bool audioEnabled(); static bool htmlMediaElementEnabled(); static bool htmlAudioElementEnabled(); static bool htmlVideoElementEnabled(); static bool mediaErrorEnabled(); #endif #if ENABLE(SHARED_WORKERS) static bool sharedWorkerEnabled(); #endif #if ENABLE(WEB_SOCKETS) static bool webSocketEnabled(); #endif #if ENABLE(DATABASE) static bool openDatabaseEnabled(); #endif private: // Never instantiate. RuntimeEnabledFeatures() { } static bool isLocalStorageEnabled; static bool isSessionStorageEnabled; static bool isWebkitNotificationsEnabled; static bool isApplicationCacheEnabled; static bool isGeolocationEnabled; static bool isIndexedDBEnabled; }; } // namespace WebCore #endif // RuntimeEnabledFeatures_h