[Web Animations] Expose Web Animations CSS integration as an experimental feature
[WebKit-https.git] / Source / WebKitLegacy / win / Interfaces / IWebPreferencesPrivate.idl
1 /*
2  * Copyright (C) 2007, 2008, 2009 Apple 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
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer. 
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution. 
13  * 3.  Neither the name of Apple Inc. ("Apple") nor the names of
14  *     its contributors may be used to endorse or promote products derived
15  *     from this software without specific prior written permission. 
16  *
17  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
18  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  */
28
29 #ifndef DO_NO_IMPORTS
30 import "oaidl.idl";
31 import "ocidl.idl";
32 #endif
33
34 typedef enum WebKitJavaScriptRuntimeFlags {
35     WebKitJavaScriptRuntimeFlagsAllEnabled = 0
36 } WebKitJavaScriptRuntimeFlags;
37
38 [
39     object,
40     oleautomation,
41     hidden,
42     uuid(1380DE41-42CF-4170-9D5D-7840EDE5B36C),
43     pointer_default(unique)
44 ]
45 interface IWebPreferencesPrivate : IUnknown
46 {
47     HRESULT setDeveloperExtrasEnabled([in] BOOL enabled);
48     HRESULT developerExtrasEnabled([out, retval] BOOL* enabled);
49
50     HRESULT setAutomaticallyDetectsCacheModel([in] BOOL automaticallyDetectsCacheModel);
51     HRESULT automaticallyDetectsCacheModel([out, retval] BOOL* automaticallyDetectsCacheModel);
52
53     HRESULT setAuthorAndUserStylesEnabled([in] BOOL enabled);
54     HRESULT authorAndUserStylesEnabled([out, retval] BOOL* enabled);
55
56     HRESULT inApplicationChromeMode([out, retval] BOOL *allowed);
57     HRESULT setApplicationChromeMode([in] BOOL allowed);
58
59     HRESULT setOfflineWebApplicationCacheEnabled([in] BOOL enabled);
60     HRESULT offlineWebApplicationCacheEnabled([out, retval] BOOL *enabled);
61
62     HRESULT localStorageDatabasePath([out, retval] BSTR* location);
63     HRESULT setLocalStorageDatabasePath([in] BSTR location);
64
65     // These two methods are no-ops, and only retained to keep
66     // the Interface consistent. DO NOT USE THEM.
67     HRESULT setShouldPaintNativeControls([in] BOOL shouldPaint);
68     HRESULT shouldPaintNativeControls([out, retval] BOOL* enabled);
69
70     HRESULT setDatabasesEnabled([in] BOOL enabled);
71     HRESULT databasesEnabled([out, retval] BOOL *enabled);
72
73     HRESULT setLocalStorageEnabled([in] BOOL enabled);
74     HRESULT localStorageEnabled([out, retval] BOOL* enabled);
75
76     HRESULT setFontSmoothingContrast([in] float contrast);
77     HRESULT fontSmoothingContrast([out, retval] float* contrast);
78
79     HRESULT isWebSecurityEnabled([out, retval] BOOL* enabled);
80     HRESULT setWebSecurityEnabled([in] BOOL enabled);
81
82     HRESULT allowUniversalAccessFromFileURLs([out, retval] BOOL *allowAccess);
83     HRESULT setAllowUniversalAccessFromFileURLs([in] BOOL allowAccess);
84
85     HRESULT isXSSAuditorEnabled([out, retval] BOOL *enabled);
86     HRESULT setXSSAuditorEnabled([in] BOOL enabled);
87
88     HRESULT isFrameFlatteningEnabled([out, retval] BOOL *enabled);
89     HRESULT setFrameFlatteningEnabled([in] BOOL enabled);
90
91     HRESULT experimentalNotificationsEnabled([out, retval] BOOL *enabled);
92     HRESULT setExperimentalNotificationsEnabled([in] BOOL enabled);
93
94     HRESULT setShouldUseHighResolutionTimers([in] BOOL useHighResolutionTimers);
95     HRESULT shouldUseHighResolutionTimers([out, retval] BOOL* useHighResolutionTimers);
96
97     // Used to set preference specified by a test via TestRunner.overridePreference(..).
98     // Used by DumpRenderTree.
99     HRESULT setPreferenceForTest([in] BSTR key, [in] BSTR value);
100
101     HRESULT unused1();
102     HRESULT unused2();
103
104     HRESULT setAcceleratedCompositingEnabled([in] BOOL);
105     HRESULT acceleratedCompositingEnabled([out, retval] BOOL*);
106
107     HRESULT setCustomDragCursorsEnabled([in] BOOL);
108     HRESULT customDragCursorsEnabled([out, retval] BOOL*);
109
110     HRESULT allowFileAccessFromFileURLs([out, retval] BOOL *allowAccess);
111     HRESULT setAllowFileAccessFromFileURLs([in] BOOL allowAccess);
112
113     HRESULT setShowDebugBorders([in] BOOL);
114     HRESULT showDebugBorders([out, retval] BOOL*);
115
116     HRESULT setShowRepaintCounter([in] BOOL);
117     HRESULT showRepaintCounter([out, retval] BOOL*);
118
119     HRESULT javaScriptCanAccessClipboard([out, retval] BOOL *enabled);
120     HRESULT setJavaScriptCanAccessClipboard([in] BOOL enabled);
121
122     HRESULT isDNSPrefetchingEnabled([out, retval] BOOL *enabled);
123     HRESULT setDNSPrefetchingEnabled([in] BOOL enabled);
124
125     HRESULT hyperlinkAuditingEnabled(BOOL *hyperlinkAuditingEnabled);
126     HRESULT setHyperlinkAuditingEnabled(BOOL hyperlinkAuditingEnabled);
127
128     HRESULT setLoadsSiteIconsIgnoringImageLoadingPreference([in] BOOL enabled);
129     HRESULT loadsSiteIconsIgnoringImageLoadingPreference([out, retval] BOOL* enabled);
130
131     HRESULT setFullScreenEnabled([in] BOOL enabled);
132     HRESULT isFullScreenEnabled([out, retval] BOOL* enabled);
133
134     HRESULT setHixie76WebSocketProtocolEnabled([in] BOOL enabled);
135     HRESULT hixie76WebSocketProtocolEnabled([out, retval] BOOL* enabled);
136
137     HRESULT setMediaPlaybackRequiresUserGesture([in] BOOL);
138     HRESULT mediaPlaybackRequiresUserGesture([out, retval] BOOL*);
139
140     HRESULT setMediaPlaybackAllowsInline([in] BOOL);
141     HRESULT mediaPlaybackAllowsInline([out, retval] BOOL*);
142
143     HRESULT setShowsToolTipOverTruncatedText([in] BOOL);
144     HRESULT showsToolTipOverTruncatedText([out, retval] BOOL*);
145
146     HRESULT setShouldInvertColors([in] BOOL);
147     HRESULT shouldInvertColors([out, retval] BOOL*);
148
149     HRESULT setRequestAnimationFrameEnabled([in] BOOL);
150     HRESULT requestAnimationFrameEnabled([out, retval] BOOL*);
151
152     HRESULT mockScrollbarsEnabled([out, retval] BOOL* enabled);
153     HRESULT setMockScrollbarsEnabled([in] BOOL enabled);
154
155     // These two methods are no-ops, and only retained to keep
156     // the Interface consistent. DO NOT USE THEM.
157     HRESULT screenFontSubstitutionEnabled([out, retval] BOOL* enabled);
158     HRESULT setScreenFontSubstitutionEnabled([in] BOOL enabled);
159
160     HRESULT isInheritURIQueryComponentEnabled([out, retval] BOOL* enabled);
161     HRESULT setEnableInheritURIQueryComponent([in] BOOL enabled);
162 }
163
164 [ uuid(0E1DDB80-6B38-4ABC-A252-B58A83EB6D8C) ]
165 interface IWebPreferencesPrivate2 : IWebPreferencesPrivate
166 {
167     HRESULT javaScriptRuntimeFlags([out, retval] unsigned* flags);
168     HRESULT setJavaScriptRuntimeFlags([in] unsigned flags);
169     HRESULT allowDisplayAndRunningOfInsecureContent([out, retval] BOOL* enabled);
170     HRESULT setAllowDisplayAndRunningOfInsecureContent([in] BOOL enabled);
171 }
172
173 [uuid(92809BFB-C24F-43AD-863F-601B08CC268D)]
174 interface IWebPreferencesPrivate3 : IWebPreferencesPrivate2
175 {
176     HRESULT showTiledScrollingIndicator([out, retval] BOOL* enabled);
177     HRESULT setShowTiledScrollingIndicator([in] BOOL enabled);
178     HRESULT fetchAPIEnabled([out, retval] BOOL* enabled);
179     HRESULT setFetchAPIEnabled([in] BOOL enabled);
180     HRESULT shadowDOMEnabled([out, retval] BOOL* enabled);
181     HRESULT setShadowDOMEnabled([in] BOOL enabled);
182     HRESULT customElementsEnabled([out, retval] BOOL* enabled);
183     HRESULT setCustomElementsEnabled([in] BOOL enabled);
184     HRESULT modernMediaControlsEnabled([out, retval] BOOL* enabled);
185     HRESULT setModernMediaControlsEnabled([in] BOOL enabled);
186     HRESULT webAnimationsCSSIntegrationEnabled([out, retval] BOOL* enabled);
187     HRESULT setWebAnimationsCSSIntegrationEnabled([in] BOOL enabled);
188 }
189
190 [uuid(F9582D72-6348-45B1-AB09-39E33459B5B9)]
191 interface IWebPreferencesPrivate4 : IWebPreferencesPrivate3
192 {
193     HRESULT setApplicationId([in] BSTR applicationId);
194     HRESULT webAnimationsEnabled([out, retval] BOOL*);
195     HRESULT setWebAnimationsEnabled([in] BOOL enabled);
196     HRESULT userTimingEnabled([out, retval] BOOL*);
197     HRESULT setUserTimingEnabled([in] BOOL enabled);
198     HRESULT resourceTimingEnabled([out, retval] BOOL*);
199     HRESULT setResourceTimingEnabled([in] BOOL enabled);
200     HRESULT linkPreloadEnabled([out, retval] BOOL*);
201     HRESULT setLinkPreloadEnabled([in] BOOL enabled);
202     HRESULT mediaPreloadingEnabled([out, retval] BOOL*);
203     HRESULT setMediaPreloadingEnabled([in] BOOL enabled);
204     HRESULT clearNetworkLoaderSession();
205     HRESULT switchNetworkLoaderToNewTestingSession();
206 }
207
208 [uuid(9C4CBF53-19BC-46B3-831E-6A8B88200F20)]
209 interface IWebPreferencesPrivate5 : IWebPreferencesPrivate4
210 {
211     HRESULT isSecureContextAttributeEnabled([out, retval] BOOL*);
212     HRESULT setIsSecureContextAttributeEnabled([in] BOOL enabled);
213 }
214
215 [uuid(B8BC62C9-1CA9-4FD1-B328-CB0BD171249F)]
216 interface IWebPreferencesPrivate6 : IWebPreferencesPrivate5
217 {
218     HRESULT dataTransferItemsEnabled([out, retval] BOOL*);
219     HRESULT setDataTransferItemsEnabled([in] BOOL enabled);
220     HRESULT inspectorAdditionsEnabled([out, retval] BOOL*);
221     HRESULT setInspectorAdditionsEnabled([in] BOOL enabled);
222     HRESULT visualViewportAPIEnabled([out, retval] BOOL*);
223     HRESULT setVisualViewportAPIEnabled([in] BOOL enabled);
224     HRESULT fetchAPIKeepAliveEnabled([out, retval] BOOL* enabled);
225     HRESULT setFetchAPIKeepAliveEnabled([in] BOOL enabled);
226     HRESULT spatialNavigationEnabled([out, retval] BOOL *enabled);
227     HRESULT setSpatialNavigationEnabled([in] BOOL enabled);
228     HRESULT menuItemElementEnabled([out, retval] BOOL* enabled);
229     HRESULT setMenuItemElementEnabled([in] BOOL enabled);
230     HRESULT serverTimingEnabled([out, retval] BOOL* enabled);
231     HRESULT setServerTimingEnabled([in] BOOL enabled);
232 }
233
234 [uuid(9A49D1DE-53DD-11E8-95E6-003EE1C28AB6)]
235 interface IWebPreferencesPrivate7 : IWebPreferencesPrivate6
236 {
237     HRESULT crossOriginOptionsSupportEnabled([out, retval] BOOL* enabled);
238     HRESULT setCrossOriginOptionsSupportEnabled([in] BOOL enabled);
239 }