summaryrefslogtreecommitdiff
path: root/Source/WebKit/chromium/public/WebRuntimeFeatures.h
blob: 7152249e5ec98d07c78fffabfb30b8aef6009968 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
/*
 * 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 WebRuntimeFeatures_h
#define WebRuntimeFeatures_h

#define HAS_WEBAUDIO_RUNTIMEFEATURES 1

#include "platform/WebCommon.h"

namespace WebKit {

// This class is used to enable runtime features of WebKit.  It is unspecified
// whether a feature is enabled by default.  In the future, a feature may be
// promoted from disabled by default to enabled by default once it reaches a
// certain level of maturity.
class WebRuntimeFeatures {
public:
    WEBKIT_EXPORT static void enableDatabase(bool);
    WEBKIT_EXPORT static bool isDatabaseEnabled();

    WEBKIT_EXPORT static void enableLocalStorage(bool);
    WEBKIT_EXPORT static bool isLocalStorageEnabled();

    WEBKIT_EXPORT static void enableSessionStorage(bool);
    WEBKIT_EXPORT static bool isSessionStorageEnabled();

    WEBKIT_EXPORT static void enableMediaPlayer(bool);
    WEBKIT_EXPORT static bool isMediaPlayerEnabled();

    WEBKIT_EXPORT static void enableSockets(bool);
    WEBKIT_EXPORT static bool isSocketsEnabled();

    WEBKIT_EXPORT static void enableNotifications(bool);
    WEBKIT_EXPORT static bool isNotificationsEnabled();

    WEBKIT_EXPORT static void enableApplicationCache(bool);
    WEBKIT_EXPORT static bool isApplicationCacheEnabled();
    
    WEBKIT_EXPORT static void enableDataTransferItems(bool);
    WEBKIT_EXPORT static bool isDataTransferItemsEnabled();

    WEBKIT_EXPORT static void enableGeolocation(bool);
    WEBKIT_EXPORT static bool isGeolocationEnabled();

    WEBKIT_EXPORT static void enableIndexedDatabase(bool);
    WEBKIT_EXPORT static bool isIndexedDatabaseEnabled();

    WEBKIT_EXPORT static void enableWebAudio(bool);
    WEBKIT_EXPORT static bool isWebAudioEnabled();

    WEBKIT_EXPORT static void enablePushState(bool);
    WEBKIT_EXPORT static bool isPushStateEnabled(bool);

    WEBKIT_EXPORT static void enableTouch(bool);
    WEBKIT_EXPORT static bool isTouchEnabled();

    WEBKIT_EXPORT static void enableDeviceMotion(bool);
    WEBKIT_EXPORT static bool isDeviceMotionEnabled();

    WEBKIT_EXPORT static void enableDeviceOrientation(bool);
    WEBKIT_EXPORT static bool isDeviceOrientationEnabled();

    WEBKIT_EXPORT static void enableSpeechInput(bool);
    WEBKIT_EXPORT static bool isSpeechInputEnabled();

    WEBKIT_EXPORT static void enableScriptedSpeech(bool);
    WEBKIT_EXPORT static bool isScriptedSpeechEnabled();

    WEBKIT_EXPORT static void enableXHRResponseBlob(bool);
    WEBKIT_EXPORT static bool isXHRResponseBlobEnabled();

    WEBKIT_EXPORT static void enableFileSystem(bool);
    WEBKIT_EXPORT static bool isFileSystemEnabled();
    
    WEBKIT_EXPORT static void enableJavaScriptI18NAPI(bool);
    WEBKIT_EXPORT static bool isJavaScriptI18NAPIEnabled();

    WEBKIT_EXPORT static void enableQuota(bool);
    WEBKIT_EXPORT static bool isQuotaEnabled();

    WEBKIT_EXPORT static void enableMediaStream(bool);
    WEBKIT_EXPORT static bool isMediaStreamEnabled();

    WEBKIT_EXPORT static void enablePeerConnection(bool);
    WEBKIT_EXPORT static bool isPeerConnectionEnabled();

    WEBKIT_EXPORT static void enableFullScreenAPI(bool);
    WEBKIT_EXPORT static bool isFullScreenAPIEnabled();

    WEBKIT_EXPORT static void enablePointerLock(bool);
    WEBKIT_EXPORT static bool isPointerLockEnabled();

    WEBKIT_EXPORT static void enableMediaSource(bool);
    WEBKIT_EXPORT static bool isMediaSourceEnabled();

    WEBKIT_EXPORT static void enableEncryptedMedia(bool);
    WEBKIT_EXPORT static bool isEncryptedMediaEnabled();

    WEBKIT_EXPORT static void enableVideoTrack(bool);
    WEBKIT_EXPORT static bool isVideoTrackEnabled();

    WEBKIT_EXPORT static void enableGamepad(bool);
    WEBKIT_EXPORT static bool isGamepadEnabled();

    WEBKIT_EXPORT static void enableShadowDOM(bool);
    WEBKIT_EXPORT static bool isShadowDOMEnabled();

    WEBKIT_EXPORT static void enableStyleScoped(bool);
    WEBKIT_EXPORT static bool isStyleScopedEnabled();

    WEBKIT_EXPORT static void enableInputTypeDate(bool);
    WEBKIT_EXPORT static bool isInputTypeDateEnabled();

    WEBKIT_EXPORT static void enableInputTypeDateTime(bool);
    WEBKIT_EXPORT static bool isInputTypeDateTimeEnabled();

    WEBKIT_EXPORT static void enableInputTypeDateTimeLocal(bool);
    WEBKIT_EXPORT static bool isInputTypeDateTimeLocalEnabled();

    WEBKIT_EXPORT static void enableInputTypeMonth(bool);
    WEBKIT_EXPORT static bool isInputTypeMonthEnabled();

    WEBKIT_EXPORT static void enableInputTypeTime(bool);
    WEBKIT_EXPORT static bool isInputTypeTimeEnabled();

    WEBKIT_EXPORT static void enableInputTypeWeek(bool);
    WEBKIT_EXPORT static bool isInputTypeWeekEnabled();

    WEBKIT_EXPORT static void enableDialogElement(bool);
    WEBKIT_EXPORT static bool isDialogElementEnabled();

    WEBKIT_EXPORT static void enableCSSExclusions(bool);
    WEBKIT_EXPORT static bool isCSSExclusionsEnabled();

private:
    WebRuntimeFeatures();
};

} // namespace WebKit

#endif