# 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 # * 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 usesDashboardBackwardCompatibilityMode: initial: false conditional: DASHBOARD_SUPPORT clipboardAccessPolicy: type: ClipboardAccessPolicy initial: ClipboardAccessPolicy::RequiresUserGesture textAreasAreResizable: initial: false onChange: setNeedsRecalcStyleInAllFrames authorAndUserStylesEnabled: initial: true onChange: setNeedsRecalcStyleInAllFrames 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 # 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 treatsAnyTextCSSLinkAsStylesheet: initial: false shrinksStandaloneImagesToFit: initial: true pageCacheSupportsPlugins: initial: false showsURLsInToolTips: initial: false showsToolTipOverTruncatedText: initial: false forceFTPDirectoryListings: initial: false developerExtrasEnabled: initial: false scriptMarkupEnabled: initial: true needsSiteSpecificQuirks: initial: false 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 forceSoftwareWebGLRendering: initial: false 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 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 HTTPSUpgradeEnabled: initial: false cookieEnabled: initial: true mediaEnabled: initial: defaultMediaEnabled DOMPasteAllowed: 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 webSecurityEnabled: initial: true spatialNavigationEnabled: initial: false autoscrollForDragAndDropEnabled: initial: false unifiedTextCheckerEnabled: initial: defaultUnifiedTextCheckerEnabled logsPageMessagesToSystemConsoleEnabled: initial: false backForwardCacheExpirationInterval: type: double initial: 1800 # 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 subpixelAntialiasedLayerTextEnabled: initial: false onChange: setNeedsRecalcStyleInAllFrames simpleLineLayoutEnabled: initial: true onChange: setNeedsRecalcStyleInAllFrames simpleLineLayoutDebugBordersEnabled: initial: false onChange: setNeedsRecalcStyleInAllFrames subpixelCSSOMElementMetricsEnabled: initial: false useGiantTiles: initial: false mediaSourceEnabled: initial: true 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 # 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: false onChange: setNeedsRecalcStyleInAllFrames visualViewportAPIEnabled: initial: false 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 paymentRequestEnabled: initial: false conditional: PAYMENT_REQUEST applePayEnabled: initial: false conditional: APPLE_PAY applePayCapabilityDisclosureAllowed: initial: true conditional: APPLE_PAY 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 scriptEnabled: initial: false getter: isScriptEnabled pluginsEnabled: initial: false getter: arePluginsEnabled onChange: pluginsEnabledChanged usesPageCache: initial: false onChange: usesPageCacheChanged 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 # Only set by Layout Tests. mediaTypeOverride: type: String initial: '"screen"' onChange: mediaTypeOverrideChanged 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 shouldEnableTextAutosizingBoost: type: bool initial: false conditional: TEXT_AUTOSIZING onChange: shouldEnableTextAutosizingBoostChanged mediaCapabilitiesEnabled: initial: false resourceLoadStatisticsDebugMode: initial: false clientCoordinatesRelativeToLayoutViewport: initial: false onChange: setNeedsRecalcStyleInAllFrames accessibilityEventsEnabled: initial: true conditional: ACCESSIBILITY_EVENTS incompleteImageBorderEnabled: initial: false shouldDeferAsynchronousScriptsUntilAfterDocumentLoad: initial: false shouldIgnoreMetaViewport: initial: false videoQualityIncludesDisplayCompositingEnabled: initial: false conditional: VIDEO editableImagesEnabled: initial: false