blob: c730db78fd5f92cda32705d866b701639afbd260 [file] [log] [blame]
# FIXME: Add support for global settings.
# FIXME: Add support for custom getters/setters.
defaultTextEncodingName:
type: String
ftpDirectoryTemplatePath:
type: String
localStorageDatabasePath:
type: String
editableLinkBehavior:
type: EditableLinkBehavior
initial: EditableLinkDefaultBehavior
textDirectionSubmenuInclusionBehavior:
type: TextDirectionSubmenuInclusionBehavior
initial: TextDirectionSubmenuAutomaticallyIncluded
pdfImageCachingPolicy:
type: PDFImageCachingPolicy
initial: PDFImageCachingDefault
passwordEchoDurationInSeconds:
type: double
initial: 1
# Sets the magnification value for validation message timer. If the
# magnification value is N, a validation message disappears automatically after
# <message length> * N / 1000 seconds. If N is equal to or less than 0, a
# validation message doesn't disappears automaticaly.
validationMessageTimerMagnification:
type: int
initial: 50
# Number of pixels below which 2D canvas is rendered in software
# even if hardware acceleration is enabled.
# Hardware acceleration is useful for large canvases where it can avoid the
# pixel bandwidth between the CPU and GPU. But GPU acceleration comes at
# a price - extra back-buffer and texture copy. Small canvases are also
# widely used for stylized fonts. Anti-aliasing text in hardware at that
# scale is generally slower. So below a certain size it is better to
# draw canvas in software.
minimumAccelerated2dCanvasSize:
type: int
initial: 257*256
maximumAccelerated2dCanvasSize:
type: unsigned
initial: 5120*2880
layoutFallbackWidth:
type: int
initial: 980
deviceWidth:
type: int
initial: 0
deviceHeight:
type: int
initial: 0
# Allow clients concerned with memory consumption to set a quota on session storage
# since the memory used won't be released until the Page is destroyed.
sessionStorageQuota:
type: unsigned
initial: StorageMap::noQuota
minimumFontSize:
type: int
initial: 0
onChange: setNeedsRecalcStyleInAllFrames
minimumLogicalFontSize:
type: int
initial: 0
onChange: setNeedsRecalcStyleInAllFrames
defaultFontSize:
type: int
initial: 16
onChange: setNeedsRecalcStyleInAllFrames
defaultFixedFontSize:
type: int
initial: 13
onChange: setNeedsRecalcStyleInAllFrames
editingBehaviorType:
type: EditingBehaviorType
initial: editingBehaviorTypeForPlatform()
maximumHTMLParserDOMTreeDepth:
type: unsigned
initial: defaultMaximumHTMLParserDOMTreeDepth
# This setting only affects site icon image loading if loadsImagesAutomatically setting is false and this setting is true.
# All other permutations still heed loadsImagesAutomatically setting.
loadsSiteIconsIgnoringImageLoadingSetting:
initial: false
caretBrowsingEnabled:
initial: false
preventKeyboardDOMEventDispatch:
initial: false
localStorageEnabled:
initial: false
allowUniversalAccessFromFileURLs:
initial: true
allowFileAccessFromFileURLs:
initial: true
allowSettingAnyXHRHeaderFromFileURLs:
initial: false
allowCrossOriginSubresourcesToAskForCredentials:
initial: false
needsStorageAccessFromFileURLsQuirk:
initial: true
needsFrameNameFallbackToIdQuirk:
initial: false
useAnonymousModeWhenFetchingMaskImages:
initial: true
javaScriptCanOpenWindowsAutomatically:
initial: false
javaScriptCanAccessClipboard:
initial: false
shouldPrintBackgrounds:
initial: false
clipboardAccessPolicy:
type: ClipboardAccessPolicy
initial: ClipboardAccessPolicy::RequiresUserGesture
asyncClipboardAPIEnabled:
initial: false
textAreasAreResizable:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
authorAndUserStylesEnabled:
initial: true
onChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
userStyleSheetLocation:
type: URL
onChange: userStyleSheetLocationChanged
acceleratedCompositingEnabled:
initial: true
onChange: setNeedsRecalcStyleInAllFrames
acceleratedCompositedAnimationsEnabled:
initial: true
onChange: setNeedsRecalcStyleInAllFrames
showDebugBorders:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
showRepaintCounter:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
visibleDebugOverlayRegions:
type: DebugOverlayRegions
initial: 0
showTiledScrollingIndicator:
initial: false
resourceUsageOverlayVisible:
initial: false
onChange: resourceUsageOverlayVisibleChanged
condition: RESOURCE_USAGE
disableScreenSizeOverride:
initial: false
googleAntiFlickerOptimizationQuirkEnabled:
initial: true
# This is a quirk we are pro-actively applying to old applications. It changes keyboard event dispatching,
# making keyIdentifier available on keypress events, making charCode available on keydown/keyup events,
# and getting keypress dispatched in more cases.
needsKeyboardEventDisambiguationQuirks:
initial: false
# This is an iOS-specific quirk. Unlike Mac, keyboard operations are asynchronous and hence a DOM update as
# a result of text insertion or deletion does not occur within the same event loop iteration as a dispatched
# DOM keydown event. Some sites, notably Google Sheets, schedule timers on keypress and expect on a DOM update
# to have occurred on expiration. When enabled, this quirk puts all such scheduled timers in a holding tank
# until the keyboard performs the insertion or deletion. This gives Google Sheets the illusion that the DOM
# update happened within the same event loop iteration that the keypress event was dispatched in.
needsDeferKeyDownAndKeyPressTimersUntilNextEditingCommandQuirk:
initial: false
treatsAnyTextCSSLinkAsStylesheet:
initial: false
shrinksStandaloneImagesToFit:
initial: true
backForwardCacheSupportsPlugins:
initial: false
showsURLsInToolTips:
initial: false
showsToolTipOverTruncatedText:
initial: false
forceFTPDirectoryListings:
initial: false
developerExtrasEnabled:
initial: false
scriptMarkupEnabled:
initial: true
needsSiteSpecificQuirks:
initial: false
inspectorOverride: true
domTimersThrottlingEnabled:
initial: true
webArchiveDebugModeEnabled:
initial: false
conditional: WEB_ARCHIVE
localFileContentSniffingEnabled:
initial: false
offlineWebApplicationCacheEnabled:
initial: false
enforceCSSMIMETypeInNoQuirksMode:
initial: true
usesEncodingDetector:
initial: false
canvasUsesAcceleratedDrawing:
initial: false
acceleratedDrawingEnabled:
initial: false
displayListDrawingEnabled:
initial: false
acceleratedFiltersEnabled:
initial: false
useLegacyTextAlignPositionedElementBehavior:
initial: false
javaScriptRuntimeFlags:
type: JSC::RuntimeFlags
# FIXME: This should really be disabled by default as it makes platforms that don't support the feature download files
# they can't use by. Leaving enabled for now to not change existing behavior.
downloadableBinaryFontsEnabled:
initial: defaultDownloadableBinaryFontsEnabled()
xssAuditorEnabled:
initial: false
acceleratedCompositingForFixedPositionEnabled:
initial: defaultAcceleratedCompositingForFixedPositionEnabled
rubberBandingForSubScrollableRegionsEnabled:
initial: true
conditional: RUBBER_BANDING
experimentalNotificationsEnabled:
initial: false
webGLEnabled:
initial: false
webGLErrorsToConsoleEnabled:
initial: true
unhandledPromiseRejectionToConsoleEnabled:
initial: true
forceWebGLUsesLowPower:
initial: false
accelerated2dCanvasEnabled:
initial: false
loadDeferringEnabled:
initial: true
webAudioEnabled:
initial: false
paginateDuringLayoutEnabled:
initial: false
fullScreenEnabled:
initial: false
conditional: FULLSCREEN_API
asynchronousSpellCheckingEnabled:
initial: false
# This feature requires an implementation of ValidationMessageClient.
interactiveFormValidationEnabled:
initial: false
usePreHTML5ParserQuirks:
initial: false
hyperlinkAuditingEnabled:
initial: false
crossOriginCheckInGetMatchedCSSRulesDisabled:
initial: false
forceCompositingMode:
initial: false
shouldInjectUserScriptsInInitialEmptyDocument:
initial: false
fixedElementsLayoutRelativeToFrame:
initial: false
allowDisplayOfInsecureContent:
initial: false
allowRunningOfInsecureContent:
initial: false
requiresUserGestureToLoadVideo:
initial: defaultRequiresUserGestureToLoadVideo
videoPlaybackRequiresUserGesture:
initial: defaultVideoPlaybackRequiresUserGesture
audioPlaybackRequiresUserGesture:
initial: defaultAudioPlaybackRequiresUserGesture
mainContentUserGestureOverrideEnabled:
initial: false
mediaUserGestureInheritsFromDocument:
initial: false
allowsInlineMediaPlayback:
initial: defaultAllowsInlineMediaPlayback
allowsInlineMediaPlaybackAfterFullscreen:
initial: true
inlineMediaPlaybackRequiresPlaysInlineAttribute:
initial: defaultInlineMediaPlaybackRequiresPlaysInlineAttribute
allowsPictureInPictureMediaPlayback:
initial: defaultAllowsPictureInPictureMediaPlayback
pictureInPictureAPIEnabled:
initial: false
mediaControlsScaleWithPageZoom:
initial: defaultMediaControlsScaleWithPageZoom
invisibleAutoplayNotPermitted:
initial: false
passwordEchoEnabled:
initial: false
suppressesIncrementalRendering:
initial: false
incrementalRenderingSuppressionTimeoutInSeconds:
type: double
initial: defaultIncrementalRenderingSuppressionTimeoutInSeconds
backspaceKeyNavigationEnabled:
initial: true
shouldDisplaySubtitles:
initial: false
conditional: VIDEO_TRACK
shouldDisplayCaptions:
initial: false
conditional: VIDEO_TRACK
shouldDisplayTextDescriptions:
initial: false
conditional: VIDEO_TRACK
scrollingCoordinatorEnabled:
initial: false
scrollingTreeIncludesFrames:
initial: defaultScrollingTreeIncludesFrames
scrollAnimatorEnabled:
initial: true
conditional: SMOOTH_SCROLLING
forceUpdateScrollbarsOnMainThreadForPerformanceTesting:
initial: false
notificationsEnabled:
initial: true
# Some apps needs isLoadingInAPISense to account for active subresource loaders.
needsIsLoadingInAPISenseQuirk:
initial: false
shouldRespectImageOrientation:
initial: defaultShouldRespectImageOrientation
imageSubsamplingEnabled:
initial: defaultImageSubsamplingEnabled
wantsBalancedSetDefersLoadingBehavior:
initial: false
requestAnimationFrameEnabled:
initial: true
requestIdleCallbackEnabled:
initial: false
HTTPSUpgradeEnabled:
initial: false
thirdPartyIframeRedirectBlockingEnabled:
initial: true
cookieEnabled:
initial: true
mediaEnabled:
initial: defaultMediaEnabled
DOMPasteAllowed:
initial: false
domPasteAccessRequestsEnabled:
initial: false
# When enabled, window.blur() does not change focus, and
# window.focus() only changes focus when invoked from the context that
# created the window.
windowFocusRestricted:
initial: true
diagnosticLoggingEnabled:
initial: false
delegatesPageScaling:
initial: false
plugInSnapshottingEnabled:
initial: false
snapshotAllPlugIns:
initial: false
autostartOriginPlugInSnapshottingEnabled:
initial: true
primaryPlugInSnapshotDetectionEnabled:
initial: true
maximumPlugInSnapshotAttempts:
type: unsigned
initial: 20
frameFlattening:
type: FrameFlattening
initial: FrameFlattening::Disabled
onChange: setNeedsRelayoutAllFrames
asyncFrameScrollingEnabled:
initial: false
onChange: setNeedsRelayoutAllFrames
asyncOverflowScrollingEnabled:
initial: false
onChange: setNeedsRelayoutAllFrames
legacyOverflowScrollingTouchEnabled:
initial: true
onChange: setNeedsRelayoutAllFrames
conditional: OVERFLOW_SCROLLING_TOUCH
webSecurityEnabled:
initial: true
inspectorOverride: true
spatialNavigationEnabled:
initial: false
autoscrollForDragAndDropEnabled:
initial: false
unifiedTextCheckerEnabled:
initial: defaultUnifiedTextCheckerEnabled
logsPageMessagesToSystemConsoleEnabled:
initial: false
backForwardCacheExpirationInterval:
type: Seconds
initial: 30_min
# Some apps could have a default video poster if it is not set.
defaultVideoPosterURL:
type: String
smartInsertDeleteEnabled:
initial: defaultSmartInsertDeleteEnabled
selectTrailingWhitespaceEnabled:
initial: defaultSelectTrailingWhitespaceEnabled
selectionAcrossShadowBoundariesEnabled:
initial: true
useLegacyBackgroundSizeShorthandBehavior:
initial: false
fixedBackgroundsPaintRelativeToDocument:
initial: defaultFixedBackgroundsPaintRelativeToDocument
textAutosizingEnabled:
initial: defaultTextAutosizingEnabled()
onChange: setNeedsRecalcStyleInAllFrames
conditional: TEXT_AUTOSIZING
textAutosizingWindowSizeOverride:
type: IntSize
onChange: setNeedsRecalcStyleInAllFrames
conditional: TEXT_AUTOSIZING
minimumZoomFontSize:
type: float
initial: defaultMinimumZoomFontSize()
conditional: TEXT_AUTOSIZING
textAutosizingUsesIdempotentMode:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
conditional: TEXT_AUTOSIZING
subpixelAntialiasedLayerTextEnabled:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
simpleLineLayoutEnabled:
initial: true
onChange: setNeedsRecalcStyleInAllFrames
simpleLineLayoutDebugBordersEnabled:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
contentChangeObserverEnabled:
initial: defaultContentChangeObserverEnabled()
subpixelCSSOMElementMetricsEnabled:
initial: false
useGiantTiles:
initial: false
mediaSourceEnabled:
initial: platformDefaultMediaSourceEnabled()
conditional: MEDIA_SOURCE
sourceBufferChangeTypeEnabled:
initial: true
conditional: MEDIA_SOURCE
# FIXME: Rename to allowMultiElementImplicitFormSubmission once we upstream the iOS changes to WebView.mm.
allowMultiElementImplicitSubmission:
initial: false
allowsAirPlayForMediaPlayback:
initial: true
conditional: WIRELESS_PLAYBACK_TARGET
shouldConvertPositionStyleOnCopy:
initial: false
maxParseDuration:
type: double
initial: -1
standalone:
initial: false
telephoneNumberParsingEnabled:
initial: false
mediaDataLoadsAutomatically:
initial: defaultMediaDataLoadsAutomatically
alwaysUseAcceleratedOverflowScroll:
initial: false
imageControlsEnabled:
initial: false
conditional: SERVICE_CONTROLS
enableInheritURIQueryComponent:
initial: false
aggressiveTileRetentionEnabled:
initial: false
temporaryTileCohortRetentionEnabled:
initial: true
useImageDocumentForSubframePDF:
initial: false
dataDetectorTypes:
type: DataDetectorTypes
initial: DataDetectorTypeNone
conditional: DATA_DETECTION
# Allow SourceBuffers to store up to 304MB each, enough for approximately five minutes
# of 1080p video and stereo audio.
maximumSourceBufferSize:
type: int
initial: 318767104
conditional: MEDIA_SOURCE
serviceControlsEnabled:
initial: false
conditional: SERVICE_CONTROLS
appleMailPaginationQuirkEnabled:
initial: false
deferredCSSParserEnabled:
initial: false
repaintOutsideLayoutEnabled:
initial: false
httpEquivEnabled:
initial: true
# Some ports (e.g. iOS) might choose to display attachments inline, regardless of whether the response includes the
# HTTP header "Content-Disposition: attachment". This setting enables a sandbox around these attachments. The sandbox
# enforces all frame sandbox flags (see enum SandboxFlag in SecurityContext.h), and also disables <meta http-equiv>
# processing and subframe loading.
contentDispositionAttachmentSandboxEnabled:
initial: false
userInterfaceDirectionPolicy:
type: UserInterfaceDirectionPolicy
initial: UserInterfaceDirectionPolicy::Content
systemLayoutDirection:
type: TextDirection
initial: TextDirection::LTR
allowContentSecurityPolicySourceStarToMatchAnyProtocol:
initial: false
selectionPaintingWithoutSelectionGapsEnabled:
initial: false
shouldConvertInvalidURLsToBlank:
initial: true
springTimingFunctionEnabled:
initial: false
colorFilterEnabled:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
punchOutWhiteBackgroundsInDarkMode:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
treatIPAddressAsDomain:
initial: false
mediaPreloadingEnabled:
initial: false
layoutViewportHeightExpansionFactor:
type: double
initial: 0
onChange: setNeedsRecalcStyleInAllFrames
# Runtime-enabled features
visualViewportEnabled:
initial: true
onChange: setNeedsRecalcStyleInAllFrames
visualViewportAPIEnabled:
initial: false
syntheticEditingCommandsEnabled:
initial: true
CSSOMViewScrollingAPIEnabled:
initial: false
inputEventsEnabled:
initial: true
quickTimePluginReplacementEnabled:
initial: defaultQuickTimePluginReplacementEnabled
youTubeFlashPluginReplacementEnabled:
initial: defaultYouTubeFlashPluginReplacementEnabled
forcedColorsAreInvertedAccessibilityValue:
type: ForcedAccessibilityValue
initial: defaultForcedColorsAreInvertedAccessibilityValue
forcedDisplayIsMonochromeAccessibilityValue:
type: ForcedAccessibilityValue
initial: defaultForcedDisplayIsMonochromeAccessibilityValue
forcedPrefersReducedMotionAccessibilityValue:
type: ForcedAccessibilityValue
initial: defaultForcedPrefersReducedMotionAccessibilityValue
largeImageAsyncDecodingEnabled:
initial: true
animatedImageAsyncDecodingEnabled:
initial: true
webkitImageReadyEventEnabled:
initial: false
shouldSuppressTextInputFromEditingDuringProvisionalNavigation:
initial: false
langAttributeAwareFormControlUIEnabled:
initial: false
subresourceIntegrityEnabled:
initial: true
linkPreconnectEnabled:
initial: false
beaconAPIEnabled:
initial: false
geolocationFloorLevelEnabled:
initial: true
constantPropertiesEnabled:
initial: false
viewportFitEnabled:
initial: false
allowMediaContentTypesRequiringHardwareSupportAsFallback:
initial: false
storageAccessAPIEnabled:
initial: true
timeWithoutMouseMovementBeforeHidingControls:
type: Seconds
initial: 3_s
fontFallbackPrefersPictographs:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
fontLoadTimingOverride:
type: FontLoadTimingOverride
initial: FontLoadTimingOverride::None
shouldIgnoreFontLoadCompletions:
initial: false
applePayCapabilityDisclosureAllowed:
conditional: APPLE_PAY
initial: true
applePayEnabled:
conditional: APPLE_PAY
initial: defaultApplePayEnabled
applePayRemoteUIEnabled:
conditional: APPLE_PAY_REMOTE_UI
initial: true
paymentRequestEnabled:
conditional: PAYMENT_REQUEST
initial: false
javaEnabled:
initial: false
getter: isJavaEnabled
javaEnabledForLocalFiles:
initial: true
getter: isJavaEnabledForLocalFiles
# Unlike the imagesEnabled setting, this only suppresses the network load of
# the image URL. A cached image will still be rendered if requested.
loadsImagesAutomatically:
initial: false
onChange: imagesEnabledChanged
imagesEnabled:
initial: true
getter: areImagesEnabled
onChange: imagesEnabledChanged
inspectorOverride: true
scriptEnabled:
initial: false
getter: isScriptEnabled
inspectorOverride: true
pluginsEnabled:
initial: false
getter: arePluginsEnabled
onChange: pluginsEnabledChanged
usesBackForwardCache:
initial: false
onChange: usesBackForwardCacheChanged
dnsPrefetchingEnabled:
initial: false
onChange: dnsPrefetchingEnabledChanged
backgroundShouldExtendBeyondPage:
initial: false
onChange: backgroundShouldExtendBeyondPageChanged
scrollingPerformanceLoggingEnabled:
initial: false
onChange: scrollingPerformanceLoggingEnabledChanged
hiddenPageDOMTimerThrottlingEnabled:
initial: false
onChange: hiddenPageDOMTimerThrottlingStateChanged
hiddenPageDOMTimerThrottlingAutoIncreases:
initial: false
onChange: hiddenPageDOMTimerThrottlingStateChanged
hiddenPageCSSAnimationSuspensionEnabled:
initial: false
onChange: hiddenPageCSSAnimationSuspensionEnabledChanged
storageBlockingPolicy:
type: SecurityOrigin::StorageBlockingPolicy
initial: SecurityOrigin::AllowAllStorage
onChange: storageBlockingPolicyChanged
shouldAllowUserInstalledFonts:
initial: true
onChange: setNeedsRecalcStyleInAllFrames
resizeObserverEnabled:
initial: false
conditional: RESIZE_OBSERVER
# Only set by Layout Tests.
mediaTypeOverride:
type: String
initial: '"screen"'
onChange: mediaTypeOverrideChanged
animatedImageDebugCanvasDrawingEnabled:
initial: false
fontRenderingMode:
type: FontRenderingMode
initial: FontRenderingMode::Normal
preferMIMETypeForImages:
initial: false
forcePendingWebGLPolicy:
initial: false
getter: isForcePendingWebGLPolicy
mediaKeysStorageDirectory:
type: String
mediaDeviceIdentifierStorageDirectory:
type: String
conditional: MEDIA_STREAM
# FIXME: This quirk is needed because of Radar 4674537 and 5211271. We need to phase it out once Adobe
# can fix the bug from their end.
needsAdobeFrameReloadingQuirk:
initial: false
getter: needsAcrobatFrameReloadingQuirk
passiveTouchListenersAsDefaultOnDocument:
initial: true
touchEventEmulationEnabled:
initial: false
getter: isTouchEventEmulationEnabled
conditional: TOUCH_EVENTS
deviceOrientationEventEnabled:
type: bool
initial: true
conditional: DEVICE_ORIENTATION
deviceOrientationPermissionAPIEnabled:
type: bool
initial: false
conditional: DEVICE_ORIENTATION
shouldEnableTextAutosizingBoost:
type: bool
initial: false
conditional: TEXT_AUTOSIZING
onChange: shouldEnableTextAutosizingBoostChanged
mediaCapabilitiesEnabled:
initial: false
mediaCapabilitiesExtensionsEnabled:
type: bool
initial: false
hdrMediaCapabilitiesEnabled:
type: bool
initial: false
clientCoordinatesRelativeToLayoutViewport:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
incompleteImageBorderEnabled:
initial: false
shouldDeferAsynchronousScriptsUntilAfterDocumentLoad:
initial: false
shouldIgnoreMetaViewport:
initial: false
videoQualityIncludesDisplayCompositingEnabled:
initial: false
conditional: VIDEO
editableImagesEnabled:
initial: false
adClickAttributionEnabled:
initial: false
coreMathMLEnabled:
initial: false
onChange: setNeedsRecalcStyleInAllFrames
blockingOfSmallPluginsEnabled:
initial: true
shouldDecidePolicyBeforeLoadingQuickLookPreview:
initial: false
shouldDispatchSyntheticMouseEventsWhenModifyingSelection:
initial: false
shouldDispatchSyntheticMouseOutAfterSyntheticClick:
initial: false
allowViewportShrinkToFitContent:
initial: true
webRTCEncryptionEnabled:
initial: true
inspectorOverride: true
isThirdPartyCookieBlockingEnabled:
initial: false
isLoggedInAPIEnabled:
initial: false
# Deprecated
iceCandidateFilteringEnabled:
initial: true
onChange: iceCandidateFilteringEnabledChanged
inspectorOverride: true
mockCaptureDevicesEnabled:
initial: false
conditional: MEDIA_STREAM
onChange: mockCaptureDevicesEnabledChanged
inspectorOverride: true
mediaCaptureRequiresSecureConnection:
initial: true
conditional: MEDIA_STREAM
inspectorOverride: true