blob: 7a15f9c8990aef1af419fd0df0a43ae95ac288f8 [file] [edit]
# Copyright (c) 2020-2026 Apple 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:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. 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.
#
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS 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 APPLE INC. OR ITS 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.
# Web preferences are assigned a `status` which implies a default value and
# controls the interfaces where the preference is declared.
#
# == Web Platform Features ==
# unstable::
# Feature in active development. Unfinished, no promise it is usable or safe.
# OFF by default.
# testable::
# Feature in active development. Stable enough for testing, but not ready to ship.
# OFF by default. Enabled in test infrastructure only.
# preview::
# Ready to be used in beta contexts like Safari Technology Preview.
# ON by default in Safari Technology Preview and test infrastructure.
# OFF by default elsewhere. May be enabled automatically by clients.
# stable::
# Ready for general use, but should be able to be toggled to support
# debugging, A/B testing.
# ON by default. Some platforms may deviate from default behavior due to
# support or needed dependencies.
# mature::
# Already in general use, with no UI to toggle. Features in this status may be
# cleaned up and removed altogether.
# ON by default. Some platforms may deviate from default behavior due to
# support or needed dependencies.
#
# == Developer Features ==
# developer::
# Tools for web developers, not part of a feature that will ever be enabled
# for end users.
# OFF by default.
# internal::
# Tools for debugging the WebKit engine. Not generally useful to web developers.
# OFF by default.
#
# == Embedder Controls ==
# embedder::
# Adjusts WebKit behavior for embedding application needs. Not part of a
# web platform feature or a "mature" feature intended to be always-on.
# ANY default value.
#
# == Defaults Overridable ==
# When features are declared with "defaultsOverridable: true", platform user
# defaults may override a default value at runtime, using the preference
# name prefixed with "WebKitDebug".
ARIAActionsSupportEnabled:
type: bool
status: testable
category: dom
humanReadableName: "aria-actions"
humanReadableDescription: "Enable support for aria-actions"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AVExperienceControllerFullscreenEnabled:
type: bool
status: internal
category: media
getter: isAVExperienceControllerFullscreenEnabled
webcoreGetter: isAVExperienceControllerFullscreenEnabled
defaultsOverridable: true
humanReadableName: "AVExperienceController Fullscreen"
humanReadableDescription: "Enable fullscreen video via AVExperienceController"
condition: HAVE(AVEXPERIENCECONTROLLER)
defaultValue:
WebCore:
default: false
WebKit:
default: true
WebKitLegacy:
default: false
AVFoundationEnabled:
type: bool
status: embedder
getter: isAVFoundationEnabled
humanReadableName: "AVFoundation"
humanReadableDescription: "Enable AVFoundation"
webcoreBinding: DeprecatedGlobalSettings
condition: USE(AVFOUNDATION)
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(WATCHOS)": false
default: true
AXCustomColorModeEnabled:
type: bool
status: embedder
getter: axCustomColorModeEnabled
webcoreName: axCustomColorModeEnabled
webcoreOnChange: setNeedsRecalcStyleInAllFrames
condition: ENABLE(AX_CUSTOM_COLOR_MODE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AcceleratedCompositingEnabled:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
AcceleratedCompositingForFixedPositionEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
PLATFORM(IOS_FAMILY): true
default: false
WebCore:
PLATFORM(IOS_FAMILY): true
default: false
AcceleratedDrawingEnabled:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "GraphicsLayer accelerated drawing"
humanReadableDescription: "Enable GraphicsLayer accelerated drawing"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebKit:
default: true
WebCore:
default: false
AcceleratedFiltersEnabled:
type: bool
status: unstable
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Accelerated Filter Rendering"
humanReadableDescription: "Accelerated CSS and SVG filter rendering"
condition: USE(CORE_IMAGE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AccentColorEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS Accent Color"
humanReadableDescription: "Enable accent-color CSS property"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)" : true
default: false
WebKit:
"PLATFORM(COCOA) || USE(THEME_ADWAITA)": true
default: false
WebCore:
"PLATFORM(COCOA) || USE(THEME_ADWAITA)": true
default: false
AccessHandleEnabled:
type: bool
status: mature
category: dom
humanReadableName: "AccessHandle API"
humanReadableDescription: "Enable AccessHandle API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)" : true
default: false
WebCore:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)" : true
default: false
AccessibilityTextStitchingEnabled:
type: bool
status: embedder
humanReadableName: "Enable Accessibility Text Stitching"
humanReadableDescription: "Stitch adjacent text elements into one in the accessibility tree"
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
"ENABLE(ACCESSIBILITY_TEXT_STITCHING)": true
default: false
WebKit:
"ENABLE(ACCESSIBILITY_TEXT_STITCHING)": true
default: false
WebCore:
"ENABLE(ACCESSIBILITY_TEXT_STITCHING)": true
default: false
AccessibilityThreadHitTestingEnabled:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Off Main-Thread Accessibility Hit Testing"
humanReadableDescription: "Serve accessibility hit tests off the main-thread"
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
AggressiveTileRetentionEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AllowContentSecurityPolicySourceStarToMatchAnyProtocol:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(IOS_FAMILY): WebKit::defaultAllowContentSecurityPolicySourceStarToMatchAnyProtocol()
default: false
WebKit:
default: false
WebCore:
default: false
AllowFileAccessFromFileURLs:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: false
WebCore:
default: true
AllowMediaContentTypesRequiringHardwareSupportAsFallback:
type: bool
status: embedder
humanReadableName: "Allow Media Content Types Requirining Hardware As Fallback"
humanReadableDescription: "Allow Media Content Types Requirining Hardware As Fallback"
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
AllowMultiElementImplicitSubmission:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitAllowMultiElementImplicitFormSubmissionPreferenceKey
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AllowMultipleCommitLayerTreePending:
type: bool
status: internal
category: dom
humanReadableName: "Allow requesting CommitLayerTree before the previous has completed"
humanReadableDescription: "Allow requesting CommitLayerTree before the previous has completed"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
"PLATFORM(IOS_FAMILY)": false
default: true
AllowPrivacySensitiveOperationsInNonPersistentDataStores:
type: bool
status: embedder
humanReadableName: "Allow Privacy-Sensitive Operations in Non-Persistent Data Stores"
humanReadableDescription: "Allow Privacy-Sensitive Operations in Non-Persistent Data Stores"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
AllowTestOnlyIPC:
type: bool
status: embedder
exposed: [ WebKit ]
webcoreBinding: none
defaultValue:
WebKit:
default: false
sharedPreferenceForWebProcess: true
AllowTestOnlyMockContentFilterIPC:
type: bool
status: embedder
exposed: [ WebKit ]
webcoreBinding: none
defaultValue:
WebKit:
default: false
sharedPreferenceForWebProcess: true
AllowTestOnlyOriginAccessAllowListIPC:
type: bool
status: embedder
exposed: [ WebKit ]
webcoreBinding: none
defaultValue:
WebKit:
default: false
sharedPreferenceForWebProcess: true
AllowTopNavigationToDataURLs:
type: bool
humanReadableName: "Allow top navigation to data: URLs"
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: false
WebCore:
default: false
AllowUniversalAccessFromFileURLs:
type: bool
humanReadableName: "Allow universal access from file: URLs"
status: developer
category: security
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: false
WebCore:
default: true
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely.
AllowViewportShrinkToFitContent:
type: bool
status: internal
humanReadableName: "Allow Viewport Shrink to Fit Content"
humanReadableDescription: "Allow the viewport shrink to fit content heuristic when appropriate"
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
AllowWebGLInWorkers:
type: bool
status: stable
category: dom
humanReadableName: "Allow WebGL in Web Workers"
condition: ENABLE(WEBGL)
defaultValue:
WebKitLegacy:
"ENABLE(WEBGL_IN_WORKERS)": true
default: false
WebKit:
"ENABLE(WEBGL_IN_WORKERS)": true
default: false
WebCore:
"ENABLE(WEBGL_IN_WORKERS)": true
default: false
AllowsAirPlayForMediaPlayback:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitMediaPlaybackAllowsAirPlay
condition: ENABLE(WIRELESS_PLAYBACK_TARGET)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
AllowsInlineMediaPlayback:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitMediaPlaybackAllowsInline
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultAllowsInlineMediaPlayback()
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
"PLATFORM(IOS_FAMILY)": false
default: true
AllowsInlineMediaPlaybackAfterFullscreen:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultAllowsInlineMediaPlaybackAfterFullscreen()
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
default: true
AllowsPictureInPictureMediaPlayback:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)": false
"PLATFORM(IOS_FAMILY)": WebKit::defaultAllowsPictureInPictureMediaPlayback()
default: false
WebKit:
"PLATFORM(VISION)": false
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
"PLATFORM(VISION)": false
default: true
disableInLockdownMode: true
AlternateFullScreenControlDesignEnabled:
type: bool
status: embedder
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(VISION)": true
default: false
WebCore:
default: false
AltitudeAngleEnabled:
type: bool
status: stable
category: dom
humanReadableName: "altitudeAngle PointerEvent Property"
humanReadableDescription: "Enable the `altitudeAngle` property of the PointerEvents API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
AlwaysAllowLocalWebarchive:
type: bool
status: internal
category: dom
humanReadableName: "Always allow loading local Web Archive"
humanReadableDescription: "Enable always allowing loading local Web Archive"
condition: ENABLE(WEB_ARCHIVE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AlwaysUseTouchEventRegions:
type: bool
status: internal
humanReadableName: "Always use touch event regions"
humanReadableDescription: "Use touch event regions regardless of site isolation enablement"
condition: ENABLE(TOUCH_EVENT_REGIONS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AlwaysZoomOnDoubleTap:
type: bool
status: internal
humanReadableName: "DTTZ always"
humanReadableDescription: "Double taps zoom, even if we dispatched a click anywhere"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
AnimatedImageAsyncDecodingEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
AnimationTriggersEnabled:
type: bool
status: testable
category: animation
humanReadableName: "Animation Triggers"
humanReadableDescription: "Support for the timeline-trigger, animation-trigger and event-trigger CSS properties"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AnonymousBlockGenerationDisabled:
type: bool
status: unstable
category: css
humanReadableName: "Disable anonymous block generation"
humanReadableDescription: "Disable anonymous block generation for mixed blocks"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AppBadgeEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "App Badge"
humanReadableDescription: "Enable App Badge"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
AppHighlightsEnabled:
type: bool
status: unstable
category: css
humanReadableName: "App Highlights"
humanReadableDescription: "Enable App Highlights"
condition: ENABLE(APP_HIGHLIGHTS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AppleMailPaginationQuirkEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
PLATFORM(MAC): WebKit::defaultAppleMailPaginationQuirkEnabled()
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
ApplePayCapabilityDisclosureAllowed:
type: bool
status: embedder
condition: ENABLE(APPLE_PAY)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
ApplePayEnabled:
type: bool
status: embedder
condition: ENABLE(APPLE_PAY)
defaultValue:
WebKitLegacy:
"ENABLE(APPLE_PAY_REMOTE_UI)": true
default: false
WebKit:
"ENABLE(APPLE_PAY_REMOTE_UI)": true
default: false
WebCore:
"ENABLE(APPLE_PAY_REMOTE_UI)": true
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
AsyncAudioSessionActivationEnabled:
type: bool
status: stable
category: media
humanReadableName: "Async Audio Session Activation"
humanReadableDescription: "Use async IPC for audio session activation"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
# FIXME: This is on by default in WebKit2 PLATFORM(COCOA). Perhaps we should consider turning it on for WebKitLegacy as well.
AsyncClipboardAPIEnabled:
type: bool
status: mature
humanReadableName: "Async clipboard API"
humanReadableDescription: "Enable the async clipboard API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || PLATFORM(WIN)" : true
default: false
WebCore:
default: false
AsyncClipboardRichContentEnabled:
type: bool
status: internal
humanReadableName: "Async clipboard rich content"
humanReadableDescription: "Enable rich content types in the async clipboard API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
AsyncFrameScrollingEnabled:
type: bool
status: internal
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Async Frame Scrolling"
humanReadableDescription: "Perform frame scrolling off the main thread"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(COORDINATED_GRAPHICS)": true
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
AsyncOverflowScrollingEnabled:
type: bool
status: internal
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Async Overflow Scrolling"
humanReadableDescription: "Perform overflow scrolling off the main thread"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(COORDINATED_GRAPHICS)": true
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
AsyncStackTraceEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Async Stack Traces"
humanReadableDescription: "Enable async stack traces"
webcoreBinding: none
jscOptionName: useAsyncStackTrace
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
AsynchronousSpellCheckingEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AttachmentElementEnabled:
type: bool
status: embedder
humanReadableName: "Attachment Element"
humanReadableDescription: "Allow the insertion of attachment elements"
webcoreBinding: DeprecatedGlobalSettings
condition: ENABLE(ATTACHMENT_ELEMENT)
defaultValue:
WebKitLegacy:
default: WebKit::defaultAttachmentElementEnabled()
WebKit:
default: false
sharedPreferenceForWebProcess: true
AttachmentWideLayoutEnabled:
type: bool
status: embedder
humanReadableName: "Attachment wide-layout styling"
humanReadableDescription: "Use horizontal wide-layout attachment style, requires Attachment Element"
condition: ENABLE(ATTACHMENT_ELEMENT)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
AudioControlsScaleWithPageZoom:
type: bool
status: embedder
category: media
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)": true
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(VISION)": true
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
"PLATFORM(VISION)": true
"PLATFORM(IOS_FAMILY)": false
default: true
AudioDescriptionsEnabled:
type: bool
status: stable
category: media
condition: ENABLE(VIDEO)
humanReadableName: "Audio descriptions for video - Standard"
humanReadableDescription: "Enable standard audio descriptions for video"
defaultValue:
WebKit:
default: true
WebCore:
default: true
AuthorAndUserStylesEnabled:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitAuthorAndUserStylesEnabledPreferenceKey
webcoreOnChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
AutomaticLiveResizeEnabled:
type: bool
status: internal
humanReadableName: "Enable Automatic Live Resize"
humanReadableDescription: "Automatically synchronize web view resize with painting"
webcoreBinding: none
exposed: [ WebKit ]
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKit:
default: WebKit::defaultAutomaticLiveResizeEnabled()
AutomaticallyAdjustsViewScaleUsingMinimumEffectiveDeviceWidth:
type: bool
status: internal
humanReadableName: "Automatically Adjust View Scale"
humanReadableDescription: "Automatically Adjust View Scale to Fit Min. Effective Device Width"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(FLEXIBLE_VIEW_SCALE_FACTOR)": true
default: false
WebCore:
default: false
AutomaticallyForceEnableScrollingIfNeededToRevealUI:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
AzimuthAngleEnabled:
type: bool
status: stable
category: dom
humanReadableName: "azimuthAngle PointerEvent Property"
humanReadableDescription: "Enable the `azimuthAngle` property of the PointerEvents API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
BackForwardCacheWithMediaEnabled:
type: bool
status: stable
category: media
humanReadableName: "Back/Forward Cache with Media"
humanReadableDescription: "Enable back/forward cache for pages with media"
condition: PLATFORM(WPE)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
BackgroundFetchAPIEnabled:
type: bool
status: testable
category: networking
humanReadableName: "Enable background-fetch API"
humanReadableDescription: "Enable background-fetch API"
exposed: [ WebKit ]
defaultValue:
WebCore:
default: false
WebKit:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
BackgroundWebContentRunningBoardThrottlingEnabled:
type: bool
status: unstable
category: networking
humanReadableName: "Enable background web content throttling via RunningBoard"
humanReadableDescription: "Enable background web content throttling via RunningBoard"
exposed: [ WebKit ]
condition: PLATFORM(MAC) && USE(RUNNINGBOARD)
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultRunningBoardThrottlingEnabled()
BackspaceKeyNavigationEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: true
# FIXME: This is on by default in WebKit2. Perhaps we should consider turning it on for WebKitLegacy as well.
BeaconAPIEnabled:
type: bool
status: mature
humanReadableName: "Beacon API"
humanReadableDescription: "Beacon API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
BidiContentAwarePasteEnabled:
type: bool
status: internal
humanReadableName: "Bidi Content Aware Paste"
humanReadableDescription: "Bidi content aware paste"
defaultValue:
WebKit:
"PLATFORM(IOS_FAMILY)": WebKit::defaultBidiContentAwarePasteEnabled()
default: false
WebKitLegacy:
default: false
WebCore:
default: false
BigIntMathMethodsEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "BigInt Math Methods"
humanReadableDescription: "Enable BigInt math helper methods."
webcoreBinding: none
jscOptionName: useBigIntMathMethods
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
BlobFileAccessEnforcementEnabled:
type: bool
status: embedder
category: security
humanReadableName: "Enforce blob backed file access valid for web process"
humanReadableDescription: "Validate file backed blobs were created by the correct web process"
sharedPreferenceForWebProcess: true
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
BlockMediaLayerRehostingInWebContentProcess:
type: bool
status: internal
category: media
humanReadableName: "GPU Process: Block Media Layer Re-hosting"
humanReadableDescription: "GPU Process: Block Media Layer Re-hosting in WebContent process"
condition: ENABLE(GPU_PROCESS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
# We would have to partition BroadcastChannel based on PageGroups if we wanted to enable this for WebKitLegacy.
BroadcastChannelEnabled:
type: bool
status: stable
category: dom
humanReadableName: "BroadcastChannel API"
humanReadableDescription: "BroadcastChannel API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
BuiltInNotificationsEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "Built-In Web Notifications"
humanReadableDescription: "Enable built-in WebKit managed notifications"
webcoreBinding: DeprecatedGlobalSettings
condition: ENABLE(WEB_PUSH_NOTIFICATIONS)
defaultValue:
WebCore:
default: false
WebKit:
default: defaultBuiltInNotificationsEnabled()
sharedPreferenceForWebProcess: true
CSS3DTransformBackfaceVisibilityInteroperabilityEnabled:
type: bool
status: preview
category: css
humanReadableName: "CSS 3D Transform Interoperability for backface-visibility"
humanReadableDescription: "Enable 3D transform behavior for backface-visibility that is specification-compliant but backwards incompatible"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSAppearanceBaseEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS appearance: base"
humanReadableDescription: "Enable base value for CSS appearance"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSAttrSubstitutionFunctionEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS attr() substitution function"
humanReadableDescription: "Enable CSS Values 5 attr() arbitrary substitution function"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSAxisRelativePositionKeywordsEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS axis relative keywords in <position>"
humanReadableDescription: "Enable support for CSS Values and Units Module Level 5 axis relative keywords in <position>"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSBaselineSourceEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS baseline-source"
humanReadableDescription: "Enable CSS baseline-source"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSCalcMixEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS calc-mix()"
humanReadableDescription: "Enable support for CSS calc-mix()"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSColorLayersEnabled:
type: bool
category: css
status: preview
humanReadableName: "CSS color-layers()"
humanReadableDescription: "Enable support for CSS color-layers()"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSConstrainedDynamicRangeLimitEnabled:
type: bool
category: css
status: testable
humanReadableName: "CSS dynamic-range-limit: constrained"
humanReadableDescription: "Enable support for CSS dynamic-range-limit value constrained"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSCornerShapeEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS corner-shape property"
humanReadableDescription: "Enable support for CSS corner-shape property"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSCounterStyleAtRuleImageSymbolsEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS @counter-style <image> symbols"
humanReadableDescription: "Enable support for <image> symbols in CSS @counter-style rules"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSDPropertyEnabled:
type: bool
status: preview
category: css
humanReadableName: "CSS d property"
humanReadableDescription: "Enable support for the CSS d property and SVG d presentation attribute"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSDynamicRangeLimitMixEnabled:
type: bool
category: css
status: testable
humanReadableName: "CSS dynamic-range-limit-mix()"
humanReadableDescription: "Enable support for CSS dynamic-range-limit-mix(), but animation stays unsupported"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSFieldSizingEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS field-sizing property"
humanReadableDescription: "Enable field-sizing CSS property"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSFontFaceMetricOverrideDescriptorsEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS @font-face metric override descriptors"
humanReadableDescription: "Enable CSS @font-face metric override descriptors"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSFontSynthesisStyleObliqueOnlyEnabled:
type: bool
status: preview
category: css
humanReadableName: "CSS font-synthesis-style: oblique-only"
humanReadableDescription: "Enable the oblique-only value for the font-synthesis-style CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSFontVariantEmojiEnabled:
type: bool
status: preview
category: css
humanReadableName: "CSS font-variant-emoji property"
humanReadableDescription: "Enable the font-variant-emoji CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
CSSFunctionAtRuleEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS @function"
humanReadableDescription: "Enable CSS @function rule"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSIdentFunctionEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS ident() function"
humanReadableDescription: "Enable the CSS Values 5 ident() function"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSIfFunctionEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS if() function"
humanReadableDescription: "Enable CSS Values 5 if() conditional substitution function"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSInheritFunctionEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS inherit() function"
humanReadableDescription: "Enable the CSS Values 5 inherit() function"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSInputSecurityEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS Input Security"
humanReadableDescription: "Enable input-security CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSInternalAutoBaseParsingEnabled:
type: bool
status: internal
category: css
humanReadableName: "CSS -internal-auto-base() in author sheet"
humanReadableDescription: "Enable parsing -internal-auto-base() in author sheet"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSLineClampEnabled:
type: bool
status: preview
category: css
humanReadableName: "CSS line-clamp"
humanReadableDescription: "Enable CSS line-clamp"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSLineFitEdgeEnabled:
type: bool
status: unstable
category: css
humanReadableName: "CSS line-fit-edge"
humanReadableDescription: "Enable CSS line-fit-edge"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSMarkerContentEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS content on ::marker"
humanReadableDescription: "Enable the content property on the ::marker pseudo-element"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSMathDepthEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS math-depth"
humanReadableDescription: "Enable support for math-depth from MathML Core."
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSObjectViewBoxEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS object-view-box property"
humanReadableDescription: "Enable support for CSS object-view-box property"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSOverflowClipMarginEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS overflow-clip-margin"
humanReadableDescription: "Enable CSS overflow-clip-margin"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSPaintingAPIEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS Painting API"
humanReadableDescription: "Enable the CSS Painting API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(EXPERIMENTAL_FEATURES)": true
default: false
WebCore:
default: false
CSSPickerPseudoElementEnabled:
type: bool
status: internal
category: css
humanReadableName: "CSS ::picker() pseudo-element"
humanReadableDescription: "Enable the CSS ::picker() pseudo-element"
defaultValue:
WebKitLegacy:
"PLATFORM(WATCHOS)": false
default: true
WebKit:
"PLATFORM(WATCHOS)": false
default: true
WebCore:
"PLATFORM(WATCHOS)": false
default: true
CSSRandomFunctionEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS random()"
humanReadableDescription: "Enable support for CSS Values and Units Module Level 5 random()"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSRandomItemFunctionEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS random-item()"
humanReadableDescription: "Enable support for CSS Values and Units Module Level 5 random-item()"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSRhythmicSizingEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS Rhythmic Sizing"
humanReadableDescription: "Enable CSS Rhythmic Sizing properties"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSRubyDisplayTypesInAuthorStylesEnabled:
type: bool
status: unstable
category: css
humanReadableName: "CSS Ruby Display Types in Author Styles"
humanReadableDescription: "Enable CSS Ruby Display types in author styles"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSScrollAnchoringEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS Scroll Anchoring"
humanReadableDescription: "Enable CSS Scroll Anchoring"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSScrollStateContainerQueriesEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS Scroll State Container Queries"
humanReadableDescription: "Enable scroll-state value for container-type CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSScrollbarColorEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS scrollbar-color property"
humanReadableDescription: "Enable scrollbar-color CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultScrollbarColorEnabled()
WebCore:
default: false
CSSScrollbarGutterEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS scrollbar-gutter property"
humanReadableDescription: "Enable scrollbar-gutter CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
CSSScrollbarWidthEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS scrollbar-width property"
humanReadableDescription: "Enable scrollbar-width CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
CSSSelectorJITCompilerEnabled:
type: bool
status: internal
category: css
humanReadableName: "CSS Selector JIT Compiler"
humanReadableDescription: "Enable the JIT compiler for CSS selectors"
condition: ENABLE(CSS_SELECTOR_JIT)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSTextDecorationInsetEnabled:
type: bool
status: stable
category: css
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "CSS text-decoration-inset property"
humanReadableDescription: "Enable the text-decoration-inset property, defined in CSS Text Decoration 4"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSTextDecorationLineErrorValues:
type: bool
status: stable
category: css
humanReadableName: "CSS text-decoration-line: spelling-error/grammar-error"
humanReadableDescription: "Enable support for spelling-error and grammar-error values on text-decoration-line"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSTextGroupAlignEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS text-group-align property"
humanReadableDescription: "Enable text-group-align CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSTextJustifyEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS text-justify property"
humanReadableDescription: "Enable the property text-justify, defined in CSS Text 3"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSTextSpacingTrimEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS text-spacing-trim property"
humanReadableDescription: "Enable the property text-spacing-trim, defined in CSS Text 4"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSTextTransformMathAutoEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS text-transform: math-auto"
humanReadableDescription: "Enable the math-auto text transform."
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
CSSTextWrapPrettyEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS text-wrap: pretty"
humanReadableDescription: "Enable the pretty value for text-wrap-style"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSToggleFunctionEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS toggle() function"
humanReadableDescription: "Enable CSS Values 5 toggle() function"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSTransformStyleSeparatedEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS transform-style: separated"
humanReadableDescription: "Enable transform-style: separated property to access the separated graphics layer"
condition: HAVE(CORE_ANIMATION_SEPARATED_LAYERS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSTreeCountingFunctionsEnabled:
type: bool
category: css
status: stable
humanReadableName: "CSS Tree Counting Functions"
humanReadableDescription: "Enable support for CSS Values and Units Module Level 5 tree counting functions sibling-count() and sibling-index()"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSTypedOMColorEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS Typed OM: Color Support"
humanReadableDescription: "Enable the CSS Typed OM Color support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSURLIntegrityModifierEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS URL Modifiers: integrity()"
humanReadableDescription: "Enable support for CSS Values and Units Module Level 5 URL integrity() modifier"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSURLModifiersEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS URL Modifiers"
humanReadableDescription: "Enable support for CSS Values and Units Module Level 5 URL modifiers"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSUnprefixedBackdropFilterEnabled:
type: bool
status: Backdropfilter_feature_status
category: css
humanReadableName: "CSS Unprefixed Backdrop Filter"
humanReadableDescription: "Enable unprefixed backdrop-filter CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(UNPREFIXED_BACKDROP_FILTER)": true
default: false
WebCore:
"ENABLE(UNPREFIXED_BACKDROP_FILTER)": true
default: false
CSSUserSelectEnabled:
type: bool
status: testable
category: css
humanReadableName: "CSS Unprefixed User Select"
humanReadableDescription: "Enable the unprefixed user-select CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSWhiteSpaceTrimEnabled:
type: bool
status: stable
category: css
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "CSS white-space-trim property"
humanReadableDescription: "Enable the property white-space-trim, defined in CSS Text 4"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
CSSWordBreakAutoPhraseEnabled:
type: bool
status: preview
category: css
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "word-break: auto-phrase enabled"
humanReadableDescription: "Enables the auto-phrase value of the word-break CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CSSWrapInsideEnabled:
type: bool
status: stable
category: css
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "CSS wrap-inside property"
humanReadableDescription: "Enable the wrap-inside property, defined in CSS Text 4"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
CacheAPIEnabled:
type: bool
status: embedder
humanReadableName: "Cache API"
humanReadableDescription: "Cache API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
disableInLockdownMode: true
richJavaScript: true
CanvasColorSpaceEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Canvas Color Spaces"
humanReadableDescription: "Enable use of predefined canvas color spaces"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
CanvasColorTypeEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Canvas Color Types and ImageData Pixel Formats"
humanReadableDescription: "Allow different color types and pixel formats in 2D canvas"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
CanvasFiltersEnabled:
type: bool
status: testable
category: dom
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Canvas Filters"
humanReadableDescription: "Canvas Filters"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CanvasFingerprintingQuirkEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Enable Canvas fingerprinting-related quirk"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
CanvasLayersEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Canvas Layers"
humanReadableDescription: "Enable Canvas Layers"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CanvasUsesAcceleratedDrawing:
type: bool
status: embedder
humanReadableName: "Canvas uses accelerated drawing"
condition: USE(CA) || USE(SKIA)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY) && !PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebKit:
default: true
WebCore:
default: false
CaptionDisplaySettingsEnabled:
type: bool
status: internal
defaultsOverridable: true
category: media
humanReadableName: "Caption Display Settings API"
humanReadableDescription: "Enable Caption Display Settings API"
condition: ENABLE(VIDEO)
defaultValue:
WebKit:
default: WebKit::defaultCaptionDisplaySettingsEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
CaptureAudioInGPUProcessEnabled:
type: bool
status: internal
category: media
humanReadableName: "GPU Process: Audio Capture"
humanReadableDescription: "Enable audio capture in GPU Process"
webcoreBinding: none
condition: ENABLE(MEDIA_STREAM)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: WebKit::defaultCaptureAudioInGPUProcessEnabled()
CaptureVideoInGPUProcessEnabled:
type: bool
status: internal
category: media
humanReadableName: "GPU Process: Video Capture"
humanReadableDescription: "Enable video capture in GPU Process"
webcoreBinding: none
condition: ENABLE(MEDIA_STREAM)
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(GPU_PROCESS_BY_DEFAULT)": true
default: false
CaretBrowsingEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CaretPositionFromPointEnabled:
type: bool
status: stable
category: dom
humanReadableName: "document.caretPositionFromPoint() API"
humanReadableDescription: "Enable document.caretPositionFromPoint() API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
ChildProcessDebuggabilityEnabled:
comment: Disables GPU process IPC timeouts
type: bool
status: internal
humanReadableName: "Child Process Debuggability"
humanReadableDescription: "Enable stopping child processes with a debugger"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ClearSiteDataExecutionContextsSupportEnabled:
type: bool
status: testable
category: networking
humanReadableName: "Clear-Site-Data: 'executionContexts' support"
humanReadableDescription: "Enable Clear-Site-Data: 'executionContexts' support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ClearSiteDataHTTPHeaderEnabled:
type: bool
status: stable
category: networking
humanReadableName: "Clear-Site-Data HTTP Header"
humanReadableDescription: "Enable Clear-Site-Data HTTP Header support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
CloseWatcherEnabled:
type: bool
status: stable
category: html
humanReadableName: "Close Watcher API"
humanReadableDescription: "Enable Close Watcher API including dialog closedby attribute"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
ColorFilterEnabled:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CommandAttributesEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML command & commandfor attributes"
humanReadableDescription: "Enable HTML command & commandfor attribute support"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: WebKit has an alternate name for this called 'ShowDebugBorders'. We should standardize on one name.
CompositingBordersVisible:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Compositing borders visible"
webKitLegacyPreferenceKey: WebKitShowDebugBorders
webcoreName: showDebugBorders
webcoreOnChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: WebKit has an alternate name for this called 'ShowRepaintCounter'. We should standardize on one name.
CompositingRepaintCountersVisible:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Compositing repaint counters visible"
webKitLegacyPreferenceKey: WebKitShowRepaintCounter
webcoreName: showRepaintCounter
webcoreOnChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CompressionStreamEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Compression Stream API"
humanReadableDescription: "Enable Compression Stream API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
ConsistentQueryParameterFilteringInternalQuirkEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Consistent Query Parameter Filtering Internal"
humanReadableDescription: "Enable internal consistent query parameter filtering"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ConsistentQueryParameterFilteringQuirkEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Consistent Query Parameter Filtering"
humanReadableDescription: "Enable consistent query parameter filtering"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
ContactPickerAPIEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Contact Picker API"
humanReadableDescription: "Enable the Contact Picker API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
ContentChangeObserverEnabled:
type: bool
status: embedder
condition: ENABLE(CONTENT_CHANGE_OBSERVER)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: defaultContentChangeObserverEnabled()
WebCore:
default: false
ContentDispositionAttachmentSandboxEnabled:
comment: '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.'
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
PLATFORM(COCOA): true
default: false
WebCore:
default: false
ContentInsetBackgroundFillEnabled:
type: bool
status: internal
humanReadableName: "Content Inset Background Fill"
humanReadableDescription: "Fill content insets with background colors"
defaultValue:
WebKit:
default: WebKit::defaultContentInsetBackgroundFillEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
ContextMenuQRCodeDetectionEnabled:
type: bool
status: embedder
condition: ENABLE(CONTEXT_MENU_QR_CODE_DETECTION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is handled via WebView SPI rather than WebPreferences for WebKitLegacy. We should change the SPI to lookup the WebPreferences value instead.
CookieEnabled:
type: bool
status: embedder
humanReadableName: "Cookies Enabled"
webKitLegacyBinding: custom
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: true
WebCore:
default: true
CookieStoreAPIEnabled:
type: bool
category: dom
status: stable
humanReadableName: "Cookie Store API"
humanReadableDescription: "Enable Cookie Store API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultCookieStoreAPIEnabled()
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
CookieStoreManagerEnabled:
type: bool
category: dom
status: testable
humanReadableName: "Cookie Store API CookieStoreManager"
humanReadableDescription: "Enable Cookie Store API CookieStoreManager which controls cookie change subscriptions for Service Workers"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
CoreMathMLDeprecateLegacyMathvariant:
type: bool
status: testable
category: dom
humanReadableName: "Deprecate legacy mathvariant"
humanReadableDescription: "Align the mathvariant attribute with MathML Core, disabling all variants except italic."
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
CoreMathMLEnabled:
type: bool
status: unstable
category: dom
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "MathML Core"
humanReadableDescription: "Disable features removed from the MathML Core spec."
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
CrossOriginEmbedderPolicyEnabled:
type: bool
status: stable
category: security
humanReadableName: "Cross-Origin-Embedder-Policy (COEP) header"
humanReadableDescription: "Support for Cross-Origin-Embedder-Policy (COEP) header"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
CrossOriginOpenerPolicyEnabled:
type: bool
status: stable
category: security
humanReadableName: "Cross-Origin-Opener-Policy (COOP) header"
humanReadableDescription: "Support for Cross-Origin-Opener-Policy (COOP) header"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
CursiveFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitCursiveFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": '"Snell Roundhand"_str'
default: '"Apple Chancery"_str'
WebKit:
"PLATFORM(COCOA) && PLATFORM(IOS_FAMILY)": '"Snell Roundhand"_str'
"PLATFORM(COCOA) && !PLATFORM(IOS_FAMILY)": '"Apple Chancery"_str'
default: '"Comic Sans MS"_str'
WebCore:
default: '""_str'
CustomPasteboardDataEnabled:
type: bool
status: embedder
humanReadableName: "Custom pasteboard data"
humanReadableDescription: "Enable custom clipboard types and better security model for clipboard API."
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || PLATFORM(WIN)": true
default: false
DOMAudioSessionEnabled:
type: bool
status: mature
category: media
humanReadableName: "AudioSession API"
humanReadableDescription: "Enable AudioSession API"
condition: ENABLE(DOM_AUDIO_SESSION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
DOMAudioSessionFullEnabled:
type: bool
status: testable
category: media
humanReadableName: "AudioSession full API"
humanReadableDescription: "Enable AudioSession full API"
condition: ENABLE(DOM_AUDIO_SESSION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DOMPasteAccessRequestsEnabled:
type: bool
status: internal
category: dom
humanReadableName: "DOM Paste Access Requests"
humanReadableDescription: "Enable DOM Paste Access Requests"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS) || PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(WPE) || PLATFORM(WIN) || PLATFORM(VISION)": true
default: false
WebCore:
default: false
DOMPasteAllowed:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitDOMPasteAllowedPreferenceKey
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DOMTestingAPIsEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Additional Testing APIs for DOM Objects"
humanReadableDescription: "Enable additional testing APIs for DOM objects"
defaultValue:
WebCore:
default: false
WebKit:
default: false
WebKitLegacy:
default: false
DOMTimersThrottlingEnabled:
type: bool
status: embedder
humanReadableName: "DOM timer throttling enabled"
webKitLegacyPreferenceKey: WebKitDOMTimersThrottlingEnabledPreferenceKey
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
DamageRectangleThreshold:
type: uint32_t
status: unstable
category: dom
humanReadableName: "Damage Rectangle Threshold"
humanReadableDescription: "Maximum number of damage rectangles to track before damaged regions are unified into their bounding box"
condition: ENABLE(DAMAGE_TRACKING)
defaultValue:
WebKitLegacy:
default: 4
WebKit:
default: 4
WebCore:
default: 4
DataDetectorTypes:
type: uint32_t
refinedType: WebCore::DataDetectorType
status: embedder
condition: ENABLE(DATA_DETECTION)
defaultValue:
WebKitLegacy:
default: static_cast<DataDetectorType>(0)
WebKit:
default: static_cast<DataDetectorType>(0)
WebCore:
default: static_cast<DataDetectorType>(0)
# FIXME: This is on by default in WebKit2 (for everything but WatchOS). Perhaps we should consider turning it on for WebKitLegacy as well.
DataListElementEnabled:
type: bool
status: mature
humanReadableName: "DataList Element"
humanReadableDescription: "Enable datalist elements"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"(PLATFORM(COCOA) && !PLATFORM(WATCHOS)) || PLATFORM(GTK)": true
default: false
WebCore:
"(PLATFORM(COCOA) && !PLATFORM(WATCHOS)) || PLATFORM(GTK)": true
default: false
sharedPreferenceForWebProcess: true
DataTransferItemsEnabled:
type: bool
status: embedder
humanReadableName: "Data Transfer Items"
humanReadableDescription: "Enables DataTransferItem in the clipboard API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || PLATFORM(WIN)": true
default: false
WebCore:
default: false
DatabasesEnabled:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitDatabasesEnabledPreferenceKey
webcoreBinding: custom
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
# FIXME: This is on by default in WebKit2 (for macOS at least). Perhaps we should consider turning it on for WebKitLegacy as well.
DateTimeInputsEditableComponentsEnabled:
type: bool
status: embedder
humanReadableName: "Date/Time inputs have editable components"
humanReadableDescription: "Enable multiple editable components in date/time inputs"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(MAC) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
DeclarativeWebPush:
type: bool
status: stable
category: dom
defaultsOverridable: true
condition: ENABLE(DECLARATIVE_WEB_PUSH)
humanReadableName: "Declarative Web Push"
humanReadableDescription: "Enable Declarative Web Push"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
DefaultFixedFontSize:
type: double
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: 13
WebKit:
default: 13
WebCore:
default: 13
DefaultFontSize:
type: double
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: 16
WebKit:
default: 16
WebCore:
default: 16
DefaultTextEncodingName:
type: String
status: embedder
defaultValue:
WebKitLegacy:
default: '"ISO-8859-1"_str'
WebKit:
default: PAL::defaultTextEncodingNameForSystemLanguage()
WebCore:
default: '{ }'
DeprecationReportingEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Deprecation Reporting"
humanReadableDescription: "Enable Deprecation Reporting"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DetachableMediaSourceEnabled:
type: bool
status: developer
category: media
humanReadableName: "Detachable Media Source"
humanReadableDescription: "Detachable Media Source API"
condition: ENABLE(MEDIA_SOURCE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DetailsAutoExpandEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML auto-expanding <details>"
humanReadableDescription: "Enable HTML auto-expanding <details>"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
DeveloperExtrasEnabled:
type: bool
status: embedder
defaultsOverridable: true
webKitLegacyPreferenceKey: WebKitDeveloperExtrasEnabledPreferenceKey
webKitLegacyBinding: custom
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DeviceHeight:
type: uint32_t
status: embedder
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
DeviceOrientationEventEnabled:
type: bool
status: embedder
condition: ENABLE(DEVICE_ORIENTATION)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
DeviceOrientationPermissionAPIEnabled:
type: bool
status: embedder
condition: ENABLE(DEVICE_ORIENTATION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultDeviceOrientationPermissionAPIEnabled()
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
DeviceWidth:
type: uint32_t
status: embedder
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
DiagnosticLoggingEnabled:
type: bool
status: embedder
humanReadableName: "Diagnostic logging enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DigitalCredentialsEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Digital Credentials API"
humanReadableDescription: "Enable the Digital Credentials API"
condition: ENABLE(WEB_AUTHN)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultDigitalCredentialsEnabled()
WebCore:
default: false
sharedPreferenceForWebProcess: true
disableInLockdownMode: true
richJavaScript: true
DigitalCredentialsOpenID4VPEnabled:
type: bool
status: internal
category: dom
humanReadableName: "OpenID4VP for Digital Credentials API"
humanReadableDescription: "Enable the OpenID4VP presentation protocols for the Digital Credentials API"
condition: ENABLE(WEB_AUTHN)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
disableInLockdownMode: true
DirectoryUploadEnabled:
type: bool
status: embedder
humanReadableName: "Directory Upload"
humanReadableDescription: "input.webkitdirectory / dataTransferItem.webkitGetAsEntry()"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
# FIXME: Starting the preference name with "Disable" is inconsistent with most other preferences and should be changed.
DisableScreenSizeOverride:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Disable screen size override"
webcoreBinding: DeprecatedGlobalSettings
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
DisabledAdaptationsMetaTagEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(WATCHOS)": true
default: false
WebCore:
default: false
# FIXME: This is on by default in WebKit2. Perhaps we should consider turning it on for WebKitLegacy as well.
DownloadAttributeEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
DynamicSiteInterventionsEnabled:
type: bool
status: unstable
category: none
humanReadableName: "Dynamic Site Interventions"
humanReadableDescription: "Enable dynamic site interventions for broken websites"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
EditableLinkBehavior:
type: uint32_t
refinedType: WebCore::EditableLinkBehavior
status: embedder
defaultValue:
WebKitLegacy:
default: WebKitEditableLinkDefaultBehavior
WebKit:
default: WebCore::EditableLinkBehavior::NeverLive
WebCore:
default: EditableLinkBehavior::Default
EmbedElementEnabled:
type: bool
status: mature
humanReadableName: "Embed Element"
humanReadableDescription: "Embed Element"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
EnableAccessibilityOnDemand:
type: bool
status: internal
category: networking
humanReadableName: "Enable Accessibility On Demand"
humanReadableDescription: "Enable Accessibility On Demand"
webcoreBinding: none
condition: PLATFORM(MAC)
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(INITIALIZE_ACCESSIBILITY_ON_DEMAND)": true
default: false
EnableDebuggingFeaturesInSandbox:
type: bool
status: internal
category: security
humanReadableName: "Enable debugging features in sandbox"
humanReadableDescription: "Enable debugging features in sandbox"
condition: HAVE(SANDBOX_STATE_FLAGS)
defaultsOverridable: true
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
EnableElementCurrentCSSZoom:
type: bool
status: stable
category: dom
humanReadableName: "Enable Element.currentCSSZoom"
humanReadableDescription: "Enable Element.currentCSSZoom"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
EnableInheritURIQueryComponent:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
EnableOpaqueLoadingForMedia:
type: bool
status: internal
category: media
humanReadableName: "Opaque loading for media"
humanReadableDescription: "Enable opaque loading for media"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
EncryptedMediaAPIEnabled:
type: bool
status: embedder
condition: ENABLE(ENCRYPTED_MEDIA)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": false
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
EnhancedSecurityForceDisabled:
type: bool
status: internal
category: security
defaultsOverridable: true
humanReadableName: "Force disable Enhanced Security"
humanReadableDescription: "Disables Enhanced Security for all navigations"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
EnhancedSecurityHeuristicsEnabled:
type: bool
status: stable
category: security
defaultsOverridable: true
humanReadableName: "Enable EnhancedSecurity Heuristics"
humanReadableDescription: "Triggers EnhancedSecurity when insecure HTTP loads occur"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
EnhancedSecurityLinksEnabled:
type: bool
status: stable
category: security
condition: HAVE(ENHANCED_SECURITY_LINKS)
defaultsOverridable: true
humanReadableName: "Enhanced Security for links"
humanReadableDescription: "Enables additional Enhanced Security support for certain links"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
EnterKeyHintEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Enter Key Hint"
humanReadableDescription: "Enable the enterKeyHint HTML attribute"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
EnumeratedARIAAttributeReflectionEnabled:
type: bool
status: developer
category: javascript
humanReadableName: "Enumerated ARIA Attribute Reflection"
humanReadableDescription: "Enable enumerated ARIA attributes"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
EnumeratingAllNetworkInterfacesEnabled:
type: bool
status: internal
humanReadableName: "Enable Enumerating All Network Interfaces"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
EnumeratingVisibleNetworkInterfacesEnabled:
type: bool
status: internal
humanReadableName: "Enable Enumerating Visible Network Interfaces"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
EventHandlerDrivenSmoothKeyboardScrollingEnabled:
type: bool
status: internal
category: dom
humanReadableName: "EventHandler driven smooth keyboard scrolling"
humanReadableDescription: "Enable EventHandler driven smooth keyboard scrolling"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(MAC)": WebKit::defaultScrollAnimatorEnabled()
default: false
WebCore:
default: false
EventTimingEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Event Timing API"
humanReadableDescription: "Enable the Event Timing API and supporting instrumentation"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ExperimentalSandboxEnabled:
type: bool
status: internal
category: security
humanReadableName: "Enable experimental sandbox features"
humanReadableDescription: "Enable experimental sandbox features"
condition: HAVE(MACH_BOOTSTRAP_EXTENSION) || HAVE(SANDBOX_STATE_FLAGS)
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
ExplicitResourceManagementEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Explicit Resource Management"
humanReadableDescription: "Enable explicit resource management builtins and syntax."
webcoreBinding: none
jscOptionName: useExplicitResourceManagement
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
ExposeCaptureDevicesAfterCaptureEnabled:
type: bool
status: internal
category: media
humanReadableName: "Expose all capture devices when one is used"
humanReadableDescription: "Expose all capture devices when one is used"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
default: true
WebCore:
default: false
ExposeDefaultSpeakerAsSpecificDeviceEnabled:
type: bool
status: internal
category: media
humanReadableName: "Expose the system default speaker as a specific device"
humanReadableDescription: "Expose the system default speaker as a specific device"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
default: true
WebCore:
default: true
ExposeRollAngleAsTwistEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "Expose Apple Pencil rotation for twist PointerEvent Property"
humanReadableDescription: "Expose Apple Pencil rotation for the `twist` PointerEvent Property"
condition: HAVE(UITOUCH_ROLLANGLE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ExposeSpeakersEnabled:
type: bool
status: internal
category: media
humanReadableName: "Allow speaker device selection"
humanReadableDescription: "Allow speaker device selection"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
ExposeSpeakersWithoutMicrophoneEnabled:
type: bool
status: internal
category: media
humanReadableName: "Allow selection of speaker device without related microphone"
humanReadableDescription: "Allow selection of speaker device without related microphone"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
ExtendedAudioDescriptionsEnabled:
type: bool
status: stable
category: media
condition: ENABLE(VIDEO)
humanReadableName: "Audio descriptions for video - Extended"
humanReadableDescription: "Enable extended audio descriptions for video"
defaultValue:
WebKit:
default: true
WebCore:
default: true
ExtendedProofreadingEnabled:
type: bool
status: internal
humanReadableName: "Extended Proofreading"
humanReadableDescription: "Enable Extended Proofreading"
condition: PLATFORM(COCOA)
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultExtendedProofreadingEnabled()
sharedPreferenceForWebProcess: true
ExtensibleSSOEnabled:
type: bool
status: embedder
getter: isExtensibleSSOEnabled
webcoreBinding: none
condition: HAVE(APP_SSO)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
FTPEnabled:
type: bool
status: developer
category: networking
humanReadableName: "FTP support enabled"
humanReadableDescription: "FTP support enabled"
defaultValue:
WebCore:
default: false
WebKit:
default: false
WebKitLegacy:
default: false
FacebookLiveRecordingQuirkEnabled:
type: bool
status: internal
humanReadableName: "Facebook Live Recording Quirk"
humanReadableDescription: "Enable Facebook Live Recording Quirk"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultFacebookLiveRecordingQuirkEnabled()
WebCore:
default: false
FantasyFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitFantasyFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '"Papyrus"_str'
WebKit:
"PLATFORM(COCOA)": '"Papyrus"_str'
default: '"Impact"_str'
WebCore:
default: '""_str'
FasterClicksEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Fast clicks"
humanReadableDescription: "Support faster clicks on zoomable pages"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
FetchUploadStreamsEnabled:
type: bool
status: testable
category: networking
humanReadableName: "Fetch upload streams"
humanReadableDescription: "Enable ReadableStream request bodies for fetch(). HTTP/2 (or later) required."
exposed: [ WebKit ]
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
FileReaderAPIEnabled:
type: bool
status: embedder
humanReadableName: "FileReader API"
humanReadableDescription: "FileReader API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
FileSystemEnabled:
type: bool
status: mature
category: dom
humanReadableName: "File System API"
humanReadableDescription: "Enable File System API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)" : true
default: false
WebCore:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)" : true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
FileSystemHandleSerializationEnabled:
type: bool
status: stable
category: dom
humanReadableName: "File System Handle Serialization"
humanReadableDescription: "Enable FileSystemHandle for postMessage() and structuredClone()"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)" : true
default: false
WebCore:
"PLATFORM(COCOA)" : true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
FileSystemWritableStreamEnabled:
type: bool
status: stable
category: dom
humanReadableName: "File System WritableStream"
humanReadableDescription: "Enable File System WritableStream API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
FilterLinkDecorationByDefaultEnabled:
type: bool
status: preview
category: networking
humanReadableName: "Filter Link Decoration"
humanReadableDescription: "Enable Filtering Link Decoration"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
FindInVideoEnabled:
type: bool
status: testable
category: media
humanReadableName: "Find in Video"
humanReadableDescription: "Include video subtitle/caption cues in Find-in-Page results"
condition: ENABLE(VIDEO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
FixedFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitFixedFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '"Courier"_str'
WebKit:
"PLATFORM(COCOA)": '"Courier"_str'
default: '"Courier New"_str'
WebCore:
default: '""_str'
FontFaceSetConstructorEnabled:
type: bool
status: developer
category: dom
humanReadableName: "Legacy FontFaceSet Constructor API"
humanReadableDescription: "Legacy FontFaceSet Constructor API"
defaultValue:
WebKitLegacy:
default: WebKit::defaultFontFaceSetConstructorEnabled()
WebKit:
default: WebKit::defaultFontFaceSetConstructorEnabled()
WebCore:
default: false
ForceAlwaysUserScalable:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Force always user-scalable"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
ForceCompositingMode:
type: bool
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
ForceEnhancedSecurity:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Force Enhanced Security Mode"
humanReadableDescription: "Force all navigations to use Enhanced Security"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ForceLockdownFontParserEnabled:
type: bool
status: internal
humanReadableName: "Force Lockdown Mode Safe Font Parser"
humanReadableDescription: "Forcing the Lockdown Mode Safe Font Parser independently from Lockdown Mode state"
exposed: [ WebKit ]
category: security
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
ForceWebGLUsesLowPower:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: false
WebCore:
default: false
FormControlRefreshEnabled:
type: bool
status: internal
humanReadableName: "Form control refresh for Cocoa platforms"
humanReadableDescription: "Enable form control refresh for Cocoa platforms"
condition: ENABLE(FORM_CONTROL_REFRESH)
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: true
WebCore:
default: false
FullScreenEnabled:
type: bool
status: embedder
humanReadableName: "Fullscreen API"
humanReadableDescription: "Fullscreen API"
condition: ENABLE(FULLSCREEN_API)
hidden: EXPERIMENTAL_FULLSCREEN_API_HIDDEN
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
sharedPreferenceForWebProcess: true
FullScreenKeyboardLock:
type: bool
status: unstable
category: dom
humanReadableName: "Fullscreen API based Keyboard Lock"
humanReadableDescription: "Fullscreen API based Keyboard Lock"
condition: ENABLE(FULLSCREEN_API)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
FullscreenRequirementForScreenOrientationLockingEnabled:
type: bool
status: embedder
humanReadableName: "Require being in Fullscreen to lock screen orientation"
humanReadableDescription: "Require being in Fullscreen to lock screen orientation"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
FullscreenSceneAspectRatioLockingEnabled:
type: bool
status: internal
humanReadableName: "Fullscreen scene aspect ratio locking"
humanReadableDescription: "Enable scene aspect ratio locking in Fullscreen"
condition: PLATFORM(VISION)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
FullscreenSceneDimmingEnabled:
type: bool
status: internal
humanReadableName: "Fullscreen scene dimming"
humanReadableDescription: "Enable scene dimming in Fullscreen"
condition: PLATFORM(VISION)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
GStreamerEnabled:
type: bool
status: embedder
getter: isGStreamerEnabled
webcoreBinding: DeprecatedGlobalSettings
condition: USE(GSTREAMER)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
GamepadTriggerRumbleEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Gamepad trigger vibration support"
humanReadableDescription: "Support for Gamepad trigger vibration"
condition: ENABLE(GAMEPAD)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
GamepadVibrationActuatorEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Gamepad.vibrationActuator support"
humanReadableDescription: "Support for Gamepad.vibrationActuator"
condition: ENABLE(GAMEPAD)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultGamepadVibrationActuatorEnabled()
WebCore:
default: false
GamepadsEnabled:
type: bool
status: embedder
humanReadableName: "Gamepads"
humanReadableDescription: "Web Gamepad API support"
condition: ENABLE(GAMEPAD)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
# FIXME: This is on by default in WebKit2. Perhaps we should consider turning it on for WebKitLegacy as well.
GenericCueAPIEnabled:
type: bool
status: mature
condition: ENABLE(VIDEO)
humanReadableName: "Generic Text Track Cue API"
humanReadableDescription: "Enable Generic Text Track Cue API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
GeolocationAPIEnabled:
type: bool
status: embedder
humanReadableName: "Geolocation API"
humanReadableDescription: "Enable Geolocation API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
GetBoundingClientRectZoomedEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Get(Bounding)ClientRect API zoomed"
humanReadableDescription: "Get(Bounding)ClientRect API return a zoomed rect"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": WebKit::defaultGetBoundingClientRectZoomedEnabled()
default: true
WebCore:
default: true
GetUserMediaRequiresFocus:
type: bool
status: internal
category: media
humanReadableName: "Require focus to start getUserMedia"
humanReadableDescription: "Require focus to start getUserMedia"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
GlobalPrivacyControlEnabled:
type: "std::optional<bool>"
status: embedder
humanReadableName: "Global Privacy Control"
humanReadableDescription: "Enable Global Privacy Control (GPC) signal"
defaultValue:
WebCore:
default: std::nullopt
GoogleAntiFlickerOptimizationQuirkEnabled:
type: bool
status: mature
humanReadableName: "Quirk to prevent delayed initial painting on sites using Google's Anti-Flicker optimization"
humanReadableDescription: "Quirk to prevent delayed initial painting on sites using Google's Anti-Flicker optimization"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
GraphicsContextFiltersEnabled:
type: bool
status: stable
category: media
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "GraphicsContext Filter Rendering"
humanReadableDescription: "GraphicsContext Filter Rendering"
condition: USE(GRAPHICS_CONTEXT_FILTERS)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
GridFormattingContextIntegrationEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Next-generation grid layout integration (GFC)"
humanReadableDescription: "Enable next-generation grid layout integration (GFC)"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
GridLanesEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS display: grid-lanes"
humanReadableDescription: "Enable CSS display: grid-lanes"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HDRAcceleratedApplyGainMapEnabled:
type: bool
status: stable
category: css
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "HDR Accelerated Apply GainMap"
humanReadableDescription: "Enable HDR Accelerated Apply GainMap"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HTMLEnhancedSelectEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Enhanced HTML select element"
humanReadableDescription: "Enable enhanced HTML select element"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HTMLEnhancedSelectParsingEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Enhanced HTML select element parsing"
humanReadableDescription: "Enable enhanced HTML select element parsing"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HTMLEnhancedSelectParsingQuirkEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Enhanced HTML select element parsing quirk"
humanReadableDescription: "Enable enhanced HTML select element parsing quirk for specific applications"
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultHTMLEnhancedSelectParsingQuirkEnabled()
default: false
WebKit:
default: false
WebCore:
default: false
HTMLInCanvasEnabled:
type: bool
status: unstable
category: dom
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "HTML-in-Canvas"
humanReadableDescription: "Enable HTML-in-Canvas"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
HTTPEquivEnabled:
type: bool
status: mature
humanReadableName: "http-equiv"
humanReadableDescription: "Enable http-equiv attribute"
webcoreName: httpEquivEnabled
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HTTPSByDefaultEnabled:
type: bool
status: testable
category: security
humanReadableName: "HTTPS-by-default (HTTPS-First)"
humanReadableDescription: "Enable HTTPS-by-default (HTTPS-First)"
webcoreName: httpsByDefault
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
HardwareAccelerationEnabled:
type: bool
status: internal
humanReadableName: "Hardware acceleration"
humanReadableDescription: "Enable hardware acceleration"
condition: PLATFORM(GTK) || ENABLE(WPE_PLATFORM)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HeadingOffsetEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML headingoffset & headingreset attributes"
humanReadableDescription: "Enable HTML headingoffset & headingreset attribute support"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HiddenPageCSSAnimationSuspensionEnabled:
type: bool
status: embedder
webcoreOnChange: hiddenPageCSSAnimationSuspensionEnabledChanged
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
HiddenPageDOMTimerThrottlingAutoIncreases:
type: bool
status: embedder
humanReadableName: "Hidden page DOM timer throttling auto-increases"
webcoreOnChange: hiddenPageDOMTimerThrottlingStateChanged
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
HiddenPageDOMTimerThrottlingEnabled:
type: bool
status: embedder
humanReadableName: "Hidden page DOM timer throttling"
humanReadableDescription: "Enable hidden page DOM timer throttling"
webcoreOnChange: hiddenPageDOMTimerThrottlingStateChanged
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
HiddenUntilFoundEnabled:
type: bool
status: stable
category: html
humanReadableName: "hidden=until-found"
humanReadableDescription: "Enable support for hidden=until-found"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HighlightsFromPointEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS Custom Highlight API: highlightsFromPoint()"
humanReadableDescription: "Enable the CSS Custom Highlight API highlightsFromPoint() method"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
HorizontalBannerViewOverlaysEnabled:
type: bool
status: internal
condition: ENABLE(HORIZONTAL_BANNER_VIEW_OVERLAYS)
humanReadableName: "Horizontal Banner View Overlays"
humanReadableDescription: "Horizontal Banner View Overlays"
defaultValue:
WebKit:
default: WebKit::defaultHorizontalBannerViewOverlaysEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
HostedBlurMaterialInMediaControlsEnabled:
type: bool
status: internal
humanReadableName: "Hosted blur material in media controls"
humanReadableDescription: "Enable hosted blur material in media controls"
condition: HAVE(MATERIAL_HOSTING)
defaultValue:
WebKit:
default: defaultHostedBlurMaterialInMediaControlsEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
ICECandidateFilteringEnabled:
type: bool
status: internal
category: dom
webcoreOnChange: iceCandidateFilteringEnabledChanged
inspectorOverride: true
humanReadableName: "Enable ICE Candidate Filtering"
humanReadableDescription: "Enable ICE Candidate Filtering"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
IFrameResourceMonitorNetworkUsageThresholdForTesting:
type: uint32_t
status: internal
category: networking
condition: ENABLE(CONTENT_EXTENSIONS)
defaultsOverridable: true
humanReadableName: "Frame Resource Monitor Network Usage Threshold For Testing"
humanReadableDescription: "Test override for the iframe resource monitor network usage threshold in bytes (0 means use production default)"
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
IFrameResourceMonitorNetworkUsageThresholdRandomnessForTesting:
type: double
status: internal
category: networking
condition: ENABLE(CONTENT_EXTENSIONS)
humanReadableName: "Frame Resource Monitor Network Usage Threshold Randomness For Testing"
humanReadableDescription: "Test override for the iframe resource monitor network usage threshold randomness factor (only applied when the threshold-for-testing preference is set)"
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
IFrameResourceMonitoringEnabled:
type: bool
status: internal
category: networking
condition: ENABLE(CONTENT_EXTENSIONS)
defaultsOverridable: true
humanReadableName: "Frame Resource Monitoring Support"
humanReadableDescription: "Enable Usage Monitoring of Frame Resource Support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
IFrameResourceMonitoringTestingSettingsEnabled:
type: bool
status: internal
category: networking
condition: ENABLE(CONTENT_EXTENSIONS)
defaultsOverridable: true
humanReadableName: "Frame Resource Monitoring Settings For Testing"
humanReadableDescription: "Use Resource Monitoring Settings for testing"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
IOSurfaceLosslessCompressionEnabled:
type: bool
status: internal
humanReadableName: "IOSurface Lossless Compression"
humanReadableDescription: "Use losslessly compressed IOSurfaces"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"HAVE(LOSSLESS_COMPRESSED_IOSURFACE_CG_SUPPORT)": defaultIOSurfaceLosslessCompressionEnabled()
default: false
WebCore:
default: false
IPAddressAndLocalhostMixedContentUpgradeTestingEnabled:
type: bool
status: testable
category: security
humanReadableName: "Upgrade IP addresses and localhost in mixed content"
humanReadableDescription: "Enable Upgrading IP addresses and localhost in mixed content"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
IPCTestingAPIEnabled:
type: bool
status: internal
category: security
humanReadableName: "IPC Testing API"
humanReadableDescription: "Enable IPC Testing API for JavaScript"
webcoreBinding: none
condition: ENABLE(IPC_TESTING_API)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
IgnoreIframeEmbeddingProtectionsEnabled:
type: bool
status: internal
category: security
humanReadableName: "Ignore iframe Embedding Protections"
humanReadableDescription: "Ignores X-Frame-Options and CSP ancestors"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
IgnoreInvalidMessageWhenIPCTestingAPIEnabled:
type: bool
status: internal
category: security
humanReadableName: "Ignore Invalid IPC Messages For Testing"
humanReadableDescription: "Prevents invalid IPC messages from terminating the caller"
webcoreBinding: none
condition: ENABLE(IPC_TESTING_API)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
ImageAnalysisDuringFindInPageEnabled:
type: bool
status: unstable
humanReadableName: "Image Analysis for Find-in-Page"
humanReadableDescription: "Trigger image analysis when performing Find-in-Page"
condition: ENABLE(IMAGE_ANALYSIS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ImageCaptureEnabled:
type: bool
status: stable
category: media
humanReadableName: "Image Capture API"
humanReadableDescription: "Enable Image Capture API"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
ImageControlsEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "Image Controls"
humanReadableDescription: "Enable image controls"
condition: ENABLE(SERVICE_CONTROLS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ImportDeferEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Import Defer"
humanReadableDescription: "Enable deferred module import."
webcoreBinding: none
jscOptionName: useImportDefer
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
ImportTextEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Import Text"
humanReadableDescription: "Enable text module import."
webcoreBinding: none
jscOptionName: useImportText
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
InactiveMediaCaptureStreamRepromptIntervalInMinutes:
type: double
status: embedder
condition: ENABLE(MEDIA_STREAM)
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: 10
InactiveMediaCaptureStreamRepromptWithoutUserGestureIntervalInMinutes:
type: double
status: embedder
condition: ENABLE(MEDIA_STREAM)
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: defaultInactiveMediaCaptureStreamRepromptWithoutUserGestureIntervalInMinutes()
IncludeIgnoredInCoreAXTree:
type: bool
status: internal
condition: ENABLE(INCLUDE_IGNORED_IN_CORE_AX_TREE)
humanReadableName: "Include ignored elements in core accessibility tree"
humanReadableDescription: "When true, accessibility-is-ignored is not used to build the core, platform-agnostic accessibility tree, and instead is expected to be applied at any platform-exposed layer."
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
IncompleteImageBorderEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
IncrementalPDFLoadingEnabled:
type: bool
status: embedder
condition: HAVE(INCREMENTAL_PDF_APIS)
defaultValue:
WebKitLegacy:
"PLATFORM(MAC)": true
default: false
WebKit:
"PLATFORM(MAC)": true
default: false
WebCore:
"PLATFORM(MAC)": true
default: false
IncrementalRenderingSuppressionTimeout:
type: double
status: embedder
webKitLegacyPreferenceKey: WebKitIncrementalRenderingSuppressionTimeoutInSeconds
webcoreName: incrementalRenderingSuppressionTimeoutInSeconds
defaultValue:
WebKitLegacy:
default: 5
WebKit:
default: 5
WebCore:
default: 5
IndexedDBAPIEnabled:
type: bool
status: embedder
humanReadableName: "IndexedDB API"
humanReadableDescription: "IndexedDB API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
IndexedDBGetAllRecordsAndGetAllOptionsEnabled:
type: bool
category: dom
status: stable
humanReadableName: "IndexedDB getAllRecords() API and IDBGetAllOptions"
humanReadableDescription: "Enable the getAllRecords() API on IDBObjectStore/IDBIndex and enable getAll()/getAllKeys() to accept IDBGetAllOptions and support direction"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
IndexedDBSQLiteMemoryBackingStoreEnabled:
type: bool
status: stable
category: dom
humanReadableName: "IndexedDB SQLite Memory Backing Store"
humanReadableDescription: "Use SQLite in-memory database for ephemeral IndexedDB instead of MemoryIDBBackingStore"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
InlineMediaPlaybackRequiresPlaysInlineAttribute:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultInlineMediaPlaybackRequiresPlaysInlineAttribute()
default: false
WebKit:
default: false
WebCore:
default: false
InputMethodUsesCorrectKeyEventOrder:
type: bool
status: unstable
category: dom
humanReadableName: "Correct key event ordering with composition events"
condition: PLATFORM(MAC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InputTypeColorEnabled:
type: bool
status: mature
humanReadableName: "Color Inputs"
humanReadableDescription: "Enable input elements of type color"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) && !PLATFORM(WATCHOS)": true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InputTypeColorEnhancementsEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML alpha and colorspace attribute support for color inputs"
humanReadableDescription: "Enable HTML alpha and colorspace attribute support for input elements of type color"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) && !PLATFORM(WATCHOS)": true
default: false
WebCore:
"PLATFORM(COCOA) && !PLATFORM(WATCHOS)": true
default: false
sharedPreferenceForWebProcess: true
InputTypeDateEnabled:
type: bool
status: mature
humanReadableName: "Date Input"
humanReadableDescription: "Enable input elements of type date"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InputTypeDateTimeLocalEnabled:
type: bool
status: mature
humanReadableName: "datetime-local Inputs"
humanReadableDescription: "Enable input elements of type datetime-local"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InputTypeMonthEnabled:
type: bool
status: embedder
humanReadableName: "Month Input"
humanReadableDescription: "Enable input elements of type month"
inspectorOverride: true
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InputTypeTimeEnabled:
type: bool
status: mature
humanReadableName: "Time Input"
humanReadableDescription: "Enable input elements of type time"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InputTypeWeekEnabled:
type: bool
status: embedder
humanReadableName: "Week Input"
humanReadableDescription: "Enable input elements of type week"
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY) && !PLATFORM(APPLETV) || PLATFORM(GTK)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
InspectorAttachedHeight:
type: uint32_t
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: 500
InspectorAttachedWidth:
type: uint32_t
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: 750
InspectorAttachmentSide:
type: uint32_t
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: 0
InspectorMaximumResourcesContentSize:
type: uint32_t
status: embedder
defaultValue:
WebKitLegacy:
default: 200
WebKit:
"PLATFORM(WPE)": 50
default: 200
WebCore:
"PLATFORM(WPE)": 50
default: 200
InspectorStartsAttached:
type: bool
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
InspectorSupportsShowingCertificate:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(WIN)": true
default: false
WebCore:
"PLATFORM(COCOA) || PLATFORM(WIN)": true
default: false
InspectorWindowFrame:
type: String
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: '""_str'
InteractionRegionInlinePadding:
type: double
status: embedder
defaultValue:
WebKitLegacy:
default: 4
WebKit:
default: 4
WebCore:
default: 4
InteractionRegionMinimumCornerRadius:
type: double
status: embedder
defaultValue:
WebKitLegacy:
default: 8
WebKit:
default: 8
WebCore:
default: 8
InteractionRegionsEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Interaction Regions"
humanReadableDescription: "Generate and visualize interaction regions"
condition: ENABLE(INTERACTION_REGIONS_IN_EVENT_REGION)
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: false
WebCore:
default: false
# FIXME: This is handled via WebView SPI rather than WebPreferences for WebKitLegacy. We should change the SPI to lookup the WebPreferences value instead.
InteractiveFormValidationEnabled:
type: bool
status: embedder
humanReadableName: "HTML Interactive Form Validation"
humanReadableDescription: "HTML interactive form validation"
webKitLegacyBinding: custom
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
InterruptAudioOnPageVisibilityChangeEnabled:
type: bool
status: embedder
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
default: false
InterruptVideoOnPageVisibilityChangeEnabled:
type: bool
status: embedder
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
default: false
InvisibleAutoplayNotPermitted:
type: bool
status: embedder
webKitLegacyPreferenceKey: InvisibleAutoplayNotPermitted
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
default: false
IsARIANotifyEnabled:
type: bool
status: internal
humanReadableName: "ariaNotify()"
humanReadableDescription: "Enable ariaNotify support"
defaultValue:
WebKitLegacy:
"ENABLE(ARIA_NOTIFY)": true
default: false
WebKit:
"ENABLE(ARIA_NOTIFY)": true
default: false
WebCore:
"ENABLE(ARIA_NOTIFY)": true
default: false
IsAccessibilityIsolatedTreeEnabled:
type: bool
status: embedder
humanReadableName: "Isolated Accessibility Tree Mode"
humanReadableDescription: "Enable an accessibility hierarchy for VoiceOver that can be accessed on a secondary thread for improved performance"
webcoreBinding: DeprecatedGlobalSettings
condition: ENABLE(ACCESSIBILITY_ISOLATED_TREE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(ATSPI)": true
default: false
WebCore:
default: false
IsAriaLiveRegionManagementEnabled:
type: bool
status: internal
humanReadableName: "ARIA Live Regions in WebKit"
humanReadableDescription: "Turn on ARIA live-region management within WebKit"
defaultValue:
WebKitLegacy:
"ENABLE(WEBKIT_MANAGED_LIVE_REGIONS)": true
default: false
WebKit:
"ENABLE(WEBKIT_MANAGED_LIVE_REGIONS)": true
default: false
WebCore:
"ENABLE(WEBKIT_MANAGED_LIVE_REGIONS)": true
default: false
# FIXME: The 'Is' prefix is inconsistent with most other preferences and should be removed.
IsFirstPartyWebsiteDataRemovalDisabled:
type: bool
status: developer
category: privacy
humanReadableName: "Disable Removal of Non-Cookie Data After 7 Days of No User Interaction (ITP)"
humanReadableDescription: "Disable removal of all non-cookie website data after seven days of no user interaction when Intelligent Tracking Prevention is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely.
IsFirstPartyWebsiteDataRemovalLiveOnTestingEnabled:
type: bool
status: developer
category: privacy
humanReadableName: "[ITP Live-On] 1 Hour Timeout For Non-Cookie Data Removal"
humanReadableDescription: "Remove all non-cookie website data after just one hour of no user interaction when Intelligent Tracking Prevention is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely.
IsFirstPartyWebsiteDataRemovalReproTestingEnabled:
type: bool
status: developer
category: privacy
humanReadableName: "[ITP Repro] 30 Second Timeout For Non-Cookie Data Removal"
humanReadableDescription: "Remove all non-cookie website data after just 30 seconds of no user interaction when Intelligent Tracking Prevention is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: The 'Is' prefix is inconsistent with most other preferences and should be removed.
IsSameSiteStrictEnforcementEnabled:
type: bool
status: unstable
category: privacy
humanReadableName: "SameSite strict enforcement (ITP)"
humanReadableDescription: "Enable SameSite strict enforcement to mitigate bounce tracking"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: The 'Is' prefix is inconsistent with most other preferences and should be removed.
IsThirdPartyCookieBlockingDisabled:
type: bool
status: developer
category: privacy
humanReadableName: "Disable Full 3rd-Party Cookie Blocking (ITP)"
humanReadableDescription: "Disable full third-party cookie blocking when Intelligent Tracking Prevention is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
IteratorChunkingEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Iterator Chunking"
humanReadableDescription: "Expose the Iterator.prototype.chunks and Iterator.prototype.windows methods."
webcoreBinding: none
jscOptionName: useIteratorChunking
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
IteratorIncludesEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Iterator Includes"
humanReadableDescription: "Expose the Iterator.includes method."
webcoreBinding: none
jscOptionName: useIteratorIncludes
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
IteratorJoinEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Iterator Join"
humanReadableDescription: "Expose the Iterator.prototype.join method."
webcoreBinding: none
jscOptionName: useIteratorJoin
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
IteratorSequencingEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Iterator Sequencing"
humanReadableDescription: "Expose the Iterator.concat method."
webcoreBinding: none
jscOptionName: useIteratorSequencing
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
ItpDebugModeEnabled:
type: bool
status: developer
category: privacy
humanReadableName: "ITP Debug Mode"
humanReadableDescription: "Intelligent Tracking Prevention Debug Mode"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
JSONSourceTextAccessEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "JSON Source Text Access"
humanReadableDescription: "Expose JSON source text access feature."
webcoreBinding: none
jscOptionName: useJSONSourceTextAccess
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
JSPIEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "JavaScript Promise Integration"
humanReadableDescription: "Enable the implementation of JavaScript Promise Integration."
webcoreBinding: none
jscOptionName: useJSPI
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
JavaScriptCanAccessClipboard:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
JavaScriptCanOpenWindowsAutomatically:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY) || PLATFORM(GTK) || PLATFORM(WPE)": false
default: true
WebCore:
default: false
JavaScriptEnabled:
type: bool
status: mature
humanReadableName: "JavaScript"
humanReadableDescription: "Enable JavaScript"
inspectorOverride: true
webcoreGetter: isScriptEnabled
webcoreName: scriptEnabled
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
# NOTE: Clients should use per-navigation "allowsContentJavaScript" policies instead
JavaScriptMarkupEnabled:
type: bool
status: embedder
webcoreName: scriptMarkupEnabled
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
JavaScriptRuntimeFlags:
type: uint32_t
refinedType: JSC::RuntimeFlags
status: embedder
webKitLegacyPreferenceKey: WebKitJavaScriptRuntimeFlagsPreferenceKey
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: '{ }'
JointIterationEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Joint Iteration"
humanReadableDescription: "Expose the Iterator.zip and Iterator.zipKeyed methods"
webcoreBinding: none
jscOptionName: useJointIteration
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
KeyboardDismissalGestureEnabled:
type: bool
status: internal
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
humanReadableName: "Keyboard Dismissal Gesture"
humanReadableDescription: "Enable the keyboard dismissal gesture"
defaultValue:
WebKit:
"PLATFORM(APPLETV)" : true
default: false
LargeImageAsyncDecodingEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
LargestContentfulPaintEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Largest Contentful Paint"
humanReadableDescription: "Enable Largest Contentful Paint performance entries"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
LayerBasedSVGEngineEnabled:
type: bool
status: unstable
humanReadableName: "Layer-based SVG Engine (LBSE)"
humanReadableDescription: "Enable next-generation layer-based SVG Engine (LBSE)"
webcoreOnChange: layerBasedSVGEngineEnabledChanged
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
LayerBasedSVGEngineForceLayerCreationEnabled:
type: bool
status: internal
humanReadableName: "LBSE: Force layer creation for all SVG renderers"
humanReadableDescription: "Force the layer-based SVG Engine (LBSE) to create a RenderLayer for every SVG renderer (debugging only)"
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
LayoutFallbackWidth:
type: uint32_t
status: embedder
defaultValue:
WebKitLegacy:
default: 980
WebKit:
default: 980
WebCore:
default: 980
LayoutViewportHeightExpansionFactor:
type: double
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: 0
WebKit:
"PLATFORM(WATCHOS) || ENABLE(FLEXIBLE_VIEW_SCALE_FACTOR)" : 1
default: 0
WebCore:
default: 0
LazyIframeLoadingEnabled:
type: bool
status: mature
category: html
humanReadableName: "Lazy iframe loading"
humanReadableDescription: "Enable lazy iframe loading support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
LazyImageLoadingEnabled:
type: bool
status: stable
category: html
humanReadableName: "Lazy image loading"
humanReadableDescription: "Enable lazy image loading support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
LegacyEncryptedMediaAPIEnabled:
type: bool
status: embedder
humanReadableName: "Enable Legacy EME API"
humanReadableDescription: "Enable legacy EME API"
condition: ENABLE(LEGACY_ENCRYPTED_MEDIA)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
LegacyLineLayoutVisualCoverageEnabled:
type: bool
status: internal
category: dom
defaultsOverridable: true
humanReadableName: "Legacy line layout visual coverage"
humanReadableDescription: "Enable legacy line layout visual coverage"
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LegacyOverflowScrollingTouchEnabled:
type: bool
status: internal
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Legacy -webkit-overflow-scrolling property"
humanReadableDescription: "Support the legacy -webkit-overflow-scrolling CSS property"
condition: ENABLE(WEBKIT_OVERFLOW_SCROLLING_CSS_PROPERTY)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
LegacyPluginQuirkForMailSignaturesEnabled:
type: bool
status: internal
humanReadableName: "Quirk to get Mail to load signatures correctly with WebKitLegacy"
humanReadableDescription: "Quirk to get Mail to load signatures correctly with WebKitLegacy"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LegacyWebRTCOfferOptionsEnabled:
type: bool
status: embedder
humanReadableName: "WebRTC Peer Connection Legacy Offer options"
humanReadableDescription: "Enable RTCPeerConnection Legacy offer options (offerToReceiveAudio, offerToReceiveVideo)"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
LimitedMatroskaSupportEnabled:
type: bool
status: developer
category: media
humanReadableName: "Limited Matroska Support"
humanReadableDescription: "Enable H264 and PCM with WebM Player and MediaRecorder"
condition: ENABLE(MEDIA_RECORDER_WEBM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LinearMediaPlayerEnabled:
type: bool
status: internal
category: media
humanReadableName: "Linear Media Player"
humanReadableDescription: "Enable LinearMediaPlayer for fullscreen video"
condition: ENABLE(LINEAR_MEDIA_PLAYER)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultLinearMediaPlayerEnabled()
WebCore:
default: false
LinkPreconnect:
type: bool
status: embedder
webcoreName: linkPreconnectEnabled
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(SERVER_PRECONNECT)": true
default: false
WebCore:
default: false
LinkPreconnectEarlyHintsEnabled:
type: bool
status: stable
category: networking
humanReadableName: "Link rel=preconnect via HTTP early hints"
humanReadableDescription: "Enable link rel=preconnect via early hints"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(SERVER_PRECONNECT)": true
default: false
WebCore:
default: false
LinkPrefetchEnabled:
type: bool
status: testable
category: networking
humanReadableName: "LinkPrefetch"
humanReadableDescription: "Enable LinkedPrefetch"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LinkPreloadEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
LinkSanitizerEnabled:
type: bool
status: unstable
category: networking
humanReadableName: "Link Sanitizer"
humanReadableDescription: "Enable link sanitizer"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ListMarkerPositionedPostLayoutEnabled:
type: bool
status: stable
category: css
humanReadableName: "Position outside list markers after layout"
humanReadableDescription: "Keep an outside list marker as the list item's first child and position it after layout, instead of reparenting it into the descendant that holds the first line box"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
LoadDeferringEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultLoadDeferringEnabled()
default: true
WebKit:
default: true
WebCore:
default: true
LoadWebArchiveWithEphemeralStorageEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Load Web Archive with ephemeral storage"
humanReadableDescription: "Enable loading web archive with ephemeral storage"
condition: ENABLE(WEB_ARCHIVE)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# This only suppresses the network load of the image URL. A cached image will still be rendered if requested.
LoadsImagesAutomatically:
type: bool
status: embedder
webcoreOnChange: imagesEnabledChanged
webKitLegacyPreferenceKey: WebKitDisplayImagesKey
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
LocalFileContentSniffingEnabled:
type: bool
status: internal
category: networking
humanReadableName: "Local File Content Sniffing"
humanReadableDescription: "Enable Local File Content Sniffing"
webKitLegacyPreferenceKey: WebKitLocalFileContentSniffingEnabledPreferenceKey
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LocalNetworkAccessEnabled:
type: bool
status: unstable
category: networking
humanReadableName: "Local Network Access"
humanReadableDescription: "Enable Local Network Access"
webKitLegacyPreferenceKey: WebKitLocalNetworkAccessEnabledPreferenceKey
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LocalStorageEnabled:
type: bool
status: mature
humanReadableName: "Local Storage"
humanReadableDescription: "Enable Local Storage"
webKitLegacyPreferenceKey: WebKitLocalStorageEnabledPreferenceKey
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
LockdownFontParserEnabled:
type: bool
status: stable
humanReadableName: "Lockdown Mode Safe Fonts"
humanReadableDescription: "Try parsing Web fonts with safe font parser in Lockdown Mode"
exposed: [ WebKit ]
category: security
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
LoginStatusAPIEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Login Status API"
humanReadableDescription: "Enable the proposed Login Status API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LoginStatusAPIRequiresWebAuthnEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Require WebAuthn with the Login Status API"
humanReadableDescription: "Require a recent WebAuthn authentication to set login status"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
LogsPageMessagesToSystemConsoleEnabled:
type: bool
status: internal
category: dom
defaultsOverridable: true
humanReadableName: "Log page messages to system console"
humanReadableDescription: "Enable logging page messages to system console"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
LongRunningMediaCaptureStreamRepromptIntervalInHours:
type: double
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: 24
LowPowerVideoAudioBufferSizeEnabled:
type: bool
status: embedder
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
MainContentUserGestureOverrideEnabled:
type: bool
status: embedder
humanReadableName: "Main content user gesture override"
humanReadableDescription: "Enable main content user gesture override"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ManageCaptureStatusBarInGPUProcessEnabled:
type: bool
status: internal
category: media
humanReadableName: "GPU Process: Capture Status Bar management"
humanReadableDescription: "Enable Capture Status Bar management in GPU Process"
condition: ENABLE(MEDIA_STREAM) && PLATFORM(IOS_FAMILY)
defaultValue:
WebKit:
default: WebKit::defaultManageCaptureStatusBarInGPUProcessEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
ManagedMediaSourceEnabled:
type: bool
status: mature
category: media
humanReadableName: "Managed Media Source API"
humanReadableDescription: "Managed Media Source API"
condition: ENABLE(MEDIA_SOURCE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultManagedMediaSourceEnabled()
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
mediaPlaybackRelated: true
ManagedMediaSourceHighThreshold:
type: double
status: embedder
condition: ENABLE(MEDIA_SOURCE)
defaultValue:
WebKit:
default: 30
WebCore:
default: 30
ManagedMediaSourceLowThreshold:
type: double
status: embedder
condition: ENABLE(MEDIA_SOURCE)
defaultValue:
WebKit:
default: 10
WebCore:
default: 10
ManagedMediaSourceNeedsAirPlay:
type: bool
status: mature
category: media
humanReadableName: "Managed Media Source Requires AirPlay source"
humanReadableDescription: "Managed Media Source Requires AirPlay source"
condition: ENABLE(MEDIA_SOURCE) && ENABLE(WIRELESS_PLAYBACK_TARGET)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultManagedMediaSourceNeedsAirPlay()
WebCore:
default: false
MathFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitMathFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '""_str'
WebKit:
default: '""_str'
WebCore:
default: '""_str'
MathMLDisableHrefOnNonAnchorElement:
type: bool
status: testable
category: dom
humanReadableName: "Disable href attribute on MathML elements"
humanReadableDescription: "The only MathML element on which href is allowed is <a>."
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MathMLEnabled:
type: bool
status: embedder
condition: ENABLE(MATHML)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
MaxParseDuration:
type: double
status: embedder
webKitLegacyPreferenceKey: WebKitMaxParseDurationPreferenceKey
defaultValue:
WebKitLegacy:
default: -1
WebKit:
default: -1
WebCore:
default: -1
MediaAudioCodecIDsAllowedInLockdownMode:
type: String
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: '"aac ,zaac,qaac,caac,.mp3,mp4a"_str'
MediaCapabilitiesEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
# FIXME: This is on by default in WebKit2. Perhaps we should consider turning it on for WebKitLegacy as well.
MediaCapabilitiesExtensionsEnabled:
type: bool
status: mature
category: media
humanReadableName: "Media Capabilities Extensions"
humanReadableDescription: "Media Capabilities Extensions"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
MediaCapabilityGrantsEnabled:
type: bool
status: embedder
condition: ENABLE(EXTENSION_CAPABILITIES)
humanReadableName: "Media Capability Grants"
humanReadableDescription: "Enable granting and revoking of media capabilities"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY_SIMULATOR)": false
default: true
WebCore:
"PLATFORM(IOS_FAMILY_SIMULATOR)": false
default: true
sharedPreferenceForWebProcess: true
MediaCaptionFormatTypesAllowedInLockdownMode:
type: String
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: '"c608,wvtt"_str'
MediaCaptureRequiresSecureConnection:
type: bool
status: internal
category: media
inspectorOverride: true
humanReadableName: "Limit Media Capture to Secure Sites"
humanReadableDescription: "Limit Media Capture to Secure Sites"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
MediaCodecTypesAllowedInLockdownMode:
type: String
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: '"mp4a.40,avc1"_str'
MediaContainerTypesAllowedInLockdownMode:
type: String
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: '"video/mp4,audio/mp4,video/x-m4v,audio/x-m4a,audio/mp3,application/x-mpegURL,application/vnd.apple.mpegURL,video/mp2t,video/iso.segment,audio/aac,audio/mpeg,audio/ac3,audio/eac3,video/mpeg2,text/vtt"_str'
MediaContentTypesRequiringHardwareSupport:
type: String
status: embedder
webcoreExcludeFromInternalSettings: true
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '""_str'
WebKit:
default: '""_str'
WebCore:
default: '""_str'
MediaControlsContextMenusEnabled:
type: bool
status: embedder
condition: ENABLE(MEDIA_CONTROLS_CONTEXT_MENUS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
MediaControlsMacInlineSizeSpecsEnabled:
type: bool
status: preview
category: media
humanReadableName: "Mac Inline Media Controls Specs"
humanReadableDescription: "Adopt new size specs for media controls"
condition: HAVE(MATERIAL_HOSTING)
defaultValue:
WebKit:
default: defaultHostedBlurMaterialInMediaControlsEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
MediaControlsScaleWithPageZoom:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: true
MediaDataLoadsAutomatically:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
"PLATFORM(IOS_FAMILY)": false
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
MediaDevicesEnabled:
type: bool
status: embedder
humanReadableName: "Media devices"
humanReadableDescription: "Enable media devices"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
disableInLockdownMode: true
MediaEnabled:
type: bool
status: embedder
humanReadableName: "HTML Media Elements"
humanReadableDescription: "Enable HTML media elements <audio>, <video> and <track>"
condition: ENABLE(VIDEO)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
MediaPlaybackEnabled:
type: bool
status: embedder
humanReadableName: "Media Playback Functionalities"
humanReadableDescription: "Enable media playback functionalities"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
MediaPreferredFullscreenWidth:
type: double
status: embedder
defaultValue:
WebKitLegacy:
default: 960
WebKit:
default: 960
WebCore:
default: 960
MediaPreloadingEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
MediaRecorderEnabled:
type: bool
status: mature
category: media
humanReadableName: "MediaRecorder"
humanReadableDescription: "MediaRecorder"
condition: ENABLE(MEDIA_RECORDER)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
"USE(GSTREAMER)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
mediaPlaybackRelated: true
MediaRecorderEnabledWebM:
type: bool
status: stable
category: media
humanReadableName: "MediaRecorder WebM"
humanReadableDescription: "Enable WebM support with MediaRecorder"
condition: ENABLE(MEDIA_RECORDER_WEBM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
MediaSessionCaptureToggleAPIEnabled:
type: bool
status: stable
category: media
humanReadableName: "MediaSession capture related API"
humanReadableDescription: "Enable MediaSession capture related API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
MediaSessionCoordinatorEnabled:
type: bool
status: mature
category: media
humanReadableName: "Experimental MediaSession coordinator API"
humanReadableDescription: "Enable experimental MediaSession coordinator API"
condition: ENABLE(MEDIA_SESSION_COORDINATOR)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: WebKit::defaultMediaSessionCoordinatorEnabled()
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
mediaPlaybackRelated: true
MediaSessionEnabled:
type: bool
status: mature
humanReadableName: "Media Session API"
humanReadableDescription: "Media Session API"
condition: ENABLE(MEDIA_SESSION)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
MediaSessionExtendedActionsEnabled:
type: bool
status: testable
category: media
humanReadableName: "MediaSession extended actions"
humanReadableDescription: "Enable MediaSession hangup, previousslide, nextslide, and enterpictureinpicture actions"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MediaSessionPlaylistEnabled:
type: bool
status: mature
category: media
humanReadableName: "Experimental MediaSession playlist API"
humanReadableDescription: "Enable experimental MediaSession playlist API"
condition: ENABLE(MEDIA_SESSION_COORDINATOR) && ENABLE(MEDIA_SESSION_PLAYLIST)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultMediaSessionCoordinatorEnabled()
WebCore:
default: true
MediaSourceEnabled:
type: bool
status: embedder
category: media
humanReadableName: "Media Source API"
humanReadableDescription: "Media Source API"
defaultValue:
WebKitLegacy:
"ENABLE(MEDIA_SOURCE) && PLATFORM(IOS_FAMILY)": WebKit::defaultMediaSourceEnabled()
"ENABLE(MEDIA_SOURCE) && !PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"ENABLE(MEDIA_SOURCE) && PLATFORM(IOS_FAMILY)": WebKit::defaultMediaSourceEnabled()
"ENABLE(MEDIA_SOURCE) && !PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
"ENABLE(MEDIA_SOURCE)": true
default: false
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
MediaSourceInWorkerEnabled:
type: bool
status: stable
category: media
humanReadableName: "MediaSource in a Worker"
humanReadableDescription: "MediaSource in a Worker"
condition: ENABLE(MEDIA_SOURCE_IN_WORKERS)
exposed: [ WebCore, WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
mediaPlaybackRelated: true
MediaSourcePrefersDecompressionSession:
type: bool
status: stable
category: media
humanReadableName: "MediaSource prefers DecompressionSession"
humanReadableDescription: "MediaSource prefers DecompressionSession"
condition: ENABLE(MEDIA_SOURCE) && USE(AVFOUNDATION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultMediaSourcePrefersDecompressionSession()
WebCore:
default: true
sharedPreferenceForWebProcess: true
MediaStreamTrackHandleEnabled:
type: bool
status: preview
category: media
humanReadableName: "MediaStreamTrackHandle"
humanReadableDescription: "Enable MediaStreamTrackHandle"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MediaStreamTrackProcessingEnabled:
type: bool
status: mature
category: media
humanReadableName: "MediaStreamTrack Processing"
humanReadableDescription: "Enable MediaStreamTrack Processing"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
MediaUserGestureInheritsFromDocument:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MediaVideoCodecIDsAllowedInLockdownMode:
type: String
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: '"avc1,zavc,qavc,cavc"_str'
MetaViewportInteractiveWidgetEnabled:
type: bool
status: stable
category: css
humanReadableName: "Meta Viewport Interactive Widget"
humanReadableDescription: "Enable the interactive-widget attribute on the viewport meta element"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
MinimumFontSize:
type: double
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
MinimumLogicalFontSize:
type: double
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: 9
WebKit:
default: 9
WebCore:
default: 0
MinimumZoomFontSize:
type: double
status: embedder
webKitLegacyPreferenceKey: WebKitMinimumZoomFontSizePreferenceKey
condition: ENABLE(TEXT_AUTOSIZING)
defaultValue:
WebKitLegacy:
default: 15
WebKit:
"PLATFORM(WATCHOS)": 30
default: 15
WebCore:
"PLATFORM(WATCHOS)": 30
default: 15
MockCaptureDevicesEnabled:
type: bool
status: internal
category: media
webcoreOnChange: mockCaptureDevicesEnabledChanged
inspectorOverride: true
condition: ENABLE(MEDIA_STREAM)
humanReadableName: "Enable Mock Capture Devices"
humanReadableDescription: "Enable Mock Capture Devices"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebCore:
default: false
MockCaptureDevicesPromptEnabled:
type: bool
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
MockScrollbarsControllerEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MockScrollbarsEnabled:
type: bool
status: embedder
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
ModelDocumentEnabled:
type: bool
status: testable
category: html
humanReadableName: "HTML <model> elements for stand-alone document"
humanReadableDescription: "Enable HTML <model> element for model documents"
condition: ENABLE(MODEL_ELEMENT)
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
ModelElementEnabled:
type: bool
status: Modelelement_feature_status
category: html
humanReadableName: "HTML <model> element"
humanReadableDescription: "Enable HTML <model> element"
condition: ENABLE(MODEL_ELEMENT)
defaultValue:
WebKitLegacy:
"(PLATFORM(VISION) || ENABLE(GPU_PROCESS_MODEL)) && ENABLE(MODEL_ELEMENT)": true
default: false
WebKit:
"(PLATFORM(VISION) || ENABLE(GPU_PROCESS_MODEL)) && ENABLE(MODEL_ELEMENT)": true
default: false
WebCore:
"(PLATFORM(VISION) || ENABLE(GPU_PROCESS_MODEL)) && ENABLE(MODEL_ELEMENT)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
ModelElementImmersiveEnabled:
type: bool
status: stable
category: javascript
condition: ENABLE(MODEL_ELEMENT_IMMERSIVE)
humanReadableName: "Immersive <model> API"
humanReadableDescription: "Enable <model> element immersive API"
defaultValue:
WebKitLegacy:
"ENABLE(MODEL_ELEMENT_IMMERSIVE)": true
default: false
WebKit:
"ENABLE(MODEL_ELEMENT_IMMERSIVE)": true
default: false
WebCore:
"ENABLE(MODEL_ELEMENT_IMMERSIVE)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
ModelNoPortalAttributeEnabled:
type: bool
status: unstable
condition: PLATFORM(VISION) && ENABLE(MODEL_PROCESS)
humanReadableName: "Model noportal attribute"
humanReadableDescription: "Enable Model noportal attribute support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
disableInLockdownMode: true
ModelProcessEnabled:
type: bool
status: stable
category: dom
condition: ENABLE(MODEL_PROCESS)
humanReadableName: "Enable Model Process"
humanReadableDescription: "Load <model> content in a separate process"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
MomentumScrollingAnimatorEnabled:
type: bool
status: internal
humanReadableName: "Momentum Scrolling Animator"
humanReadableDescription: "Generate momentum events in WebKit instead of using those delivered by the system"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
MoreCurrencyDisplayChoicesEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "More Currency Display Choices"
humanReadableDescription: "Enable more currencyDisplay choices for Intl.NumberFormat"
webcoreBinding: none
jscOptionName: useMoreCurrencyDisplayChoices
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
MouseEventsSimulationEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Mouse events simulation"
humanReadableDescription: "Enable mouse events dispatch along with touch events on iOS"
condition: ENABLE(TOUCH_EVENTS) || ENABLE(TOUCH_EVENT_REGIONS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MoveBeforeEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "DOM moveBefore()"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MultiProcessBackForwardCacheEnabled:
type: bool
status: testable
category: security
humanReadableName: "Multi-Process Back/Forward Cache"
humanReadableDescription: "Enable back/forward cache when site isolation is active"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
MutationEventsEnabled:
type: bool
status: testable
category: dom
humanReadableName: "DOM mutation events"
defaultValue:
WebKitLegacy:
default: WebKit::defaultMutationEventsEnabled()
WebKit:
default: WebKit::defaultMutationEventsEnabled()
WebCore:
default: false
MuteCameraOnMicrophoneInterruptionEnabled:
type: bool
status: internal
category: media
humanReadableName: "Mute Camera on Microphone Interruption"
humanReadableDescription: "Mute Camera on Microphone Interruption"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
default: false
NavigationAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Navigation API"
humanReadableDescription: "Enable Navigation API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
NavigationAPIPrecommitHandlerEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Navigation API Precommit Handler"
humanReadableDescription: "Enable Navigation API Precommit Handler"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
NavigatorUserAgentDataJavaScriptAPIEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Navigator userAgentData JavaScript API"
humanReadableDescription: "Enable the navigator.userAgentData JavaScript API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
NavigatorWebDriverActivePolicy:
type: uint32_t
refinedType: WebCore::NavigatorWebDriverActivePolicy
status: embedder
defaultValue:
WebKitLegacy:
default: static_cast<uint32_t>(WebCore::NavigatorWebDriverActivePolicy::Auto)
WebKit:
default: static_cast<uint32_t>(WebCore::NavigatorWebDriverActivePolicy::Auto)
WebCore:
default: NavigatorWebDriverActivePolicy::Auto
NeedsAdobeFrameReloadingQuirk:
comment: '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.'
type: bool
status: embedder
webcoreGetter: needsAcrobatFrameReloadingQuirk
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultNeedsAdobeFrameReloadingQuirk()
default: false
WebKit:
default: false
WebCore:
default: false
NeedsFrameNameFallbackToIdQuirk:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultNeedsFrameNameFallbackToIdQuirk()
default: false
WebKit:
default: false
WebCore:
default: false
NeedsInAppBrowserPrivacyQuirks:
type: bool
status: internal
category: dom
defaultsOverridable: true
humanReadableName: "Needs In-App Browser Privacy Quirks"
humanReadableDescription: "Enable quirks needed to support In-App Browser privacy"
webcoreBinding: none
exposed: [ WebKit ]
condition: ENABLE(APP_BOUND_DOMAINS)
defaultValue:
WebKit:
default: false
NeedsKeyboardEventDisambiguationQuirks:
comment: 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.
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultNeedsKeyboardEventDisambiguationQuirks()
default: false
WebKit:
default: false
WebCore:
default: false
NeedsSiteSpecificQuirks:
type: bool
status: embedder
humanReadableName: "Needs Site-Specific Quirks"
humanReadableDescription: "Enable site-specific quirks"
webKitLegacyPreferenceKey: WebKitUseSiteSpecificSpoofing
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
NeedsStorageAccessFromFileURLsQuirk:
type: bool
status: embedder
humanReadableName: "Needs storage access from file URLs quirk"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
NotificationEventEnabled:
type: bool
status: internal
category: dom
humanReadableName: "NotificationEvent support"
humanReadableDescription: "NotificationEvent and ServiceWorkerRegistration.showNotification() support"
condition: ENABLE(NOTIFICATION_EVENT)
defaultValue:
WebCore:
"ENABLE(NOTIFICATION_EVENT) && !PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"ENABLE(NOTIFICATION_EVENT) && !PLATFORM(IOS_FAMILY)": true
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
NotificationsEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Notifications"
humanReadableDescription: "Enable the Notifications API"
condition: ENABLE(NOTIFICATIONS)
inspectorOverride: true
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
"PLATFORM(IOS_FAMILY)": false
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
ObservableEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Observable API"
humanReadableDescription: "Support for the Observable API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
OffscreenCanvasEnabled:
type: bool
status: stable
category: dom
humanReadableName: "OffscreenCanvas"
humanReadableDescription: "Support for the OffscreenCanvas APIs"
condition: ENABLE(OFFSCREEN_CANVAS)
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
OffscreenCanvasInWorkersEnabled:
type: bool
status: stable
category: dom
humanReadableName: "OffscreenCanvas in Workers"
humanReadableDescription: "Support for the OffscreenCanvas APIs in Workers"
condition: ENABLE(OFFSCREEN_CANVAS_IN_WORKERS)
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
OpenPseudoClassEnabled:
type: bool
status: stable
humanReadableName: ":open pseudo-class"
humanReadableDescription: "Enable the :open CSS pseudo-class"
category: css
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
OpenXRDMABufRelaxedForTesting:
type: bool
status: internal
humanReadableName: "OpenXR DMA-BUF requirement relaxed for testing"
humanReadableDescription: "During testing, allows relaxing the requirement that the GL display used by the OpenXR coordinator has MESA_image_dma_buf_export"
webcoreBinding: none
condition: ENABLE(DEVELOPER_MODE) && USE(OPENXR)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
# FIXME: Reenable this on iOS once we can mitigate impact on memory use.
OpportunisticSweepingAndGarbageCollectionEnabled:
type: bool
status: internal
humanReadableName: "Opportunistic Sweeping and GC"
humanReadableDescription: "Enable Opportunistic Sweeping and GC"
category: javascript
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
OptInPartitionedCookiesEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Opt-in partitioned cookies (CHIPS)"
humanReadableDescription: "Enable opt-in partitioned cookies"
condition: ENABLE(OPT_IN_PARTITIONED_COOKIES)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
OriginAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Origin API"
humanReadableDescription: "Enable the Origin API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
OriginAgentClusterEnabled:
type: bool
status: stable
category: security
humanReadableName: "Origin-Agent-Cluster header"
humanReadableDescription: "Support for the Origin-Agent-Cluster HTTP response header and window.originAgentCluster getter"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
OverlayRegionsEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Overlay Regions"
humanReadableDescription: "Generate and visualize overlay regions"
condition: ENABLE(OVERLAY_REGIONS_IN_EVENT_REGION)
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
OverscrollBehaviorEnabled:
type: bool
status: stable
category: css
humanReadableName: "CSS Overscroll Behavior"
humanReadableDescription: "Enable CSS overscroll-behavior"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(WIN)": false
default: true
WebCore:
"PLATFORM(WIN)": false
default: true
PDFJSViewerEnabled:
type: bool
status: testable
category: html
humanReadableName: "Enable PDF.js viewer"
humanReadableDescription: "Enable PDF.js viewer"
condition: ENABLE(PDFJS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
disableInLockdownMode: true
PDFPluginEnabled:
type: bool
status: embedder
condition: PLATFORM(COCOA)
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: false
PDFPluginHUDEnabled:
type: bool
status: embedder
condition: PLATFORM(COCOA)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: false
PDFPluginPageNumberIndicatorEnabled:
type: bool
status: embedder
condition: ENABLE(PDF_PAGE_NUMBER_INDICATOR)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
PageVisibilityBasedProcessSuppressionEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Page visibility-based process suppression"
humanReadableDescription: "Enable page visibility-based process suppression"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
PassiveTouchListenersAsDefaultOnDocument:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultPassiveTouchListenersAsDefaultOnDocument()
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": WebKit::defaultPassiveTouchListenersAsDefaultOnDocument()
default: true
WebCore:
default: true
PassiveWheelListenersAsDefaultOnDocument:
type: bool
status: embedder
humanReadableName: "Wheel Event listeners on the root made passive"
humanReadableDescription: "Force wheel event listeners registered on the window, document or body to be passive"
defaultValue:
WebKitLegacy:
"PLATFORM(MAC)": WebKit::defaultPassiveWheelListenersAsDefaultOnDocument()
default: true
WebKit:
"PLATFORM(MAC)": WebKit::defaultPassiveWheelListenersAsDefaultOnDocument()
default: true
WebCore:
default: true
PasswordEchoDuration:
type: double
status: embedder
webKitLegacyPreferenceKey: WebKitPasswordEchoDurationPreferenceKey
webcoreName: passwordEchoDurationInSeconds
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": 2
default: 1
WebKit:
default: 2
WebCore:
default: 1
PasswordEchoEnabled:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitEnablePasswordEchoPreferenceKey
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY) && !PLATFORM(MACCATALYST)": true
default: false
WebCore:
default: false
PeerConnectionEnabled:
type: bool
status: embedder
humanReadableName: "WebRTC Peer Connection"
humanReadableDescription: "Enable RTCPeerConnection"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
"USE(LIBWEBRTC)": WebKit::defaultPeerConnectionEnabledAvailable()
default: false
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
mediaPlaybackRelated: true
PeerConnectionVideoScalingAdaptationDisabled:
type: bool
status: embedder
humanReadableName: "WebRTC Peer Connection Video Scaling Adaptation"
humanReadableDescription: "Disable RTCPeerConnection Video Scaling Adaptation"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
PerElementSpeakerSelectionEnabled:
type: bool
status: internal
category: media
humanReadableName: "Allow per media element speaker device selection"
humanReadableDescription: "Allow per media element speaker device selection"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
"PLATFORM(COCOA)": true
"PLATFORM(WPE)": true
"PLATFORM(GTK)": true
default: false
WebCore:
"PLATFORM(WPE)": true
"PLATFORM(GTK)": true
default: false
PermissionsAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Permissions API"
humanReadableDescription: "Enable Permissions API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || PLATFORM(WIN)" : true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
PhotoPickerPrefersOriginalImageFormat:
type: bool
status: internal
humanReadableName: "Photo Picker Prefers Original Image Format"
humanReadableDescription: "Prefer the original image format when selecting photos for file upload"
webcoreBinding: none
condition: HAVE(PHOTOS_UI)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
PictographFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitPictographFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": '"AppleColorEmoji"_str'
default: '"Apple Color Emoji"_str'
WebKit:
"PLATFORM(COCOA) && PLATFORM(IOS_FAMILY)": '"AppleColorEmoji"_str'
"PLATFORM(COCOA) && !PLATFORM(IOS_FAMILY)": '"Apple Color Emoji"_str'
default: '"Times"_str'
WebCore:
default: '""_str'
PictureInPictureAPIEnabled:
type: bool
status: embedder
condition: ENABLE(PICTURE_IN_PICTURE_API)
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)": false
default: false
WebKit:
"PLATFORM(VISION)": false
default: true
WebCore:
"PLATFORM(VISION)": false
default: true
disableInLockdownMode: true
PictureInPicturePlaybackStateEnabled:
type: bool
status: internal
humanReadableName: "Picture-in-Picture Playback State Enabled"
humanReadableDescription: "Picture-in-Picture Playback State Enabled"
condition: HAVE(PIP_SKIP_PREROLL)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
disableInLockdownMode: true
PitchCorrectionAlgorithm:
type: uint32_t
refinedType: WebCore::MediaPlayerEnums::PitchCorrectionAlgorithm
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": static_cast<uint32_t>(WebCore::MediaPlayerEnums::PitchCorrectionAlgorithm::BestForSpeech)
default: static_cast<uint32_t>(WebCore::MediaPlayerEnums::PitchCorrectionAlgorithm::BestAllAround)
WebKit:
"PLATFORM(COCOA)": static_cast<uint32_t>(WebCore::MediaPlayerEnums::PitchCorrectionAlgorithm::BestForSpeech)
default: static_cast<uint32_t>(WebCore::MediaPlayerEnums::PitchCorrectionAlgorithm::BestAllAround)
WebCore:
default: MediaPlayerEnums::PitchCorrectionAlgorithm::BestAllAround
PointerLockEnabled:
type: bool
status: internal
category: dom
condition: ENABLE(POINTER_LOCK)
humanReadableName: "Pointer Lock API"
humanReadableDescription: "Enable the Pointer Lock API"
inspectorOverride: true
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": false
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: false
PopoverAttributeEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML popover attribute"
humanReadableDescription: "Enable HTML popover attribute support"
defaultValue:
WebKitLegacy:
default: WebKit::defaultPopoverAttributeEnabled()
WebKit:
default: WebKit::defaultPopoverAttributeEnabled()
WebCore:
default: true
PopoverHintEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML popover hint type"
humanReadableDescription: "Enable popover='hint' type support"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
PreferFasterClickOverDoubleTap:
type: bool
status: internal
category: dom
humanReadableName: "Fast clicks beat DTTZ"
humanReadableDescription: "Prefer a faster click over a double tap"
webcoreBinding: none
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
"PLATFORM(IOS_FAMILY) && !PLATFORM(WATCHOS)": true
default: false
PreferPageRenderingUpdatesNear60FPSEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Prefer Page Rendering Updates near 60fps"
humanReadableDescription: "Prefer page rendering updates near 60 frames per second rather than using the display's refresh rate"
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)": false
default: true
WebKit:
"PLATFORM(VISION)": false
default: true
WebCore:
"PLATFORM(VISION)": false
default: true
PreferSpatialAudioExperience:
type: bool
status: internal
category: media
condition: HAVE(SPATIAL_AUDIO_EXPERIENCE)
humanReadableName: "Prefer Spatial Audio Experience over Spatial Tracking Labels"
humanReadableDescription: "Prefer Spatial Audio Experience over Spatial Tracking Labels"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultPreferSpatialAudioExperience()
WebCore:
default: false
defaultsOverridable: true
sharedPreferenceForWebProcess: true
PrivateClickMeasurementDebugModeEnabled:
type: bool
status: developer
category: privacy
humanReadableName: "Private Click Measurement Debug Mode"
humanReadableDescription: "Enable Private Click Measurement Debug Mode"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
PrivateClickMeasurementEnabled:
type: bool
status: embedder
humanReadableName: "Private Click Measurement"
humanReadableDescription: "Enable Private Click Measurement for Cross-Site Link Navigations"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
PrivateClickMeasurementFraudPreventionEnabled:
type: bool
status: stable
category: privacy
humanReadableName: "Private Click Measurement Fraud Prevention"
humanReadableDescription: "Enable Private Click Measurement Fraud Prevention"
defaultValue:
WebKit:
"HAVE(RSA_BSSA)": true
default: false
WebCore:
"HAVE(RSA_BSSA)": true
default: false
PrivateTokenUsageByThirdPartyEnabled:
type: bool
status: stable
category: privacy
humanReadableName: "Private Token usage by third party"
humanReadableDescription: "Enable private token usage by third party"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ProcessSwapOnCrossSiteNavigationEnabled:
type: bool
status: stable
category: networking
humanReadableName: "Swap Processes on Cross-Site Navigation"
humanReadableDescription: "Swap WebContent Processes on cross-site navigations"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
"PLATFORM(PLAYSTATION)": false
default: true
PromiseIsPromiseEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "Promise.isPromise"
humanReadableDescription: "Expose the Promise.isPromise method."
webcoreBinding: none
jscOptionName: usePromiseIsPromise
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
PropagateDamagingInformation:
type: bool
status: testable
category: dom
humanReadableName: "Propagate Damaging Information"
humanReadableDescription: "Propagate Damaging Information"
condition: ENABLE(DAMAGE_TRACKING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
PunchOutWhiteBackgroundsInDarkMode:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
PushAPIEnabled:
type: bool
status: embedder
category: dom
humanReadableName: "Push API"
humanReadableDescription: "Enable Push API"
inspectorOverride: true
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
RTCEncodedStreamsQuirkEnabled:
type: bool
status: internal
humanReadableName: "RTC Encoded Streams Quirk"
humanReadableDescription: "Enable RTC Encoded Streams Quirk"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultRTCEncodedStreamsQuirkEnabled()
WebCore:
default: false
ReadableByteStreamAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "ReadableByteStream"
humanReadableDescription: "Enable Readable Byte Streams"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
ReadableByteStreamFetchSourceEnabled:
type: bool
status: stable
category: dom
humanReadableName: "ReadableByteStream for fetch API"
humanReadableDescription: "Enable Readable Byte Streams for fetch API"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
ReadableStreamFromEnabled:
type: bool
status: stable
category: dom
humanReadableName: "ReadableStream.from"
humanReadableDescription: "Enable ReadableStream.from"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
ReadableStreamIterableEnabled:
type: bool
status: stable
category: dom
humanReadableName: "ReadableStream async iterable"
humanReadableDescription: "Enable ReadableStream async iterable"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
ReadableStreamTransferEnabled:
type: bool
status: stable
category: dom
humanReadableName: "ReadableStream/WritableStream/TransformStream transfer"
humanReadableDescription: "Enable ReadableStream/WritableStream/TransformStream transfer"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
RegExpBufferBoundariesEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "RegExp Buffer Boundaries"
humanReadableDescription: "Allow the use in regular expressions of \\\\A, \\\\z and \\\\Z from the RegExp Buffer Boundaries proposal"
webcoreBinding: none
jscOptionName: useRegExpBufferBoundaries
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
RemoteMediaSessionManagerEnabled:
type: bool
status: unstable
category: media
humanReadableName: "Remote MediaSessionManager"
humanReadableDescription: "Enable MediaSessionManager in the UI process"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
# FIXME: This is on by default in WebKit2. Perhaps we should consider turning it on for WebKitLegacy as well.
RemotePlaybackEnabled:
type: bool
status: mature
humanReadableName: "Remote Playback API"
humanReadableDescription: "Enable Remote Playback API"
condition: ENABLE(WIRELESS_PLAYBACK_TARGET)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(VISION)" : false
default: true
WebCore:
"PLATFORM(VISION)" : false
default: true
disableInLockdownMode: true
RemoteSnapshottingEnabled:
type: bool
status: testable
category: media
humanReadableName: "Remote Snapshotting"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
RemoveBackgroundEnabled:
type: bool
# FIXME: Change to "embedder" when there is a way to enable/disable embedder features from API tests.
status: internal
category: dom
humanReadableName: "Remove Background"
humanReadableDescription: "Enable Remove Background"
condition: ENABLE(IMAGE_ANALYSIS)
exposed: [ WebKit ]
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: defaultRemoveBackgroundEnabled()
ReplayCGDisplayListsIntoBackingStore:
type: bool
status: internal
humanReadableName: "Dynamic Content Scaling: Replay for Testing"
humanReadableDescription: "Replay Dynamic Content Scaling Display Lists into layer contents for testing"
webcoreBinding: none
condition: ENABLE(RE_DYNAMIC_CONTENT_SCALING)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
RequestIdleCallbackEnabled:
type: bool
status: testable
category: dom
humanReadableName: "requestIdleCallback"
humanReadableDescription: "Enable requestIdleCallback support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
RequestStorageAccessThrowsExceptionUntilReload:
type: bool
status: unstable
category: dom
humanReadableName: "requestStorageAccess throws execption until reload"
humanReadableDescription: "requestStorageAccess throws execption until reload"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
RequestVideoFrameCallbackEnabled:
type: bool
status: mature
category: media
humanReadableName: "RequestVideoFrameCallback"
humanReadableDescription: "Enable RequestVideoFrameCallback API"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA) && HAVE(AVSAMPLEBUFFERVIDEOOUTPUT)" : true
default: false
WebKit:
"PLATFORM(COCOA) && HAVE(AVSAMPLEBUFFERVIDEOOUTPUT)" : true
"USE(GSTREAMER)": true
default: false
WebCore:
"PLATFORM(COCOA) && HAVE(AVSAMPLEBUFFERVIDEOOUTPUT)" : true
"USE(GSTREAMER)": true
default: false
RequiresPageVisibilityForVideoToBeNowPlaying:
type: bool
status: embedder
condition: ENABLE(REQUIRES_PAGE_VISIBILITY_FOR_NOW_PLAYING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultRequiresPageVisibilityForVideoToBeNowPlaying()
WebCore:
default: false
RequiresPageVisibilityToPlayAudio:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
RequiresUserGestureForAudioPlayback:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitAudioPlaybackRequiresUserGesture
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
PLATFORM(IOS_FAMILY): true
default: false
RequiresUserGestureForMediaPlayback:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitMediaPlaybackRequiresUserGesture
webcoreBinding: none
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
default: false
RequiresUserGestureForVideoPlayback:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitVideoPlaybackRequiresUserGesture
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
RequiresUserGestureToLoadVideo:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultRequiresUserGestureToLoadVideo()
default: false
WebKit:
default: false
WebCore:
"PLATFORM(IOS_FAMILY)": true
default: false
ResourceLoadSchedulingEnabled:
type: bool
status: internal
category: networking
humanReadableName: "Resource Load Scheduling"
humanReadableDescription: "Network process side priority and visibility based resource load scheduling"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ResourceUsageOverlayVisible:
type: bool
status: internal
category: networking
defaultsOverridable: true
humanReadableName: "Resource usage overlay"
humanReadableDescription: "Make resource usage overlay visible"
condition: ENABLE(RESOURCE_USAGE)
webcoreOnChange: resourceUsageOverlayVisibleChanged
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
RespondToThermalPressureAggressively:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Respond to thermal pressure aggressively"
humanReadableDescription: "Enable responding to thermal pressure aggressively"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
RubberBandingForSubScrollableRegionsEnabled:
type: bool
status: embedder
condition: HAVE(RUBBER_BANDING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
SKAttributionEnabled:
type: bool
status: embedder
humanReadableName: "SKAttribution"
humanReadableDescription: "SKAttribution"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
SVGExternalResourcesEnabled:
type: bool
status: preview
category: css
humanReadableName: "SVG external resources"
humanReadableDescription: "Enable referencing SVG resources (paint servers, etc.) via external or data: URLs"
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
SWVPDecodersAlwaysEnabled:
type: bool
status: internal
category: media
humanReadableName: "Always enable VPx software decoders"
humanReadableDescription: "Always enable VPx software decoders"
webcoreBinding: none
condition: ENABLE(VP9)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY_SIMULATOR)": true
default: false
WebCore:
default: false
SafeBrowsingEnabled:
type: bool
status: embedder
humanReadableName: "Safe Browsing"
humanReadableDescription: "Enable Safe Browsing"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
SampledPageTopColorMaxDifference:
type: double
status: embedder
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
SampledPageTopColorMinHeight:
type: double
status: embedder
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
SansSerifFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitSansSerifFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '"Helvetica"_str'
WebKit:
default: '"Helvetica"_str'
WebCore:
default: '""_str'
ScopedCustomElementRegistryEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Scoped custom element registry"
humanReadableDescription: "Enable scoped custom element registry"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
# FIXME: This should have it's own ENABLE.
ScreenCaptureEnabled:
type: bool
status: mature
category: media
condition: ENABLE(MEDIA_STREAM)
humanReadableName: "ScreenCapture"
humanReadableDescription: "Enable ScreenCapture"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultShouldEnableScreenCapture()
WebCore:
default: false
ScreenOrientationAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Screen Orientation API"
humanReadableDescription: "Enable Screen Orientation API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultShouldEnableScreenOrientationAPI()
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
ScreenOrientationLockingAPIEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Screen Orientation API (Locking / Unlocking)"
humanReadableDescription: "Enable Screen Orientation API (Locking / Unlocking)"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ScreenTimeEnabled:
type: bool
status: internal
condition: ENABLE(SCREEN_TIME)
humanReadableName: "Screen Time"
humanReadableDescription: "Enable Screen Time"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultScreenTimeEnabled()
WebCore:
default: false
ScreenWakeLockAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Screen Wake Lock API"
humanReadableDescription: "Enable Screen Wake Lock API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
ScriptTrackingPrivacyLoggingEnabled:
type: bool
status: internal
humanReadableName: "Script Tracking Privacy Logging"
humanReadableDescription: "Script tracking privacy logging enabled"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ScriptTrackingPrivacyNetworkRequestBlockingEnabled:
type: bool
status: internal
humanReadableName: "Script Tracking Privacy Network Requests Blocking"
humanReadableDescription: "Block network requests to known tracking domains"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
ScriptTrackingPrivacyProtectionsEnabled:
type: bool
status: internal
humanReadableName: "Script Tracking Privacy Protections"
humanReadableDescription: "Script tracking privacy protections enabled"
exposed: [ WebKit ]
webcoreBinding: none
defaultValue:
WebKit:
default: true
ScrollAnimatorEnabled:
type: bool
status: embedder
humanReadableName: "Scroll animator"
humanReadableDescription: "Enable scroll animator"
defaultValue:
WebKitLegacy:
"PLATFORM(MAC)": WebKit::defaultScrollAnimatorEnabled()
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebKit:
"PLATFORM(MAC)": WebKit::defaultScrollAnimatorEnabled()
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
ScrollToTextFragmentEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Scroll To Text Fragment"
humanReadableDescription: "Enable Scroll To Text Fragment"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ScrollToTextFragmentFeatureDetectionEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Scroll To Text Fragment Feature Detection"
humanReadableDescription: "Enable Scroll To Text Fragment Feature Detection"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ScrollToTextFragmentGenerationEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Scroll To Text Fragment Generation"
humanReadableDescription: "Enable Scroll To Text Fragment Generation Menu"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ScrollToTextFragmentIndicatorEnabled:
type: bool
status: embedder
humanReadableName: "Scroll To Text Fragment Indicator"
humanReadableDescription: "Enable Scroll To Text Fragment Indicator"
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: true
WebCore:
default: true
ScrollToTextFragmentMarkingEnabled:
type: bool
status: embedder
humanReadableName: "Scroll To Text Fragment Marking"
humanReadableDescription: "Enable Scroll To Text Fragment Marking"
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: true
WebCore:
default: true
ScrollViewAdaptiveDecelerationTrackingEnabled:
type: bool
status: internal
humanReadableName: "Adaptive Deceleration Tracking"
humanReadableDescription: "Use adaptive deceleration tracking behavior for scroll views"
webcoreBinding: none
exposed: [ WebKit ]
condition: HAVE(UISCROLLVIEW_DECELERATION_TRACKING_BEHAVIOR)
defaultValue:
WebKit:
default: false
ScrollendEventEnabled:
type: bool
status: stable
category: dom
humanReadableName: "scrollend event"
humanReadableDescription: "Enable scrollend event"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ScrollingPerformanceTestingEnabled:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Scroll Performance Testing Enabled"
humanReadableDescription: "Enable behaviors used by scrolling performance tests"
webcoreOnChange: scrollingPerformanceTestingEnabledChanged
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
SearchInputResultsAttributeEnabled:
type: bool
status: embedder
humanReadableName: "<input type=search> results=N attribute"
humanReadableDescription: "Enable the legacy WebKit-only ::-webkit-search-results-button saved-searches dropdown opt-in"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)" : WebKit::defaultSearchInputResultsAttributeEnabled()
default: false
WebKit:
default: false
WebCore:
default: false
SecureContextChecksEnabled:
type: bool
status: internal
category: security
humanReadableName: "Secure Context Checks"
humanReadableDescription: "Allow access to HTTPS-only Web APIs over HTTP"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
SelectShowPickerEnabled:
type: bool
status: testable
category: dom
humanReadableName: "<select> showPicker() method"
humanReadableDescription: "Enable showPicker() method on <select>"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is handled via WebView SPI rather than WebPreferences for WebKitLegacy. We should change the SPI to lookup the WebPreferences value instead.
SelectTrailingWhitespaceEnabled:
type: bool
status: embedder
webKitLegacyBinding: custom
defaultValue:
WebKit:
default: false
WebKitLegacy:
default: false
WebCore:
default: false
SelectionFlippingEnabled:
type: bool
status: embedder
humanReadableName: "Selection Flipping"
humanReadableDescription: "Enable Selection Flipping"
webcoreBinding: none
defaultValue:
WebKit:
"PLATFORM(VISION)" : false
default: true
SelectionHonorsOverflowScrolling:
type: bool
status: internal
humanReadableName: "Selection Honors Overflow Scrolling"
humanReadableDescription: "Selection honors overflow scrolling"
condition: PLATFORM(IOS_FAMILY)
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(SELECTION_HONORS_OVERFLOW_SCROLLING_BY_DEFAULT)" : true
default: false
WebKitLegacy:
default: false
WebCore:
default: false
SerifFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitSerifFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '"Times"_str'
WebKit:
default: '"Times"_str'
WebCore:
default: '""_str'
ServiceControlsEnabled:
type: bool
status: embedder
condition: ENABLE(SERVICE_CONTROLS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ServiceWorkerEntitlementDisabledForTesting:
type: bool
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
ServiceWorkerInstallEventEnabled:
type: bool
status: stable
category: networking
humanReadableName: "Service Worker Install Event"
humanReadableDescription: "Enable Service Worker Install Event API"
defaultValue:
WebKit:
"PLATFORM(COCOA)" : true
default: false
WebKitLegacy:
default: false
WebCore:
"PLATFORM(COCOA)" : true
default: false
disableInLockdownMode: true
ServiceWorkerNavigationPreloadEnabled:
type: bool
status: stable
category: networking
humanReadableName: "Service Worker Navigation Preload"
humanReadableDescription: "Enable Service Worker Navigation Preload API"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: false
WebKit:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
disableInLockdownMode: true
ServiceWorkersEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Service Workers"
humanReadableDescription: "Enable Service Workers"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
disableInLockdownMode: true
ServiceWorkersUserGestureEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Validate UserGesture requirements in Service Workers"
humanReadableDescription: "Validate UserGesture requirements in Service Workers"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
SessionStorageEnabled:
type: bool
status: mature
humanReadableName: "Session Storage"
humanReadableDescription: "Enable Session Storage"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
ShadowRealmEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "ShadowRealm"
humanReadableDescription: "Expose the ShadowRealm object."
webcoreBinding: none
jscOptionName: useShadowRealm
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
ShadowRootReferenceTargetEnabled:
type: bool
status: testable
category: dom
humanReadableName: "referenceTarget"
humanReadableDescription: "Enable setting a referenceTarget on shadow roots"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
ShadowRootReferenceTargetEnabledForAriaOwns:
type: bool
status: testable
category: dom
humanReadableName: "referenceTarget support for aria-owns"
humanReadableDescription: "Enable referenceTarget support for aria-owns and ariaOwnsElements"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
# When enabling this, don't enable on watchOS or the macOS base system (which don't have Vision.framework).
# You can detect these by running isVisionFrameworkAvailable().
ShapeDetection:
type: bool
category: media
status: testable
humanReadableName: "Shape Detection API"
humanReadableDescription: "Enable the Shape Detection API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
SharedWorkerEnabled:
type: bool
status: stable
category: dom
humanReadableName: "SharedWorker"
humanReadableDescription: "Enabled SharedWorker API"
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
ShouldAllowUserInstalledFonts:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
ShouldConvertInvalidURLsToBlank:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: WebKit::defaultShouldConvertInvalidURLsToBlank()
WebKit:
default: true
WebCore:
default: true
ShouldConvertPositionStyleOnCopy:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldDecidePolicyBeforeLoadingQuickLookPreview:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldDisplayCaptions:
type: bool
status: embedder
condition: ENABLE(VIDEO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldDisplaySubtitles:
type: bool
status: embedder
condition: ENABLE(VIDEO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldDisplayTextDescriptions:
type: bool
status: embedder
condition: ENABLE(VIDEO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldDropNearSuspendedAssertionAfterDelay:
type: bool
status: internal
humanReadableName: "Drop Near-Suspended Assertion After Delay"
humanReadableDescription: "Causes processes to fully suspend after a delay"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultShouldDropNearSuspendedAssertionAfterDelay()
WebCore:
default: false
ShouldEnableTextAutosizingBoost:
type: bool
status: embedder
webcoreOnChange: shouldEnableTextAutosizingBoostChanged
condition: ENABLE(TEXT_AUTOSIZING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
ShouldIgnoreMetaViewport:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldPrintBackgrounds:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitShouldPrintBackgroundsPreferenceKey
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": WebKit::defaultShouldPrintBackgrounds()
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
ShouldRespectImageOrientation:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(IOS_FAMILY) || PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
ShouldRestrictBaseURLSchemes:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: WebKit::defaultShouldRestrictBaseURLSchemes()
WebKit:
default: false
WebCore:
default: true
ShouldSuppressTextInputFromEditingDuringProvisionalNavigation:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShouldTakeNearSuspendedAssertions:
type: bool
status: internal
category: dom
humanReadableName: "Take WebKit:NearSuspended assertions on background web content processes"
humanReadableDescription: "Take WebKit:NearSuspended assertions on background web content processes"
exposed: [ WebKit ]
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: defaultShouldTakeNearSuspendedAssertion()
WebCore:
default: true
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
# FIXME: This is not used in WebCore, so should not have a binding to WebCore::Settings.
ShouldUseServiceWorkerShortTimeout:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShowFrameProcessBordersEnabled:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Show frame process borders"
webcoreName: showFrameProcessBorders
webcoreOnChange: setNeedsRecalcStyleInAllFrames
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShowMediaStatsContextMenuItemEnabled:
type: bool
status: developer
category: media
humanReadableName: "Show Media Stats"
humanReadableDescription: "Adds a 'Media Stats' context menu item to <video> when the Develop menu is enabled"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShowModalDialogEnabled:
type: bool
status: developer
category: dom
humanReadableName: "Legacy showModalDialog() API"
humanReadableDescription: "Legacy showModalDialog() API"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultShowModalDialogEnabled()
default: false
WebKit:
default: WebKit::defaultShowModalDialogEnabled()
WebCore:
default: false
ShowsToolTipOverTruncatedText:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShowsURLsInToolTipsEnabled:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitShowsURLsInToolTips
webcoreName: showsURLsInToolTips
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ShrinksStandaloneImagesToFit:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
SiteIsolationEnabled:
type: bool
status: unstable
defaultsOverridable: true
category: security
humanReadableName: "Site Isolation"
humanReadableDescription: "Put cross-origin iframes in a different process"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
SiteIsolationSharedProcessEnabled:
type: bool
status: unstable
category: security
humanReadableName: "Shared process for Site Isolation"
humanReadableDescription: "Put cross-site frames in a shared Web process"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
SlowFrameIndicatorVisible:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Slow frame indicator"
humanReadableDescription: "Make slow frame indicator visible"
webcoreName: showSlowFrameIndicator
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is handled via WebView SPI rather than WebPreferences for WebKitLegacy. We should change the SPI to lookup the WebPreferences value instead.
SmartInsertDeleteEnabled:
type: bool
status: embedder
webKitLegacyBinding: custom
defaultValue:
WebKit:
default: true
WebKitLegacy:
default: true
WebCore:
default: true
SmartListsAvailable:
type: bool
status: embedder
category: dom
humanReadableName: "Smart Lists"
humanReadableDescription: "Allow Smart Lists to be enabled"
defaultValue:
WebKit:
default: false
WebKitLegacy:
default: false
WebCore:
default: false
SourceBufferChangeTypeEnabled:
type: bool
status: embedder
condition: ENABLE(MEDIA_SOURCE)
defaultValue:
WebKitLegacy:
default: true
WebKit:
"USE(GSTREAMER)": false
default: true
WebCore:
"USE(GSTREAMER)": false
default: true
SpatialImageControlsEnabled:
type: bool
status: preview
category: media
condition: ENABLE(SPATIAL_IMAGE_CONTROLS)
humanReadableName: "Spatial image controls API"
humanReadableDescription: "Spatial image controls API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(PANORAMA_IMAGE_CONTROLS)": true
default: false
WebCore:
"ENABLE(PANORAMA_IMAGE_CONTROLS)": true
default: false
SpatialNavigationEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
SpatialPortalEnabled:
type: bool
status: testable
category: css
condition: ENABLE(SPATIAL_PORTAL)
humanReadableName: "Spatial CSS Portals"
humanReadableDescription: "Enable the spatial: portal CSS property"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
SpatialVideoRenderingEnabled:
type: bool
status: testable
category: media
humanReadableName: "Spatial Video Rendering"
humanReadableDescription: "Render projected/spatial (APMP) video onto a draggable projection in the media controls"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
SpeakerSelectionRequiresUserGesture:
type: bool
status: internal
category: media
humanReadableName: "Require a user gesture for speaker selection"
humanReadableDescription: "Require a user gesture for speaker selection"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
SpeculationRulesPrefetchEnabled:
type: bool
status: stable
category: html
humanReadableName: "SpeculationRules prefetch"
humanReadableDescription: "SpeculationRules prefetch"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
SpeechRecognitionEnabled:
type: bool
status: mature
humanReadableName: "SpeechRecognition API"
humanReadableDescription: "Enable SpeechRecognition of WebSpeech API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"HAVE(SPEECHRECOGNIZER) && ENABLE(MEDIA_STREAM)": true
default: false
WebCore:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
SpeechSynthesisAPIEnabled:
type: bool
status: embedder
humanReadableName: "SpeechSynthesis API"
humanReadableDescription: "SpeechSynthesis API"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
SpringTimingFunctionEnabled:
type: bool
status: unstable
category: css
humanReadableName: "CSS Spring Animations"
humanReadableDescription: "CSS Spring Animation prototype"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(EXPERIMENTAL_FEATURES)" : true
default: false
WebCore:
default: false
Standalone:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitStandalonePreferenceKey
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
StandardFontFamily:
type: String
status: embedder
webKitLegacyPreferenceKey: WebKitStandardFont
webcoreImplementation: custom
defaultValue:
WebKitLegacy:
default: '"Times"_str'
WebKit:
"PLATFORM(WATCHOS)": '"system-ui"_str'
default: '"Times"_str'
WebCore:
default: '""_str'
StorageAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Storage API"
humanReadableDescription: "Enable Storage API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
StorageAPIEstimateEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Storage API Estimate"
humanReadableDescription: "Enable Storage API Estimate"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
"PLATFORM(COCOA)" : true
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
StorageAccessAPIEnabled:
type: bool
status: embedder
humanReadableName: "Storage Access API"
humanReadableDescription: "Enable the Storage Access API for cross-site cookie access"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
StorageAccessAPIPerPageScopeEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "Storage Access API Per-Page Scope"
humanReadableDescription: "When enabled, storage access granted to one frame is shared with all same-origin frames on the page"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
StorageBlockingPolicy:
type: uint32_t
humanReadableName: "Storage Blocking Policy"
refinedType: WebCore::StorageBlockingPolicy
status: embedder
webcoreOnChange: storageBlockingPolicyChanged
defaultValue:
WebKitLegacy:
default: WebAllowAllStorage
WebKit:
default: WebCore::StorageBlockingPolicy::BlockThirdParty
WebCore:
default: StorageBlockingPolicy::AllowAll
sharedPreferenceForWebProcess: true
SupportHDRCompositorTonemappingEnabled:
type: bool
status: testable
category: media
webcoreOnChange: updateDisplayEDRHeadroom
humanReadableName: "Support HDR Compositor tonemapping"
humanReadableDescription: "Support HDR tonemapping during compositing"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
SupportHDRDisplayEnabled:
type: bool
status: Supporthdrdisplay_feature_status
category: media
webcoreOnChange: setNeedsRelayoutAllFrames
humanReadableName: "Support HDR Display"
humanReadableDescription: "Support HDR Display"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(SUPPORT_HDR_DISPLAY_BY_DEFAULT)": true
default: false
WebCore:
"ENABLE(SUPPORT_HDR_DISPLAY_BY_DEFAULT)": true
default: false
SuppressesIncrementalRendering:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
SwitchControlEnabled:
type: bool
status: stable
category: html
humanReadableName: "HTML switch control"
humanReadableDescription: "Enable HTML switch control"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA)": true
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
# FIXME: There is no custom binding implemented for WebKitLegacy.
SystemLayoutDirection:
type: uint32_t
refinedType: WebCore::TextDirection
status: embedder
defaultValue:
WebKitLegacy:
default: TextDirection::LTR
WebKit:
default: TextDirection::LTR
WebCore:
default: TextDirection::LTR
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
SystemPreviewEnabled:
type: bool
status: embedder
condition: USE(SYSTEM_PREVIEW)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
SystemTextExtractionEnabled:
type: bool
status: internal
humanReadableName: "System Text Extraction"
humanReadableDescription: "Enable System Text Extraction"
condition: ENABLE(SYSTEM_TEXT_EXTRACTION)
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
TabsToLinks:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitTabToLinksPreferenceKey
webcoreBinding: none
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
TargetTextPseudoElementEnabled:
type: bool
status: stable
category: css
humanReadableName: "::target-text pseudo-element"
humanReadableDescription: "Enable the ::target-text CSS pseudo-element"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
TelephoneNumberParsingEnabled:
type: bool
status: embedder
webKitLegacyPreferenceKey: WebKitTelephoneParsingEnabledPreferenceKey
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
TemporalEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "Temporal"
humanReadableDescription: "Expose the Temporal object."
webcoreBinding: none
jscOptionName: useTemporal
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
TemporaryTileCohortRetentionEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: true
TextAnimationsEnabled:
type: bool
status: internal
humanReadableName: "Text Animations"
humanReadableDescription: "Text Animations"
condition: ENABLE(WRITING_TOOLS)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
TextAreasAreResizable:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": false
default: true
WebCore:
default: false
TextAutosizingEnabled:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
condition: ENABLE(TEXT_AUTOSIZING)
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": true
default: false
WebKit:
"PLATFORM(IOS_FAMILY)": true
default: false
WebCore:
"PLATFORM(IOS_FAMILY)": true
default: false
TextAutosizingEnabledAtLargeInitialScale:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
humanReadableName: "Enable Text Autosizing at Large Initial Scale"
humanReadableDescription: "Enable Text Autosizing at Large Initial Scale"
condition: ENABLE(TEXT_AUTOSIZING)
defaultValue:
WebCore:
"ENABLE(TEXT_AUTOSIZING_BASED_ON_INITIAL_SCALE)": false
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
TextAutosizingUsesIdempotentMode:
type: bool
status: embedder
webcoreOnChange: textAutosizingUsesIdempotentModeChanged
humanReadableName: "Idempotent Text Autosizing"
humanReadableDescription: "Use idempotent text autosizing mode"
condition: ENABLE(TEXT_AUTOSIZING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(IOS_FAMILY) && !PLATFORM(VISION)": defaultTextAutosizingUsesIdempotentMode()
default: false
WebCore:
default: false
TextEffectsEnabled:
type: bool
status: internal
humanReadableName: "Text Effects"
humanReadableDescription: "Text Effects"
condition: ENABLE(WRITING_TOOLS_TEXT_EFFECTS)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
TextExtractionDebugUIEnabled:
type: bool
status: internal
humanReadableName: "Text Extraction Debug UI"
humanReadableDescription: "Enable Text Extraction Debug UI"
exposed: [ WebKit ]
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
TextExtractionEnabled:
type: bool
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
"HAVE(UIINTELLIGENCESUPPORT_FRAMEWORK)": true
default: false
TextExtractionFilterEnabled:
type: bool
status: internal
humanReadableName: "Text Extraction Filter"
humanReadableDescription: "Enable Text Extraction Filter"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(TEXT_EXTRACTION_FILTER)": true
default: false
TextInputClientSelectionUpdatesEnabled:
type: bool
status: embedder
webcoreBinding: none
condition: PLATFORM(MAC)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: WebKit::defaultTextInputClientSelectionUpdatesEnabled()
TextInteractionEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(WATCHOS)": false
default: true
WebKit:
"PLATFORM(WATCHOS)": false
default: true
WebCore:
"PLATFORM(WATCHOS)": false
default: true
TextRecognitionInVideosEnabled:
type: bool
# FIXME: Change to "embedder" when there is a way to enable/disable embedder features from API tests.
status: internal
category: media
humanReadableName: "Text Recognition in Videos"
humanReadableDescription: "Enable Text Recognition in Videos"
condition: ENABLE(IMAGE_ANALYSIS) && ENABLE(VIDEO)
exposed: [ WebKit ]
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: defaultTextRecognitionInVideosEnabled()
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
TextShapingAcrossInlineBoxes:
type: bool
status: stable
category: css
humanReadableName: "Text Shaping Across Inline Boxes"
humanReadableDescription: "Enable Text Shaping Across Inline Boxes"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
TextTracksInMSEEnabled:
type: bool
status: testable
category: media
humanReadableName: "Text Tracks in MSE"
humanReadableDescription: "Enable Text Tracks in Media Source Extension"
condition: ENABLE(MEDIA_SOURCE)
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
ThreadedScrollDrivenAnimationsEnabled:
type: bool
status: stable
category: animation
humanReadableName: "Threaded Scroll-driven Animations"
humanReadableDescription: "Run qualifying scroll-driven animations on a separate thread"
condition: ENABLE(THREADED_ANIMATIONS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
ThreadedScrollingEnabled:
type: bool
status: embedder
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
ThreadedTimeBasedAnimationsAtHighFrameRateEnabled:
type: bool
status: unstable
category: animation
humanReadableName: "Threaded Time-based Animations at High Frame Rate"
humanReadableDescription: "Run qualifying time-based animations on a separate thread at a high frame rate"
condition: ENABLE(THREADED_ANIMATIONS) && PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
ThreadedTimeBasedAnimationsEnabled:
type: bool
status: stable
category: animation
humanReadableName: "Threaded Time-based Animations"
humanReadableDescription: "Run qualifying time-based animations on a separate thread"
condition: ENABLE(THREADED_ANIMATIONS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely.
TiledScrollingIndicatorVisible:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "Tiled scrolling indicator"
humanReadableDescription: "Make tiled scrolling indicator visible"
webcoreName: showTiledScrollingIndicator
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
TopContentInsetBackgroundCanChangeAfterScrolling:
type: bool
status: internal
humanReadableName: "Top Content Inset Background Can Change After Scrolling"
humanReadableDescription: "Top content inset background can change after scrolling"
defaultValue:
WebKit:
default: WebKit::defaultTopContentInsetBackgroundCanChangeAfterScrolling()
WebKitLegacy:
default: false
WebCore:
default: false
TouchEventDOMAttributesEnabled:
type: bool
status: embedder
humanReadableName: "Touch Event DOM Attributes"
humanReadableDescription: "Enable Touch Event DOM Attributes"
condition: ENABLE(TOUCH_EVENTS)
defaultValue:
WebCore:
default: WebCore::screenHasTouchDevice()
TouchInputCompatibilityEnabled:
type: bool
status: testable
category: dom
humanReadableName: "Touch Input Compatibility"
humanReadableDescription: "Touch Input Compatibility"
condition: ENABLE(WEBXR)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
TrackConfigurationEnabled:
type: bool
status: testable
category: media
humanReadableName: "Track Configuration API"
humanReadableDescription: "Track Configuration API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
TreatsAnyTextCSSLinkAsStylesheet:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultTreatsAnyTextCSSLinkAsStylesheet()
default: false
WebKit:
default: false
WebCore:
default: false
TrustedTypesEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Trusted Types"
humanReadableDescription: "Enable Trusted Types"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultTrustedTypesEnabled()
WebCore:
default: true
TwoUpPDFDisplayModeSupportEnabled:
type: bool
status: internal
humanReadableName: "Two-Up PDF Display Mode Support"
humanReadableDescription: "Enable support for two-up PDF display on iOS"
condition: ENABLE(UNIFIED_PDF) && PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
TwoUpPDFTrailingPageLeftAlignmentEnabled:
type: bool
status: internal
humanReadableName: "Two-Up PDF Trailing Page Left Alignment"
humanReadableDescription: "In two-up PDF display mode, align the trailing odd page to the same column as the first page instead of centering it"
condition: ENABLE(UNIFIED_PDF)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
UndoManagerAPIEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "UndoManager DOM API"
humanReadableDescription: "Enable the UndoManager DOM API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UnifiedPDFEnabled:
type: bool
status: mature
category: security
humanReadableName: "Unified PDF Viewer"
humanReadableDescription: "Enable Unified PDF Viewer"
condition: ENABLE(UNIFIED_PDF)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultUnifiedPDFEnabled()
WebCore:
default: false
UnifyDamagedRegions:
type: bool
status: unstable
category: dom
humanReadableName: "Unify Damaged Regions"
humanReadableDescription: "Unify Damaged Regions"
condition: ENABLE(DAMAGE_TRACKING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
UpdateSceneGeometryEnabled:
type: bool
status: internal
condition: ENABLE(SCENE_GEOMETRY_UPDATE)
humanReadableName: "Enable Update Scene Geometry"
humanReadableDescription: "Allows for changes to scene geometry"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
UpgradeKnownHostsToHTTPSEnabled:
type: bool
status: internal
category: networking
humanReadableName: "Upgrade known hosts to HTTPS"
humanReadableDescription: "Upgrade known hosts to HTTPS"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
UseAVCaptureDeviceRotationCoordinatorAPI:
type: bool
status: internal
humanReadableName: "Use AVCaptureDeviceRotationCoordinator API"
humanReadableDescription: "Use AVCaptureDeviceRotationCoordinator API"
webcoreBinding: none
exposed: [ WebKit ]
condition: HAVE(AVCAPTUREDEVICEROTATIONCOORDINATOR)
defaultValue:
WebKit:
"PLATFORM(APPLETV)": true
default: false
sharedPreferenceForWebProcess: true
UseAlternatePDFHUD:
type: bool
status: mature
category: html
humanReadableName: "Alternate PDF HUD"
humanReadableDescription: "Use the alternate PDF HUD"
webcoreBinding: none
exposed: [ WebKit ]
condition: ENABLE(PDF_HUD)
defaultValue:
WebKit:
default: true
UseAppKitGestures:
type: bool
status: internal
defaultsOverridable: true
humanReadableName: "AppKit Gestures"
humanReadableDescription: "Use AppKit Gestures"
condition: PLATFORM(MAC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultUseAppKitGestures()
WebCore:
default: false
UseAppKitGesturesForGestureEvents:
type: bool
status: internal
humanReadableName: "AppKit gestures for gesture events"
humanReadableDescription: "Use AppKit gestures to drive gesture event synthesis"
condition: PLATFORM(MAC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UseAsyncUIKitInteractions:
type: bool
status: internal
humanReadableName: "Async UIKit Interactions"
humanReadableDescription: "Use Async UIKit Interactions"
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultUseAsyncUIKitInteractions()
WebCore:
default: false
UseCGDisplayListsForDOMRendering:
type: bool
status: internal
humanReadableName: "Dynamic Content Scaling: DOM Rendering"
humanReadableDescription: "Use Dynamic Content Scaling for DOM rendering"
condition: ENABLE(RE_DYNAMIC_CONTENT_SCALING)
exposed: [ WebCore, WebKit ]
defaultValue:
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
UseDamagingInformationForCompositing:
type: bool
status: testable
category: dom
humanReadableName: "Use the Damaging Information to optimize compositing"
humanReadableDescription: "Use the Damaging Information to optimize compositing"
condition: ENABLE(DAMAGE_TRACKING)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(GTK) || PLATFORM(WPE)": true
default: false
WebCore:
default: false
UseGPUProcessForCanvasRenderingEnabled:
type: bool
status: stable
category: dom
humanReadableName: "GPU Process: Canvas Rendering"
humanReadableDescription: "Enable canvas rendering in GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS) && !(PLATFORM(GTK) || PLATFORM(WPE))
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(GPU_PROCESS_BY_DEFAULT)": true
"USE(GRAPHICS_LAYER_WC)": true
default: false
UseGPUProcessForDOMRenderingEnabled:
type: bool
status: stable
category: dom
humanReadableName: "GPU Process: DOM Rendering"
humanReadableDescription: "Enable DOM rendering in GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: defaultUseGPUProcessForDOMRenderingEnabled()
sharedPreferenceForWebProcess: true
UseGPUProcessForDisplayCapture:
type: bool
status: mature
category: media
humanReadableName: "GPU Process: Screen and Window capture"
humanReadableDescription: "Display capture in GPU Process"
webcoreBinding: none
condition: HAVE(SCREEN_CAPTURE_KIT)
exposed: [ WebKit ]
defaultValue:
WebKit:
default: true
UseGPUProcessForMediaEnabled:
type: bool
status: embedder
humanReadableName: "GPU Process: Media"
humanReadableDescription: "Do all media loading and playback in the GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS)
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(GPU_PROCESS_BY_DEFAULT) && !USE(GSTREAMER)": true
default: false
sharedPreferenceForWebProcess: true
mediaPlaybackRelated: true
UseGPUProcessForWebGLEnabled:
type: bool
status: internal
humanReadableName: "GPU Process: WebGL"
humanReadableDescription: "Process all WebGL operations in GPU Process"
webcoreBinding: none
condition: ENABLE(GPU_PROCESS) && ENABLE(WEBGL)
exposed: [ WebKit ]
defaultValue:
WebKit:
"ENABLE(GPU_PROCESS_BY_DEFAULT) && ENABLE(GPU_PROCESS_WEBGL_BY_DEFAULT)": true
"USE(GRAPHICS_LAYER_WC)": true
default: false
sharedPreferenceForWebProcess: true
UseGiantTiles:
type: bool
status: embedder
humanReadableName: "Use giant tiles"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UseIFCForSVGText:
type: bool
status: internal
humanReadableName: "Use IFC for SVG text"
humanReadableDescription: "Use IFC for SVG text rendering"
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: false
UseImageDocumentForSubframePDF:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(IOS_FAMILY): true
default: false
WebKit:
PLATFORM(IOS_FAMILY): true
default: false
WebCore:
PLATFORM(IOS_FAMILY): true
default: false
UseMicrophoneMuteStatusAPI:
type: bool
status: testable
category: media
humanReadableName: "Use Microphone Mute Status API"
humanReadableDescription: "Use Microphone Mute Status API"
condition: ENABLE(MEDIA_STREAM)
defaultValue:
WebKit:
default: false
WebCore:
default: false
UsePreHTML5ParserQuirks:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultUsePreHTML5ParserQuirks()
default: false
WebKit:
default: false
WebCore:
default: false
UseSkiaForComposition:
type: bool
status: internal
humanReadableName: "Use Skia for composition"
humanReadableDescription: "Use Skia instead of TextureMapper for layer composition"
condition: PLATFORM(GTK) || PLATFORM(WPE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
UseSystemAppearance:
type: bool
status: embedder
webcoreOnChange: useSystemAppearanceChanged
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UseUIProcessForBackForwardItemLoading:
type: bool
status: unstable
exposed: [ WebKit ]
humanReadableName: "Use UIProcess for Back/Forward Item Loading"
humanReadableDescription: "Enable UIProcess-side BackForwardListFrameItem lookup for child frames during Back/Forward navigation"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UserActivationAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "User Activation API"
humanReadableDescription: "Enable User Activation API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
UserGesturePromisePropagationEnabled:
type: bool
status: internal
category: dom
humanReadableName: "UserGesture Promise Propagation"
humanReadableDescription: "UserGesture Promise Propagation"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: There is no custom binding implemented for WebKitLegacy.
UserInterfaceDirectionPolicy:
type: uint32_t
refinedType: WebCore::UserInterfaceDirectionPolicy
status: embedder
defaultValue:
WebKitLegacy:
default: UserInterfaceDirectionPolicy::Content
WebKit:
default: UserInterfaceDirectionPolicy::Content
WebCore:
default: UserInterfaceDirectionPolicy::Content
UsesBackForwardCache:
type: bool
status: embedder
defaultsOverridable: true
webcoreOnChange: usesBackForwardCacheChanged
webcoreExcludeFromInternalSettings: true
webKitLegacyPreferenceKey: WebKitUsesPageCachePreferenceKey
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
UsesEncodingDetector:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
UsesSingleWebProcess:
type: bool
status: embedder
exposed: [ WebKit ]
webcoreBinding: none
defaultValue:
WebKit:
default: false
sharedPreferenceForWebProcess: true
VP9DecoderEnabled:
type: bool
status: embedder
condition: ENABLE(VP9)
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: true
VerifyWindowOpenUserGestureFromUIProcess:
type: bool
status: testable
category: security
humanReadableName: "Verify window.open user gesture"
humanReadableDescription: "Verifies that the user gesture for window.open came from the UI process"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
VerticalFormControlsEnabled:
type: bool
status: stable
category: html
humanReadableName: "Vertical form control support"
humanReadableDescription: "Enable support for form controls in vertical writing mode"
defaultValue:
WebKitLegacy:
"PLATFORM(COCOA) || USE(THEME_ADWAITA)": true
default: false
WebKit:
"PLATFORM(COCOA) || USE(THEME_ADWAITA)": true
default: false
WebCore:
"PLATFORM(COCOA) || USE(THEME_ADWAITA)": true
default: false
VideoFullsceenPrefersMostVisibleHeuristic:
type: bool
status: stable
category: media
humanReadableName: "Prefers most visible video in element fullscreen."
humanReadableDescription: "Prefers most visible video in element fullscreen."
condition: ENABLE(FULLSCREEN_API)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
VideoFullscreenRequiresElementFullscreen:
type: bool
status: embedder
condition: ENABLE(FULLSCREEN_API)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultVideoFullscreenRequiresElementFullscreen()
WebCore:
default: false
sharedPreferenceForWebProcess: true
VideoPresentationManagerEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)" : true
default: false
WebKit:
"PLATFORM(VISION)" : true
default: false
WebCore:
"PLATFORM(VISION)" : true
default: false
sharedPreferenceForWebProcess: true
VideoPresentationModeAPIEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)" : false
default: true
WebKit:
"PLATFORM(VISION)" : false
default: true
WebCore:
"PLATFORM(VISION)" : false
default: true
sharedPreferenceForWebProcess: true
VideoQualityIncludesDisplayCompositingEnabled:
type: bool
status: embedder
condition: ENABLE(VIDEO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
VideoRendererProtectedFallbackDisabled:
type: bool
status: stable
category: media
humanReadableName: "VideoMediaSampleRenderer fallback to AVSBDL for protected content disabled"
humanReadableDescription: "VideoMediaSampleRenderer fallback to AVSBDL for protected content disabled"
condition: USE(MODERN_AVCONTENTKEYSESSION_WITH_VTDECOMPRESSIONSESSION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
VideoRendererUseDecompressionSessionForProtected:
type: bool
status: preview
category: media
humanReadableName: "VideoMediaSampleRenderer use DecompressionSession for protected content"
humanReadableDescription: "VideoMediaSampleRenderer use DecompressionSession for protected content"
condition: USE(MODERN_AVCONTENTKEYSESSION_WITH_VTDECOMPRESSIONSESSION)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(VISION)" : true
default: false
WebCore:
"PLATFORM(VISION)" : true
default: false
sharedPreferenceForWebProcess: true
ViewGestureDebuggingEnabled:
type: bool
status: embedder
humanReadableName: "View gesture debugging"
humanReadableDescription: "Enable view gesture debugging"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false
VisibleDebugOverlayRegions:
type: uint32_t
status: embedder
defaultsOverridable: true
webcoreType: DebugOverlayRegions
defaultValue:
WebKitLegacy:
default: 0
WebKit:
default: 0
WebCore:
default: 0
VisualTranslationEnabled:
type: bool
# FIXME: Change to "embedder" when there is a way to enable/disable embedder features from API tests.
status: internal
category: dom
humanReadableName: "Visual Translation"
humanReadableDescription: "Enable Visual Translation"
condition: ENABLE(IMAGE_ANALYSIS)
exposed: [ WebKit ]
defaultValue:
WebCore:
default: false
WebKitLegacy:
default: false
WebKit:
default: defaultVisualTranslationEnabled()
VisualViewportAPIEnabled:
type: bool
status: mature
humanReadableName: "Visual Viewport API"
humanReadableDescription: "Enable Visual Viewport API"
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)" : false
default: true
WebKit:
default: true
WebCore:
default: false
VisualViewportEnabled:
type: bool
status: embedder
webcoreOnChange: setNeedsRecalcStyleInAllFrames
defaultValue:
WebKitLegacy:
PLATFORM(IOS_FAMILY): false
default: true
WebKit:
default: true
WebCore:
default: true
VisuallyContiguousBidiTextSelectionEnabled:
type: bool
status: internal
humanReadableName: "Visually Contiguous Bidi Selection"
humanReadableDescription: "Visually contiguous bidi selection"
condition: PLATFORM(IOS_FAMILY)
defaultValue:
WebKit:
default: WebKit::defaultVisuallyContiguousBidiTextSelectionEnabled()
WebKitLegacy:
default: false
WebCore:
default: false
WantsBalancedSetDefersLoadingBehavior:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WasmJSStringBuiltinsEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly JS String Builtins"
humanReadableDescription: "Enable the implementation of the JS String Builtins proposal."
webcoreBinding: none
jscOptionName: useWasmJSStringBuiltins
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmJSTypesEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "WebAssembly JS Types"
humanReadableDescription: "Enable the js-types proposal type() methods on WebAssembly.Memory/Table/Global/Tag prototypes."
webcoreBinding: none
jscOptionName: useWasmJSTypes
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
WasmMemory64Enabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly Memory64"
humanReadableDescription: "Allow the Memory64 proposal for WebAssembly."
webcoreBinding: none
jscOptionName: useWasmMemory64
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmMemoryToBufferAPIsEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly Memory to Buffer APIs"
humanReadableDescription: "Enable the toFixedLengthBuffer() and toResizableBuffer() Wasm Memory.prototype functions."
webcoreBinding: none
jscOptionName: useWasmMemoryToBufferAPIs
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmMultiMemoryEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly Multi-Memory"
humanReadableDescription: "Allow wasm code to access multiple linear memories"
webcoreBinding: none
jscOptionName: useWasmMultiMemory
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmRelaxedSIMDEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly Relaxed SIMD"
humanReadableDescription: "Allow the relaxed simd instructions and types from the wasm relaxed simd spec."
webcoreBinding: none
jscOptionName: useWasmRelaxedSIMD
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmSIMDEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly SIMD"
humanReadableDescription: "Allow the new simd instructions and types from the wasm simd spec."
webcoreBinding: none
jscOptionName: useWasmSIMD
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmTailCallsEnabled:
type: bool
status: stable
category: javascript
humanReadableName: "WebAssembly Tail Calls"
humanReadableDescription: "Allow the new instructions from the wasm tail calls spec."
webcoreBinding: none
jscOptionName: useWasmTailCalls
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: true
WasmWideArithmeticEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "WebAssembly Wide Arithmetic"
humanReadableDescription: "Allow the wide arithmetic instructions from the wasm wide-arithmetic spec."
webcoreBinding: none
jscOptionName: useWasmWideArithmetic
sharedPreferenceForWebProcess: true
defaultValue:
WebKit:
default: false
WebAPIStatisticsEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "Web API Statistics"
humanReadableDescription: "Enable Web API Statistics"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebAPIsInShadowRealmEnabled:
type: bool
status: unstable
category: dom
humanReadableName: "Web APIs in ShadowRealm"
humanReadableDescription: "Enable Web APIs to be exposed in ShadowRealm"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebAnimationsCustomEffectsEnabled:
type: bool
status: testable
category: animation
humanReadableName: "Web Animations custom effects"
humanReadableDescription: "Support for the CustomEffect interface"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebAnimationsCustomFrameRateEnabled:
type: bool
status: testable
category: animation
humanReadableName: "Web Animations custom frame rate"
humanReadableDescription: "Support for specifying a custom frame rate for Web Animations"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebArchiveDebugModeEnabled:
type: bool
status: embedder
humanReadableName: "Web Archive debug mode"
humanReadableDescription: "Enable web archive debug mode"
webKitLegacyPreferenceKey: WebKitWebArchiveDebugModeEnabledPreferenceKey
condition: ENABLE(WEB_ARCHIVE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebArchiveTestingModeEnabled:
type: bool
status: internal
category: dom
humanReadableName: "Web Archive testing mode"
humanReadableDescription: "Enable web archive testing mode"
condition: ENABLE(WEB_ARCHIVE)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebAssemblyDebuggerEnabled:
type: bool
status: developer
category: javascript
humanReadableName: "Experimental WebAssembly Debugger (Disables JIT)"
humanReadableDescription: "Enable LLDB debugging support for WebAssembly (requires new tab)"
condition: ENABLE(WEBASSEMBLY_DEBUGGER) && ENABLE(REMOTE_INSPECTOR)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebAssemblyESMIntegrationEnabled:
type: bool
status: testable
category: javascript
humanReadableName: "WebAssembly ES module integration support"
humanReadableDescription: "Support for allowing WebAssembly modules to integrate as ES modules"
condition: ENABLE(WEBASSEMBLY)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebAudioEnabled:
type: bool
status: embedder
condition: ENABLE(WEB_AUDIO)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
sharedPreferenceForWebProcess: true
disableInLockdownMode: true
richJavaScript: true
mediaPlaybackRelated: true
WebAuthenticationASEnabled:
type: bool
status: embedder
humanReadableName: "Web Authentication AuthenticationServices"
humanReadableDescription: "Enable Modern Web Authentication support though AuthenticationServices"
condition: HAVE(WEB_AUTHN_AS_MODERN)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebAuthenticationEnabled:
type: bool
status: embedder
humanReadableName: "Web Authentication"
humanReadableDescription: "Enable Web Authentication support"
condition: ENABLE(WEB_AUTHN)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
WebCodecsAV1Enabled:
type: bool
status: preview
category: media
humanReadableName: "WebCodecs AV1 codec"
humanReadableDescription: "Enable WebCodecs AV1 codec"
condition: ENABLE(WEB_CODECS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(GSTREAMER)": true
default: false
WebCore:
"USE(GSTREAMER)": true
default: false
disableInLockdownMode: true
WebCodecsAudioEnabled:
type: bool
status: stable
category: media
humanReadableName: "WebCodecs Audio API"
humanReadableDescription: "Enable WebCodecs Audio API"
condition: ENABLE(WEB_CODECS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
WebCodecsHEVCEnabled:
type: bool
status: mature
category: media
humanReadableName: "WebCodecs HEVC codec"
humanReadableDescription: "Enable WebCodecs HEVC codec"
condition: ENABLE(WEB_CODECS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(GSTREAMER)": true
"PLATFORM(COCOA)": true
default: false
WebCore:
"USE(GSTREAMER)": true
"PLATFORM(COCOA)": true
default: false
WebCodecsImageEnabled:
type: bool
status: stable
category: media
humanReadableName: "WebCodecs Image API"
humanReadableDescription: "Enable WebCodecs Image API"
condition: ENABLE(WEB_CODECS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
WebCodecsVideoEnabled:
type: bool
status: mature
category: media
humanReadableName: "WebCodecs Video API"
humanReadableDescription: "Enable WebCodecs Video API"
condition: ENABLE(WEB_CODECS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(LIBWEBRTC) && PLATFORM(COCOA)": WebKit::defaultPeerConnectionEnabledAvailable()
"USE(GSTREAMER)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
"USE(GSTREAMER)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
mediaPlaybackRelated: true
WebContentRestrictionsAskToEnabled:
type: bool
status: unstable
defaultsOverridable: true
humanReadableName: "Web Content Restrictions Ask To"
humanReadableDescription: "Enable Ask To for WebContentRestrictions"
condition: HAVE(WEBCONTENTRESTRICTIONS_ASK_TO)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: defaultWebContentRestrictionsAskToEnabled()
WebCore:
default: false
sharedPreferenceForWebProcess: true
WebContentRestrictionsTransitiveTrustEnabled:
type: bool
status: stable
category: security
defaultsOverridable: true
humanReadableName: "Web Content Restrictions Transitive Trust"
humanReadableDescription: "Enable Transitive Trust for WebContentRestrictions"
webcoreBinding: DeprecatedGlobalSettings
condition: HAVE(WEBCONTENTRESTRICTIONS_TRANSITIVE_TRUST)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
sharedPreferenceForWebProcess: true
WebExtensionBookmarksEnabled:
type: bool
status: testable
category: extensions
humanReadableName: "WebExtension Bookmarks API"
humanReadableDescription: "Enable support for WebExtensions using the Bookmarks API"
condition: ENABLE(WK_WEB_EXTENSIONS_BOOKMARKS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebExtensionOffscreenEnabled:
type: bool
status: testable
category: extensions
humanReadableName: "WebExtension Offscreen API"
humanReadableDescription: "Enable support for WebExtensions using the Offscreen API"
condition: ENABLE(WK_WEB_EXTENSIONS_OFFSCREEN)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebExtensionSidebarEnabled:
type: bool
status: testable
category: extensions
humanReadableName: "WebExtension sidebarAction and sidePanel APIs"
humanReadableDescription: "Enable support for WebExtensions using the sidebarAction / sidePanel family of APIs"
condition: ENABLE(WK_WEB_EXTENSIONS_SIDEBAR)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebGLDraftExtensionsEnabled:
type: bool
status: testable
category: dom
humanReadableName: "WebGL Draft Extensions"
humanReadableDescription: "Enable WebGL extensions that are still in draft status"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
WebGLEnabled:
type: bool
status: mature
humanReadableName: "WebGL"
humanReadableDescription: "Enable WebGL"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
WebGLTimerQueriesEnabled:
type: bool
status: developer
category: dom
humanReadableName: "WebGL Timer Queries"
humanReadableDescription: "Enable WebGL extensions that provide GPU timer queries"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebGPUEnabled:
type: bool
status: Webgpu_feature_status
category: dom
humanReadableName: "WebGPU"
humanReadableDescription: "Enable WebGPU"
defaultValue:
WebKitLegacy:
"ENABLE(WEBGPU_BY_DEFAULT)": true
default: false
WebKit:
"ENABLE(WEBGPU_BY_DEFAULT)": true
default: false
WebCore:
"ENABLE(WEBGPU_BY_DEFAULT)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
WebGPUHDREnabled:
type: bool
status: Webgpuhdr_feature_status
category: dom
humanReadableName: "WebGPU support for HDR"
humanReadableDescription: "WebGPU High Dynamic Range through canvas configuration tone mapping mode"
defaultValue:
WebKitLegacy:
"ENABLE(WEBGPU_BY_DEFAULT) && HAVE(SUPPORT_HDR_DISPLAY)": true
default: false
WebKit:
"ENABLE(WEBGPU_BY_DEFAULT) && HAVE(SUPPORT_HDR_DISPLAY)": true
default: false
WebCore:
"ENABLE(WEBGPU_BY_DEFAULT) && HAVE(SUPPORT_HDR_DISPLAY)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
WebInspectorEngineeringSettingsAllowed:
type: bool
status: internal
category: dom
defaultsOverridable: true
humanReadableName: "WebInspector engineering settings allowed"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebLocksAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Web Locks API"
humanReadableDescription: "Web Locks API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
WebRTCAV1CodecEnabled:
type: bool
status: stable
category: media
humanReadableName: "WebRTC AV1 codec"
humanReadableDescription: "Enable WebRTC AV1 codec"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(GSTREAMER) || PLATFORM(COCOA)": true
default: false
WebCore:
"USE(GSTREAMER) || PLATFORM(COCOA)": true
default: false
WebRTCAudioLatencyAdaptationEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC Audio Latency Adaptation"
humanReadableDescription: "Enable WebRTC Audio Latency Adaptation"
webcoreBinding: DeprecatedGlobalSettings
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCDTMFEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC DTMF"
humanReadableDescription: "Enable WebRTC DTMF"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
WebRTCEncodedTransformEnabled:
type: bool
status: mature
category: media
condition: ENABLE(WEB_RTC)
humanReadableName: "WebRTC Encoded Transform API"
humanReadableDescription: "Enable WebRTC Encoded Transform API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"USE(LIBWEBRTC) && PLATFORM(COCOA)": WebKit::defaultPeerConnectionEnabledAvailable()
default: false
WebCore:
"USE(LIBWEBRTC)": true
default: false
disableInLockdownMode: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCH264HardwareEncoderEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC H264 Hardware encoder"
humanReadableDescription: "Enable H264 Hardware encoder"
webcoreBinding: none
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCH265CodecEnabled:
type: bool
status: mature
category: media
condition: ENABLE(WEB_RTC)
humanReadableName: "WebRTC HEVC codec"
humanReadableDescription: "Enable WebRTC HEVC codec"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
WebRTCInterfaceMonitoringViaNWEnabled:
type: bool
status: internal
category: media
condition: ENABLE(WEB_RTC) && PLATFORM(COCOA)
humanReadableName: "WebRTC interface monitoring via NW"
humanReadableDescription: "Enable WebRTC interface monitoring via NW"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
WebRTCL4SEnabled:
type: bool
status: testable
category: media
condition: ENABLE(WEB_RTC)
humanReadableName: "WebRTC L4S support"
humanReadableDescription: "Enable WebRTC L4S support"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebRTCMediaPipelineAdditionalLoggingEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC Media Pipeline Additional Logging"
humanReadableDescription: "Enable WebRTC Media Pipeline Additional Logging"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
# FIXME: This is not relevant for WebKitLegacy, so it should be excluded from WebKitLegacy entirely.
WebRTCPlatformCodecsInGPUProcessEnabled:
type: bool
status: embedder
humanReadableName: "GPU Process: WebRTC Platform Codecs"
humanReadableDescription: "Enable WebRTC Platform Codecs in GPU Process"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(GPU_PROCESS_BY_DEFAULT)": true
default: false
WebCore:
default: false
WebRTCRemoteVideoFrameEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC Remote Video Frame"
humanReadableDescription: "Enable WebRTC Remote Video Frame"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
default: false
WebRTCSFrameTransformEnabled:
type: bool
status: testable
category: media
condition: ENABLE(WEB_RTC)
humanReadableName: "WebRTC SFrame Transform API"
humanReadableDescription: "Enable WebRTC SFrame Transform API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebRTCSocketsProxyingEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC Sockets Proxying"
humanReadableDescription: "Enable WebRTC Sockets Proxying"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: true
WebCore:
default: false
WebRTCSocketsServiceClassEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC Sockets Service Class"
humanReadableDescription: "Enable setting WebRTC Sockets Service Class"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultWebRTCSocketsServiceClassEnabled()
WebCore:
default: false
WebRTCUDPPortRange:
type: String
status: embedder
category: media
humanReadableName: "WebRTC UDP Port Range"
humanReadableDescription: "Set a UDP port range for WebRTC. If set to 0:0, the port range is determined by the OS"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: '"0:0"_str'
WebKit:
default: '"0:0"_str'
WebCore:
default: '"0:0"_str'
WebRTCVP9Profile0CodecEnabled:
type: bool
status: internal
category: media
humanReadableName: "WebRTC VP9 profile 0 codec"
humanReadableDescription: "Enable WebRTC VP9 profile 0 codec"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
WebRTCVP9Profile2CodecEnabled:
type: bool
status: mature
category: media
humanReadableName: "WebRTC VP9 profile 2 codec"
humanReadableDescription: "Enable WebRTC VP9 profile 2 codec"
condition: ENABLE(WEB_RTC)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA)": true
default: false
WebCore:
"PLATFORM(COCOA)": true
default: false
WebSQLEnabled:
type: bool
status: embedder
humanReadableName: "Enable WebSQL"
humanReadableDescription: "Enable WebSQL"
webcoreBinding: custom
exposed: [ WebKitLegacy ]
defaultValue:
WebKitLegacy:
"PLATFORM(IOS_FAMILY)": WebKit::defaultWebSQLEnabled()
default: true
WebSecurityEnabled:
type: bool
status: embedder
inspectorOverride: true
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely (though we should still set the default value to false when initializing settings).
WebShareEnabled:
type: bool
status: embedder
humanReadableName: "Web Share"
humanReadableDescription: "Enable support for share sheet via Web Share API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)": true
default: false
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
disableInLockdownMode: true
WebShareFileAPIEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Web Share API Level 2"
humanReadableDescription: "Enable level 2 of Web Share API"
defaultValue:
WebKitLegacy:
default: false
WebKit:
"PLATFORM(COCOA) && !PLATFORM(WATCHOS) && !PLATFORM(APPLETV)": true
default: false
WebCore:
default: false
WebSocketEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(WATCHOS)": false
default: true
WebKit:
"PLATFORM(WATCHOS)": false
default: true
WebCore:
"PLATFORM(WATCHOS)": false
default: true
sharedPreferenceForWebProcess: true
richJavaScript: true
WebTransportEnabled:
type: bool
status: developer
category: networking
humanReadableName: "WebTransport"
humanReadableDescription: "Enable WebTransport"
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: WebKit::defaultWebTransportEnabled()
WebCore:
default: false
sharedPreferenceForWebProcess: true
richJavaScript: true
disableInLockdownMode: true
WebXRAugmentedRealityModuleEnabled:
type: bool
status: testable
category: dom
humanReadableName: "WebXR Augmented Reality Module"
humanReadableDescription: "Adds support for the WebXR Augmented Reality Module"
condition: ENABLE(WEBXR_AR)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
disableInLockdownMode: true
WebXREnabled:
type: bool
status: stable
category: dom
humanReadableName: "WebXR Device API"
humanReadableDescription: "Adds support for accessing virtual reality (VR) and augmented reality (AR) devices, including sensors and head-mounted displays, on the Web"
condition: ENABLE(WEBXR)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
richJavaScript: true
WebXRGamepadsModuleEnabled:
type: bool
status: stable
category: dom
humanReadableName: "WebXR Gamepads Module"
humanReadableDescription: "Adds support for the WebXR Gamepads Module"
condition: ENABLE(WEBXR)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
WebXRHandInputModuleEnabled:
type: bool
status: stable
category: dom
humanReadableName: "WebXR Hand Input Module"
humanReadableDescription: "Adds support for the Hands Input Module for WebXR"
condition: ENABLE(WEBXR_HANDS)
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
WebXRHitTestModuleEnabled:
type: bool
status: testable
category: dom
humanReadableName: "WebXR Hit Test Module"
humanReadableDescription: "Adds support for the Hit Test Module for WebXR"
condition: ENABLE(WEBXR_HIT_TEST)
defaultValue:
WebKitLegacy:
default: false
WebKit:
default: false
WebCore:
default: false
WebXRLayersAPIEnabled:
type: bool
status: Webxr_layers_feature_status
category: dom
humanReadableName: "WebXR Layers API"
humanReadableDescription: "Adds support for the WebXR Layers API"
condition: ENABLE(WEBXR_LAYERS)
defaultValue:
WebKitLegacy:
default: false
WebKit:
"ENABLE(WEBXR_LAYERS) && USE(OPENXR)": true
default: false
WebCore:
"ENABLE(WEBXR_LAYERS) && USE(OPENXR)": true
default: false
WebXRWebGPUBindingsEnabled:
type: bool
status: Webgpu_webxr_feature_status
category: dom
humanReadableName: "WebGPU support for WebXR"
humanReadableDescription: "Adds WebGPU support for WebXR"
defaultValue:
WebKitLegacy:
"PLATFORM(VISION) && ENABLE(WEBXR_WEBGPU)": true
default: false
WebKit:
"PLATFORM(VISION) && ENABLE(WEBXR_WEBGPU)": true
default: false
WebCore:
"PLATFORM(VISION) && ENABLE(WEBXR_WEBGPU)": true
default: false
disableInLockdownMode: true
sharedPreferenceForWebProcess: true
WheelEventGesturesBecomeNonBlocking:
type: bool
status: mature
humanReadableName: "Wheel Event gestures become non-blocking"
humanReadableDescription: "preventDefault() is only allowed on the first wheel event in a gesture"
defaultValue:
WebKitLegacy:
"PLATFORM(MAC)": WebKit::defaultWheelEventGesturesBecomeNonBlocking()
default: true
WebKit:
"PLATFORM(MAC)": WebKit::defaultWheelEventGesturesBecomeNonBlocking()
default: true
WebCore:
default: true
WindowFocusRestricted:
comment: When enabled, window.blur() does not change focus, and window.focus() only
changes focus when invoked from the context that created the window.
type: bool
status: embedder
defaultValue:
WebKitLegacy:
PLATFORM(MAC): WebKit::defaultWindowFocusRestricted()
default: true
WebKit:
default: true
WebCore:
default: true
WirelessPlaybackMediaPlayerEnabled:
type: bool
status: internal
category: media
humanReadableName: "Wireless Playback Media Player"
humanReadableDescription: "Enable wireless playback via MediaPlayerPrivateWirelessPlayback"
condition: ENABLE(WIRELESS_PLAYBACK_MEDIA_PLAYER)
defaultValue:
WebCore:
default: false
WebKit:
default: true
WebKitLegacy:
default: false
disableInLockdownMode: true
WirelessPlaybackTargetAPIEnabled:
type: bool
status: embedder
defaultValue:
WebKitLegacy:
"PLATFORM(VISION)" : false
default: true
WebKit:
"PLATFORM(VISION)" : false
default: true
WebCore:
"PLATFORM(VISION)" : false
default: true
WorkerInSharedWorkerEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Worker in SharedWorker"
humanReadableDescription: "Allow creating dedicated workers from shared workers"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
WorkerParseErrorReportingEnabled:
type: bool
status: stable
category: dom
humanReadableName: "Worker parse error reporting"
humanReadableDescription: "Report worker script parse errors on the Worker object"
defaultValue:
WebCore:
default: true
WebKitLegacy:
default: true
WebKit:
default: true
WriteRichTextDataWhenCopyingOrDragging:
type: bool
status: internal
humanReadableName: "Write RTF on Copy"
humanReadableDescription: "Write RTF, RTFD and attributed strings to the pasteboard when copying or dragging"
condition: PLATFORM(COCOA)
defaultValue:
WebKitLegacy:
default: true
WebKit:
"PLATFORM(IOS_FAMILY)": WebKit::defaultWriteRichTextDataWhenCopyingOrDragging()
default: true
WebCore:
default: true
XSLTEnabled:
type: bool
status: internal
webcoreName: "xsltEnabled"
webcoreGetter: "isXSLTEnabled"
condition: ENABLE(XSLT)
humanReadableName: "XSLT Support Enabled"
humanReadableDescription: "Enables support for XSLT"
defaultValue:
WebKitLegacy:
default: true
WebKit:
default: true
WebCore:
default: true
disableInLockdownMode: true
ZoomOnDoubleTapWhenRoot:
type: bool
status: internal
condition: PLATFORM(IOS_FAMILY)
humanReadableName: "DTTZ also when root"
humanReadableDescription: "Double taps zoom, even if we dispatched a click on the root nodes"
webcoreBinding: none
exposed: [ WebKit ]
defaultValue:
WebKit:
default: false