Add IDL for requestIdleCallback
[WebKit-https.git] / Source / WebKitLegacy / mac / WebView / WebPreferencesPrivate.h
1 /*
2  * Copyright (C) 2005-2017 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 #import <WebKitLegacy/WebPreferences.h>
30
31 #if !TARGET_OS_IPHONE
32 #import <Quartz/Quartz.h>
33 #endif
34
35 typedef enum {
36     WebKitEditableLinkDefaultBehavior,
37     WebKitEditableLinkAlwaysLive,
38     WebKitEditableLinkOnlyLiveWithShiftKey,
39     WebKitEditableLinkLiveWhenNotFocused,
40     WebKitEditableLinkNeverLive
41 } WebKitEditableLinkBehavior;
42
43 typedef enum {
44     WebTextDirectionSubmenuNeverIncluded,
45     WebTextDirectionSubmenuAutomaticallyIncluded,
46     WebTextDirectionSubmenuAlwaysIncluded
47 } WebTextDirectionSubmenuInclusionBehavior;
48
49 typedef enum {
50     WebAllowAllStorage = 0,
51     WebBlockThirdPartyStorage,
52     WebBlockAllStorage
53 } WebStorageBlockingPolicy;
54
55 typedef enum {
56     WebKitJavaScriptRuntimeFlagsAllEnabled = 0
57 } WebKitJavaScriptRuntimeFlags;
58
59 typedef enum {
60     WebKitFrameFlatteningDisabled,
61     WebKitFrameFlatteningEnabledForNonFullScreenIFrames,
62     WebKitFrameFlatteningFullyEnabled
63 } WebKitFrameFlattening;
64
65 typedef enum : unsigned {
66     WebKitAudioSessionCategoryAmbientSound = 'ambi',
67     WebKitAudioSessionCategorySoloAmbientSound = 'solo',
68     WebKitAudioSessionCategoryMediaPlayback = 'medi',
69     WebKitAudioSessionCategoryRecordAudio = 'reca',
70     WebKitAudioSessionCategoryPlayAndRecord = 'plar',
71     WebKitAudioSessionCategoryAudioProcessing = 'proc',
72 } WebKitAudioSessionCategory;
73
74 extern NSString *WebPreferencesChangedNotification WEBKIT_DEPRECATED_MAC(10_3, 10_14);
75 extern NSString *WebPreferencesRemovedNotification WEBKIT_DEPRECATED_MAC(10_3, 10_14);
76 extern NSString *WebPreferencesChangedInternalNotification WEBKIT_DEPRECATED_MAC(10_3, 10_14);
77 extern NSString *WebPreferencesCacheModelChangedInternalNotification WEBKIT_DEPRECATED_MAC(10_5, 10_14);
78
79 @interface WebPreferences (WebPrivate)
80
81 // Preferences that might be public in a future release
82
83 - (BOOL)isDNSPrefetchingEnabled;
84 - (void)setDNSPrefetchingEnabled:(BOOL)flag;
85
86 - (BOOL)developerExtrasEnabled;
87 - (void)setDeveloperExtrasEnabled:(BOOL)flag;
88
89 - (WebKitJavaScriptRuntimeFlags)javaScriptRuntimeFlags;
90 - (void)setJavaScriptRuntimeFlags:(WebKitJavaScriptRuntimeFlags)flags;
91
92 - (BOOL)authorAndUserStylesEnabled;
93 - (void)setAuthorAndUserStylesEnabled:(BOOL)flag;
94
95 - (BOOL)applicationChromeModeEnabled;
96 - (void)setApplicationChromeModeEnabled:(BOOL)flag;
97
98 - (BOOL)usesEncodingDetector;
99 - (void)setUsesEncodingDetector:(BOOL)flag;
100
101 #if !TARGET_OS_IPHONE
102 - (BOOL)respectStandardStyleKeyEquivalents;
103 - (void)setRespectStandardStyleKeyEquivalents:(BOOL)flag;
104
105 - (BOOL)showsURLsInToolTips;
106 - (void)setShowsURLsInToolTips:(BOOL)flag;
107
108 - (BOOL)showsToolTipOverTruncatedText;
109 - (void)setShowsToolTipOverTruncatedText:(BOOL)flag;
110
111 - (BOOL)textAreasAreResizable;
112 - (void)setTextAreasAreResizable:(BOOL)flag;
113
114 - (PDFDisplayMode)PDFDisplayMode;
115 - (void)setPDFDisplayMode:(PDFDisplayMode)mode;
116 #endif
117
118 - (BOOL)shrinksStandaloneImagesToFit;
119 - (void)setShrinksStandaloneImagesToFit:(BOOL)flag;
120
121 - (BOOL)automaticallyDetectsCacheModel;
122 - (void)setAutomaticallyDetectsCacheModel:(BOOL)automaticallyDetectsCacheModel;
123
124 - (BOOL)domTimersThrottlingEnabled;
125 - (void)setDOMTimersThrottlingEnabled:(BOOL)domTimersThrottlingEnabled;
126
127 - (BOOL)webArchiveDebugModeEnabled;
128 - (void)setWebArchiveDebugModeEnabled:(BOOL)webArchiveDebugModeEnabled;
129
130 - (BOOL)localFileContentSniffingEnabled;
131 - (void)setLocalFileContentSniffingEnabled:(BOOL)localFileContentSniffingEnabled;
132
133 - (BOOL)offlineWebApplicationCacheEnabled;
134 - (void)setOfflineWebApplicationCacheEnabled:(BOOL)offlineWebApplicationCacheEnabled;
135
136 - (BOOL)databasesEnabled;
137 - (void)setDatabasesEnabled:(BOOL)databasesEnabled;
138
139 #if TARGET_OS_IPHONE
140 - (BOOL)storageTrackerEnabled;
141 - (void)setStorageTrackerEnabled:(BOOL)storageTrackerEnabled;
142 #endif
143
144 - (BOOL)localStorageEnabled;
145 - (void)setLocalStorageEnabled:(BOOL)localStorageEnabled;
146
147 - (BOOL)isWebSecurityEnabled;
148 - (void)setWebSecurityEnabled:(BOOL)flag;
149
150 - (BOOL)allowUniversalAccessFromFileURLs;
151 - (void)setAllowUniversalAccessFromFileURLs:(BOOL)flag;
152
153 - (BOOL)allowFileAccessFromFileURLs;
154 - (void)setAllowFileAccessFromFileURLs:(BOOL)flag;
155
156 - (BOOL)allowCrossOriginSubresourcesToAskForCredentials;
157 - (void)setAllowCrossOriginSubresourcesToAskForCredentials:(BOOL)flag;
158
159 - (BOOL)needsStorageAccessFromFileURLsQuirk;
160 - (void)setNeedsStorageAccessFromFileURLsQuirk:(BOOL)flag;
161
162 - (BOOL)zoomsTextOnly;
163 - (void)setZoomsTextOnly:(BOOL)zoomsTextOnly;
164
165 - (BOOL)javaScriptCanAccessClipboard;
166 - (void)setJavaScriptCanAccessClipboard:(BOOL)flag;
167
168 - (BOOL)isXSSAuditorEnabled;
169 - (void)setXSSAuditorEnabled:(BOOL)flag;
170
171 - (BOOL)experimentalNotificationsEnabled;
172 - (void)setExperimentalNotificationsEnabled:(BOOL)notificationsEnabled;
173
174 - (BOOL)isFrameFlatteningEnabled;
175 - (void)setFrameFlatteningEnabled:(BOOL)flag;
176
177 - (WebKitFrameFlattening)frameFlattening;
178 - (void)setFrameFlattening:(WebKitFrameFlattening)flag;
179
180 - (BOOL)asyncFrameScrollingEnabled;
181 - (void)setAsyncFrameScrollingEnabled:(BOOL)enabled;
182
183 - (BOOL)isSpatialNavigationEnabled;
184 - (void)setSpatialNavigationEnabled:(BOOL)flag;
185
186 - (void)setMediaDevicesEnabled:(BOOL)flag;
187 - (BOOL)mediaDevicesEnabled;
188
189 - (void)setMediaStreamEnabled:(BOOL)flag;
190 - (BOOL)mediaStreamEnabled;
191
192 - (void)setPeerConnectionEnabled:(BOOL)flag;
193 - (BOOL)peerConnectionEnabled;
194
195 #if !TARGET_OS_IPHONE
196 // zero means do AutoScale
197 - (float)PDFScaleFactor;
198 - (void)setPDFScaleFactor:(float)scale;
199 #endif
200
201 - (int64_t)applicationCacheTotalQuota;
202 - (void)setApplicationCacheTotalQuota:(int64_t)quota;
203
204 - (int64_t)applicationCacheDefaultOriginQuota;
205 - (void)setApplicationCacheDefaultOriginQuota:(int64_t)quota;
206
207 - (WebKitEditableLinkBehavior)editableLinkBehavior;
208 - (void)setEditableLinkBehavior:(WebKitEditableLinkBehavior)behavior;
209
210 - (WebTextDirectionSubmenuInclusionBehavior)textDirectionSubmenuInclusionBehavior;
211 - (void)setTextDirectionSubmenuInclusionBehavior:(WebTextDirectionSubmenuInclusionBehavior)behavior;
212
213 // Used to set preference specified in the test via LayoutTestController.overridePreference(..).
214 // For use with DumpRenderTree only.
215 - (void)_setPreferenceForTestWithValue:(NSString *)value forKey:(NSString *)key;
216
217 // If site-specific spoofing is enabled, some pages that do inappropriate user-agent string checks will be
218 // passed a nonstandard user-agent string to get them to work correctly. This method might be removed in
219 // the future when there's no more need for it.
220 - (BOOL)_useSiteSpecificSpoofing;
221 - (void)_setUseSiteSpecificSpoofing:(BOOL)newValue;
222
223 // WARNING: Allowing paste through the DOM API opens a security hole. We only use it for testing purposes.
224 - (BOOL)isDOMPasteAllowed;
225 - (void)setDOMPasteAllowed:(BOOL)DOMPasteAllowed;
226
227 - (NSString *)_ftpDirectoryTemplatePath;
228 - (void)_setFTPDirectoryTemplatePath:(NSString *)path;
229
230 - (void)_setForceFTPDirectoryListings:(BOOL)force;
231 - (BOOL)_forceFTPDirectoryListings;
232
233 - (NSString *)_localStorageDatabasePath;
234 - (void)_setLocalStorageDatabasePath:(NSString *)path;
235
236 - (BOOL)acceleratedDrawingEnabled;
237 - (void)setAcceleratedDrawingEnabled:(BOOL)enabled;
238
239 - (BOOL)displayListDrawingEnabled;
240 - (void)setDisplayListDrawingEnabled:(BOOL)enabled;
241
242 - (BOOL)resourceLoadStatisticsEnabled;
243 - (void)setResourceLoadStatisticsEnabled:(BOOL)enabled;
244
245 - (BOOL)canvasUsesAcceleratedDrawing;
246 - (void)setCanvasUsesAcceleratedDrawing:(BOOL)enabled;
247
248 - (BOOL)acceleratedCompositingEnabled;
249 - (void)setAcceleratedCompositingEnabled:(BOOL)enabled;
250
251 - (BOOL)subpixelAntialiasedLayerTextEnabled;
252 - (void)setSubpixelAntialiasedLayerTextEnabled:(BOOL)enabled;
253
254 - (BOOL)showDebugBorders;
255 - (void)setShowDebugBorders:(BOOL)show;
256
257 - (BOOL)simpleLineLayoutEnabled;
258 - (void)setSimpleLineLayoutEnabled:(BOOL)enabled;
259
260 - (BOOL)simpleLineLayoutDebugBordersEnabled;
261 - (void)setSimpleLineLayoutDebugBordersEnabled:(BOOL)enabled;
262
263 - (BOOL)showRepaintCounter;
264 - (void)setShowRepaintCounter:(BOOL)show;
265
266 - (BOOL)webAudioEnabled;
267 - (void)setWebAudioEnabled:(BOOL)enabled;
268
269 - (BOOL)subpixelCSSOMElementMetricsEnabled;
270 - (void)setSubpixelCSSOMElementMetricsEnabled:(BOOL)enabled;
271
272 - (BOOL)webGLEnabled;
273 - (void)setWebGLEnabled:(BOOL)enabled;
274
275 - (BOOL)webGL2Enabled;
276 - (void)setWebGL2Enabled:(BOOL)enabled;
277
278 - (BOOL)forceLowPowerGPUForWebGL;
279 - (void)setForceWebGLUsesLowPower:(BOOL)forceLowPower;
280
281 - (BOOL)webGPUEnabled;
282 - (void)setWebGPUEnabled:(BOOL)enabled;
283
284 - (BOOL)accelerated2dCanvasEnabled;
285 - (void)setAccelerated2dCanvasEnabled:(BOOL)enabled;
286
287 - (BOOL)paginateDuringLayoutEnabled;
288 - (void)setPaginateDuringLayoutEnabled:(BOOL)flag;
289
290 - (BOOL)hyperlinkAuditingEnabled;
291 - (void)setHyperlinkAuditingEnabled:(BOOL)enabled;
292
293 // Deprecated. Use -setVideoPlaybackRequiresUserGesture and -setAudioPlaybackRequiresUserGesture instead.
294 - (void)setMediaPlaybackRequiresUserGesture:(BOOL)flag;
295 // Deprecated. Use -videoPlaybackRequiresUserGesture and -audioPlaybackRequiresUserGesture instead.
296 - (BOOL)mediaPlaybackRequiresUserGesture;
297
298 - (void)setVideoPlaybackRequiresUserGesture:(BOOL)flag;
299 - (BOOL)videoPlaybackRequiresUserGesture;
300
301 - (void)setAudioPlaybackRequiresUserGesture:(BOOL)flag;
302 - (BOOL)audioPlaybackRequiresUserGesture;
303
304 - (void)setOverrideUserGestureRequirementForMainContent:(BOOL)flag;
305 - (BOOL)overrideUserGestureRequirementForMainContent;
306
307 - (void)setMediaPlaybackAllowsInline:(BOOL)flag;
308 - (BOOL)mediaPlaybackAllowsInline;
309
310 - (void)setInlineMediaPlaybackRequiresPlaysInlineAttribute:(BOOL)flag;
311 - (BOOL)inlineMediaPlaybackRequiresPlaysInlineAttribute;
312
313 - (void)setInvisibleAutoplayNotPermitted:(BOOL)flag;
314 - (BOOL)invisibleAutoplayNotPermitted;
315
316 - (void)setMediaControlsScaleWithPageZoom:(BOOL)flag;
317 - (BOOL)mediaControlsScaleWithPageZoom;
318
319 - (void)setAllowsAlternateFullscreen:(BOOL)flag;
320 - (BOOL)allowsAlternateFullscreen;
321
322 - (void)setAllowsPictureInPictureMediaPlayback:(BOOL)flag;
323 - (BOOL)allowsPictureInPictureMediaPlayback;
324
325 - (NSString *)pictographFontFamily;
326 - (void)setPictographFontFamily:(NSString *)family;
327
328 - (BOOL)pageCacheSupportsPlugins;
329 - (void)setPageCacheSupportsPlugins:(BOOL)flag;
330
331 // This is a global setting.
332 - (BOOL)mockScrollbarsEnabled;
333 - (void)setMockScrollbarsEnabled:(BOOL)flag;
334
335 #if TARGET_OS_IPHONE
336 // This is a global setting.
337 - (unsigned)audioSessionCategoryOverride;
338 - (void)setAudioSessionCategoryOverride:(unsigned)override;
339
340 - (BOOL)avKitEnabled;
341 - (void)setAVKitEnabled:(bool)flag;
342
343 // WARNING: this affect network performance. This must not be enabled for production use.
344 // Enabling this makes WebCore reports the network data usage.
345 // This is a global setting.
346 - (void)setNetworkDataUsageTrackingEnabled:(bool)trackingEnabled;
347 - (BOOL)networkDataUsageTrackingEnabled;
348
349 - (void)setNetworkInterfaceName:(NSString *)name;
350 - (NSString *)networkInterfaceName;
351
352 - (void)_setMinimumZoomFontSize:(float)size;
353 - (float)_minimumZoomFontSize;
354
355 // Deprecated. Has no effect.
356 - (void)setDiskImageCacheEnabled:(BOOL)enabled;
357
358 - (void)setMediaPlaybackAllowsAirPlay:(BOOL)flag;
359 - (BOOL)mediaPlaybackAllowsAirPlay;
360
361 - (BOOL)contentChangeObserverEnabled;
362 - (void)setContentChangeObserverEnabled:(BOOL)enabled;
363 #endif
364
365 - (void)_setTextAutosizingEnabled:(BOOL)enabled;
366 - (BOOL)_textAutosizingEnabled;
367
368 - (BOOL)isInheritURIQueryComponentEnabled;
369 - (void)setEnableInheritURIQueryComponent:(BOOL)flag;
370
371 - (BOOL)_mediaRecorderEnabled;
372 - (void)_setMediaRecorderEnabled:(BOOL)flag;
373
374 // Other private methods
375 #if TARGET_OS_IPHONE
376 - (BOOL)_standalone;
377 - (void)_setStandalone:(BOOL)flag;
378 - (void)_setTelephoneNumberParsingEnabled:(BOOL)flag;
379 - (BOOL)_telephoneNumberParsingEnabled;
380 - (void)_setAllowMultiElementImplicitFormSubmission:(BOOL)flag;
381 - (BOOL)_allowMultiElementImplicitFormSubmission;
382 - (void)_setAlwaysRequestGeolocationPermission:(BOOL)flag;
383 - (BOOL)_alwaysRequestGeolocationPermission;
384 - (void)_setAlwaysUseAcceleratedOverflowScroll:(BOOL)flag;
385 - (BOOL)_alwaysUseAcceleratedOverflowScroll;
386 - (void)_setLayoutInterval:(int)milliseconds;
387 - (int)_layoutInterval; // Milliseonds.
388 - (void)_setMaxParseDuration:(float)d;
389 - (float)_maxParseDuration;
390 - (void)_setInterpolationQuality:(int)quality;
391 - (int)_interpolationQuality;
392 - (BOOL)_allowPasswordEcho;
393 - (float)_passwordEchoDuration;
394 #endif
395 - (void)_postPreferencesChangedNotification;
396 - (void)_postPreferencesChangedAPINotification;
397 + (WebPreferences *)_getInstanceForIdentifier:(NSString *)identifier;
398 + (void)_setInstance:(WebPreferences *)instance forIdentifier:(NSString *)identifier;
399 + (void)_removeReferenceForIdentifier:(NSString *)identifier;
400 - (NSTimeInterval)_backForwardCacheExpirationInterval;
401 + (CFStringEncoding)_systemCFStringEncoding;
402 + (void)_setInitialDefaultTextEncodingToSystemEncoding;
403 + (void)_setIBCreatorID:(NSString *)string;
404
405 // For DumpRenderTree use only.
406 + (void)_switchNetworkLoaderToNewTestingSession;
407 + (void)_setCurrentNetworkLoaderSessionCookieAcceptPolicy:(NSHTTPCookieAcceptPolicy)cookieAcceptPolicy;
408 + (void)_clearNetworkLoaderSession;
409
410 + (void)setWebKitLinkTimeVersion:(int)version;
411
412 // For WebView's use only.
413 - (void)willAddToWebView;
414 - (void)didRemoveFromWebView;
415
416 // Full screen support is dependent on WebCore/WebKit being
417 // compiled with ENABLE_FULLSCREEN_API. 
418 - (void)setFullScreenEnabled:(BOOL)flag;
419 - (BOOL)fullScreenEnabled;
420
421 - (void)setAsynchronousSpellCheckingEnabled:(BOOL)flag;
422 - (BOOL)asynchronousSpellCheckingEnabled;
423
424 - (void)setUsePreHTML5ParserQuirks:(BOOL)flag;
425 - (BOOL)usePreHTML5ParserQuirks;
426
427 - (void)setLoadsSiteIconsIgnoringImageLoadingPreference: (BOOL)flag;
428 - (BOOL)loadsSiteIconsIgnoringImageLoadingPreference;
429
430 // AVFoundation support is dependent on WebCore/WebKit being
431 // compiled with USE_AVFOUNDATION.
432 - (void)setAVFoundationEnabled:(BOOL)flag;
433 - (BOOL)isAVFoundationEnabled;
434
435 - (void)setAVFoundationNSURLSessionEnabled:(BOOL)flag;
436 - (BOOL)isAVFoundationNSURLSessionEnabled;
437
438 // Deprecated, has no effect.
439 - (void)setVideoPluginProxyEnabled:(BOOL)flag;
440 - (BOOL)isVideoPluginProxyEnabled;
441
442 - (void)setHixie76WebSocketProtocolEnabled:(BOOL)flag;
443 - (BOOL)isHixie76WebSocketProtocolEnabled;
444
445 #if TARGET_OS_IPHONE
446 - (void)_invalidateCachedPreferences;
447 - (void)_synchronizeWebStoragePolicyWithCookiePolicy;
448 #endif
449
450 - (void)setBackspaceKeyNavigationEnabled:(BOOL)flag;
451 - (BOOL)backspaceKeyNavigationEnabled;
452
453 - (void)setWantsBalancedSetDefersLoadingBehavior:(BOOL)flag;
454 - (BOOL)wantsBalancedSetDefersLoadingBehavior;
455
456 - (void)setShouldDisplaySubtitles:(BOOL)flag;
457 - (BOOL)shouldDisplaySubtitles;
458
459 - (void)setShouldDisplayCaptions:(BOOL)flag;
460 - (BOOL)shouldDisplayCaptions;
461
462 - (void)setShouldDisplayTextDescriptions:(BOOL)flag;
463 - (BOOL)shouldDisplayTextDescriptions;
464
465 - (void)setNotificationsEnabled:(BOOL)flag;
466 - (BOOL)notificationsEnabled;
467
468 - (void)setShouldRespectImageOrientation:(BOOL)flag;
469 - (BOOL)shouldRespectImageOrientation;
470
471 - (BOOL)requestAnimationFrameEnabled;
472 - (void)setRequestAnimationFrameEnabled:(BOOL)enabled;
473
474 - (void)setIncrementalRenderingSuppressionTimeoutInSeconds:(NSTimeInterval)timeout;
475 - (NSTimeInterval)incrementalRenderingSuppressionTimeoutInSeconds;
476
477 - (BOOL)diagnosticLoggingEnabled;
478 - (void)setDiagnosticLoggingEnabled:(BOOL)enabled;
479
480 - (void)setStorageBlockingPolicy:(WebStorageBlockingPolicy)storageBlockingPolicy;
481 - (WebStorageBlockingPolicy)storageBlockingPolicy;
482
483 - (BOOL)plugInSnapshottingEnabled;
484 - (void)setPlugInSnapshottingEnabled:(BOOL)enabled;
485
486 - (BOOL)hiddenPageDOMTimerThrottlingEnabled;
487 - (void)setHiddenPageDOMTimerThrottlingEnabled:(BOOL)flag;
488
489 - (BOOL)hiddenPageCSSAnimationSuspensionEnabled;
490 - (void)setHiddenPageCSSAnimationSuspensionEnabled:(BOOL)flag;
491
492 - (BOOL)lowPowerVideoAudioBufferSizeEnabled;
493 - (void)setLowPowerVideoAudioBufferSizeEnabled:(BOOL)enabled;
494
495 - (void)setUseLegacyTextAlignPositionedElementBehavior:(BOOL)flag;
496 - (BOOL)useLegacyTextAlignPositionedElementBehavior;
497
498 - (void)setMediaSourceEnabled:(BOOL)flag;
499 - (BOOL)mediaSourceEnabled;
500
501 - (void)setShouldConvertPositionStyleOnCopy:(BOOL)flag;
502 - (BOOL)shouldConvertPositionStyleOnCopy;
503
504 - (void)setImageControlsEnabled:(BOOL)flag;
505 - (BOOL)imageControlsEnabled;
506
507 - (void)setServiceControlsEnabled:(BOOL)flag;
508 - (BOOL)serviceControlsEnabled;
509
510 - (void)setGamepadsEnabled:(BOOL)flag;
511 - (BOOL)gamepadsEnabled;
512
513 - (void)setMediaPreloadingEnabled:(BOOL)flag;
514 - (BOOL)mediaPreloadingEnabled;
515
516 - (void)setMediaKeysStorageDirectory:(NSString *)directory;
517 - (NSString *)mediaKeysStorageDirectory;
518
519 - (void)setMetaRefreshEnabled:(BOOL)flag;
520 - (BOOL)metaRefreshEnabled;
521
522 - (void)setHTTPEquivEnabled:(BOOL)flag;
523 - (BOOL)httpEquivEnabled;
524
525 - (void)setMockCaptureDevicesEnabled:(BOOL)flag;
526 - (BOOL)mockCaptureDevicesEnabled;
527
528 - (void)setMockCaptureDevicesPromptEnabled:(BOOL)flag;
529 - (BOOL)mockCaptureDevicesPromptEnabled;
530
531 - (void)setEnumeratingAllNetworkInterfacesEnabled:(BOOL)flag;
532 - (BOOL)enumeratingAllNetworkInterfacesEnabled;
533
534 - (void)setIceCandidateFilteringEnabled:(BOOL)flag;
535 - (BOOL)iceCandidateFilteringEnabled;
536
537 - (void)setMediaCaptureRequiresSecureConnection:(BOOL)flag;
538 - (BOOL)mediaCaptureRequiresSecureConnection;
539
540 - (void)setShadowDOMEnabled:(BOOL)flag;
541 - (BOOL)shadowDOMEnabled;
542
543 - (void)setCustomElementsEnabled:(BOOL)flag;
544 - (BOOL)customElementsEnabled;
545
546 - (void)setDataTransferItemsEnabled:(BOOL)flag;
547 - (BOOL)dataTransferItemsEnabled;
548
549 - (void)setCustomPasteboardDataEnabled:(BOOL)flag;
550 - (BOOL)customPasteboardDataEnabled;
551
552 - (void)setDialogElementEnabled:(BOOL)enabled;
553 - (BOOL)dialogElementEnabled;
554
555 - (BOOL)cacheAPIEnabled;
556 - (void)setCacheAPIEnabled:(BOOL)enabled;
557
558 - (void)setFetchAPIEnabled:(BOOL)flag;
559 - (BOOL)fetchAPIEnabled;
560
561 - (void)setReadableByteStreamAPIEnabled:(BOOL)flag;
562 - (BOOL)readableByteStreamAPIEnabled;
563
564 - (void)setWritableStreamAPIEnabled:(BOOL)flag;
565 - (BOOL)writableStreamAPIEnabled;
566
567 - (void)setDownloadAttributeEnabled:(BOOL)flag;
568 - (BOOL)downloadAttributeEnabled;
569
570 - (void)setDirectoryUploadEnabled:(BOOL)flag;
571 - (BOOL)directoryUploadEnabled;
572
573 - (void)setWebAnimationsEnabled:(BOOL)flag;
574 - (BOOL)webAnimationsEnabled;
575
576 - (void)setPointerEventsEnabled:(BOOL)flag;
577 - (BOOL)pointerEventsEnabled;
578
579 - (void)setSyntheticEditingCommandsEnabled:(BOOL)flag;
580 - (BOOL)syntheticEditingCommandsEnabled;
581
582 - (void)setFetchAPIKeepAliveEnabled:(BOOL)flag;
583 - (BOOL)fetchAPIKeepAliveEnabled;
584
585 - (void)setModernMediaControlsEnabled:(BOOL)flag;
586 - (BOOL)modernMediaControlsEnabled;
587
588 - (void)setWebAnimationsCSSIntegrationEnabled:(BOOL)flag;
589 - (BOOL)webAnimationsCSSIntegrationEnabled;
590
591 - (void)setIntersectionObserverEnabled:(BOOL)flag;
592 - (BOOL)intersectionObserverEnabled;
593
594 - (void)setIsSecureContextAttributeEnabled:(BOOL)flag;
595 - (BOOL)isSecureContextAttributeEnabled;
596
597 - (void)setServerTimingEnabled:(BOOL)flag;
598 - (BOOL)serverTimingEnabled;
599
600 - (void)setSelectionAcrossShadowBoundariesEnabled:(BOOL)flag;
601 - (BOOL)selectionAcrossShadowBoundariesEnabled;
602
603 - (void)setCSSLogicalEnabled:(BOOL)flag;
604 - (BOOL)cssLogicalEnabled;
605
606 - (BOOL)adClickAttributionEnabled;
607 - (void)setAdClickAttributionEnabled:(BOOL)flag;
608
609 - (void)setReferrerPolicyAttributeEnabled:(BOOL)flag;
610 - (BOOL)referrerPolicyAttributeEnabled;
611
612 - (void)setCoreMathMLEnabled:(BOOL)flag;
613 - (BOOL)coreMathMLEnabled;
614
615 - (void)setRequestIdleCallbackEnabled:(BOOL)flag;
616 - (BOOL)requestIdleCallbackEnabled;
617
618 - (void)setLinkPreloadResponsiveImagesEnabled:(BOOL)flag;
619 - (BOOL)linkPreloadResponsiveImagesEnabled;
620
621 - (void)setCSSShadowPartsEnabled:(BOOL)flag;
622 - (BOOL)cssShadowPartsEnabled;
623
624 @property (nonatomic) BOOL visualViewportAPIEnabled;
625 @property (nonatomic) BOOL CSSOMViewScrollingAPIEnabled;
626 @property (nonatomic) BOOL largeImageAsyncDecodingEnabled;
627 @property (nonatomic) BOOL animatedImageAsyncDecodingEnabled;
628 @property (nonatomic) BOOL javaScriptMarkupEnabled;
629 @property (nonatomic) BOOL mediaDataLoadsAutomatically;
630 @property (nonatomic) BOOL attachmentElementEnabled;
631 @property (nonatomic) BOOL allowsInlineMediaPlaybackAfterFullscreen;
632 @property (nonatomic) BOOL intersectionObserverEnabled;
633 @property (nonatomic) BOOL menuItemElementEnabled;
634 @property (nonatomic) BOOL keygenElementEnabled;
635 @property (nonatomic) BOOL displayContentsEnabled;
636 @property (nonatomic) BOOL userTimingEnabled;
637 @property (nonatomic) BOOL resourceTimingEnabled;
638 @property (nonatomic) BOOL linkPreloadEnabled;
639 @property (nonatomic) BOOL mediaUserGestureInheritsFromDocument;
640 @property (nonatomic) BOOL isSecureContextAttributeEnabled;
641 @property (nonatomic) BOOL legacyEncryptedMediaAPIEnabled;
642 @property (nonatomic) BOOL encryptedMediaAPIEnabled;
643 @property (nonatomic) BOOL viewportFitEnabled;
644 @property (nonatomic) BOOL constantPropertiesEnabled;
645 @property (nonatomic) BOOL colorFilterEnabled;
646 @property (nonatomic) BOOL punchOutWhiteBackgroundsInDarkMode;
647 @property (nonatomic) BOOL inspectorAdditionsEnabled;
648 @property (nonatomic) BOOL allowMediaContentTypesRequiringHardwareSupportAsFallback;
649 @property (nonatomic) BOOL accessibilityObjectModelEnabled;
650 @property (nonatomic) BOOL ariaReflectionEnabled;
651 @property (nonatomic) BOOL mediaCapabilitiesEnabled;
652 @property (nonatomic) BOOL mediaRecorderEnabled;
653 @property (nonatomic) BOOL allowCrossOriginSubresourcesToAskForCredentials;
654 @property (nonatomic) BOOL sourceBufferChangeTypeEnabled;
655 @property (nonatomic) BOOL referrerPolicyAttributeEnabled;
656 @property (nonatomic) BOOL resizeObserverEnabled;
657 @property (nonatomic) BOOL coreMathMLEnabled;
658 @property (nonatomic) BOOL requestIdleCallbackEnabled;
659 @property (nonatomic) BOOL linkPreloadResponsiveImagesEnabled;
660
661 #if TARGET_OS_IPHONE
662 @property (nonatomic) BOOL quickLookDocumentSavingEnabled;
663 #endif
664
665 @property (nonatomic) NSString *mediaContentTypesRequiringHardwareSupport;
666
667 // additionalSupportedImageTypes is an array of image UTIs.
668 @property (nonatomic, retain) NSArray<NSString *> *additionalSupportedImageTypes;
669
670 @end