# Copyright (c) 2020 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.

# For internal features:
# The type should be boolean.
# They must include a humanReadableName and humanReadableDescription. This is
#   the text exposed to the user from the WebKit client.

# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
AllowViewportShrinkToFitContent:
  type: bool
  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

AlwaysZoomOnDoubleTap:
  type: bool
  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

# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
ApplePayRemoteUIEnabled:
  type: bool
  humanReadableDescription: "Enable Apple Pay Remote UI"
  humanReadableName: "Apple Pay Remote UI"
  condition: ENABLE(APPLE_PAY_REMOTE_UI)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: true
    WebCore:
      default: true

AriaReflectionEnabled:
  type: bool
  humanReadableName: "ARIA Reflection"
  humanReadableDescription: "ARIA Reflection support"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true

AsyncFrameScrollingEnabled:
  type: bool
  webcoreOnChange: setNeedsRelayoutAllFrames
  humanReadableName: "Async Frame Scrolling"
  humanReadableDescription: "Perform frame scrolling off the main thread"
  exposed: [ WebKit ]
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "USE(NICOSIA)": true
      "PLATFORM(IOS_FAMILY)": true
      default: WebKit::defaultAsyncFrameScrollingEnabled()
    WebCore:
      default: false

AsyncOverflowScrollingEnabled:
  type: bool
  webcoreOnChange: setNeedsRelayoutAllFrames
  humanReadableName: "Async Overflow Scrolling"
  humanReadableDescription: "Perform overflow scrolling off the main thread"
  exposed: [ WebKit ]
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "USE(NICOSIA)": true
      "PLATFORM(IOS_FAMILY)": true
      default: WebKit::defaultAsyncFrameScrollingEnabled()
    WebCore:
      default: false

CSSLogicalEnabled:
  type: bool
  humanReadableName: "CSS Logical Properties and Values"
  humanReadableDescription: "Enable CSS Logical Properties and Values"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

CSSOMViewScrollingAPIEnabled:
  type: bool
  humanReadableName: "CSSOM View Scrolling API"
  humanReadableDescription: "Implement standard behavior for scrollLeft, scrollTop, scrollWidth, scrollHeight, scrollTo, scrollBy and scrollingElement."
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      "PLATFORM(IOS_FAMILY)": WebKit::defaultCSSOMViewScrollingAPIEnabled()
      default: true
    WebCore:
      default: false

CaptureAudioInGPUProcessEnabled:
  type: bool
  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()

CaptureAudioInUIProcessEnabled:
  type: bool
  humanReadableName: "Capture audio in UI Process"
  humanReadableDescription: "Enable audio capture in UI Process"
  webcoreBinding: none
  condition: ENABLE(MEDIA_STREAM)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: WebKit::defaultCaptureAudioInUIProcessEnabled()

CaptureVideoInUIProcessEnabled:
  type: bool
  humanReadableName: "Capture video in UI Process"
  humanReadableDescription: "Enable video capture in UI Process"
  webcoreBinding: none
  condition: ENABLE(MEDIA_STREAM)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: false

DOMPasteAccessRequestsEnabled:
  type: bool
  humanReadableName: "DOM Paste Access Requests"
  humanReadableDescription: "Enable DOM Paste Access Requests"
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "PLATFORM(IOS) || PLATFORM(MAC)": true
      default: false
    WebCore:
      default: false

# 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
  humanReadableName: "DataList Element"
  humanReadableDescription: "Enable datalist elements"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(DATALIST_ELEMENT)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "PLATFORM(WATCHOS)": false
      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
  humanReadableName: "Date/Time inputs have editable components"
  humanReadableDescription: "Enable multiple editable components in date/time inputs"
  condition: ENABLE(DATE_AND_TIME_INPUT_TYPES)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "PLATFORM(MAC) || PLATFORM(GTK)": true
      default: false
    WebCore:
      default: false

EnterKeyHintEnabled:
  type: bool
  humanReadableName: "Enter Key Hint"
  humanReadableDescription: "Enable the enterKeyHint HTML attribute"
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "PLATFORM(COCOA)": true
      default: false
    WebCore:
      default: false

EventHandlerDrivenSmoothKeyboardScrollingEnabled:
 type: bool
 humanReadableName: "EventHandler driven smooth keyboard scrolling"
 humanReadableDescription: "Enable EventHandler driven smooth keyboard scrolling"
 defaultValue:
  WebKitLegacy:
   default: false
  WebKit:
   default: false
  WebCore:
   default: false

# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
ExperimentalPlugInSandboxProfilesEnabled:
  type: bool
  humanReadableName: "Sandbox Plug-Ins"
  humanReadableDescription: "Enable Plug-In sandboxing"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

FasterClicksEnabled:
  type: bool
  humanReadableName: "Fast clicks"
  humanReadableDescription: "Support faster clicks on zoomable pages"
  webcoreBinding: none
  condition: PLATFORM(IOS_FAMILY)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: true

# FIXME: This should be reconciled with 'FrameFlattening' in WebPreferences.yaml .
FrameFlatteningEnabled:
  type: bool
  humanReadableName: "Frame flattening"
  humanReadableDescription: "Enable frame flattening, which adjusts the height of an iframe to fit its contents"
  webcoreBinding: custom
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      "PLATFORM(IOS_FAMILY)": true
      default: false

FullScreenEnabled:
  type: bool
  humanReadableName: "Fullscreen API"
  humanReadableDescription: "Fullscreen API"
  condition: ENABLE(FULLSCREEN_API)
  hidden: EXPERIMENTAL_FULLSCREEN_API_HIDDEN
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false
    WebCore:
      default: false

ICECandidateFilteringEnabled:
  type: bool
  webcoreOnChange: iceCandidateFilteringEnabledChanged
  inspectorOverride: true
  humanReadableName: "Enable ICE Candidate Filtering"
  humanReadableDescription: "Enable ICE Candidate Filtering"
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true
    WebCore:
      default: true

IOSFormControlRefreshEnabled:
  type: bool
  humanReadableName: "iOS Form Control Refresh"
  humanReadableDescription: "Enable the new appearance for form controls on iOS"
  condition: ENABLE(IOS_FORM_CONTROL_REFRESH)
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true
    WebCore:
      default: true

IPCTestingAPIEnabled:
  type: bool
  humanReadableName: "IPC Testing API"
  humanReadableDescription: "Enable IPC Testing API for JavaScript"
  webcoreBinding: none
  condition: ENABLE(IPC_TESTING_API)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: false

InputTypeColorEnabled:
  type: bool
  humanReadableName: "Color Inputs"
  humanReadableDescription: "Enable input elements of type color"
  condition: ENABLE(INPUT_TYPE_COLOR)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "PLATFORM(WATCHOS)": false
      default: true
    WebCore:
      default: false

InputTypeDateEnabled:
  type: bool
  humanReadableName: "Date Input"
  humanReadableDescription: "Enable input elements of type date"
  condition: ENABLE(INPUT_TYPE_DATE)
  defaultValue:
    WebKitLegacy:
      "PLATFORM(IOS_FAMILY)": true
      default: false
    WebKit:
      "PLATFORM(MACCATALYST) || PLATFORM(APPLETV)": false
      default: true
    WebCore:
      default: false

InputTypeDateTimeLocalEnabled:
  type: bool
  humanReadableName: "datetime-local Inputs"
  humanReadableDescription: "Enable input elements of type datetime-local"
  condition: ENABLE(INPUT_TYPE_DATETIMELOCAL)
  defaultValue:
    WebKitLegacy:
      "PLATFORM(IOS_FAMILY)": true
      default: false
    WebKit:
      "PLATFORM(MACCATALYST) || PLATFORM(APPLETV)": false
      default: true
    WebCore:
      default: false

InputTypeMonthEnabled:
  type: bool
  humanReadableName: "Month Input"
  humanReadableDescription: "Enable input elements of type month"
  condition: ENABLE(INPUT_TYPE_MONTH)
  defaultValue:
    WebKitLegacy:
      "PLATFORM(IOS_FAMILY)": true
      default: false
    WebKit:
      "!PLATFORM(MAC) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV)": true
      default: false
    WebCore:
      default: false

InputTypeTimeEnabled:
  type: bool
  humanReadableName: "Time Input"
  humanReadableDescription: "Enable input elements of type time"
  condition: ENABLE(INPUT_TYPE_TIME)
  defaultValue:
    WebKitLegacy:
      "PLATFORM(IOS_FAMILY)": true
      default: false
    WebKit:
      "PLATFORM(MACCATALYST) || PLATFORM(APPLETV)": false
      default: true
    WebCore:
      default: false

InputTypeWeekEnabled:
  type: bool
  humanReadableName: "Week Input"
  humanReadableDescription: "Enable input elements of type week"
  condition: ENABLE(INPUT_TYPE_WEEK)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "!PLATFORM(MAC) && !PLATFORM(MACCATALYST) && !PLATFORM(APPLETV)": true
      default: false
    WebCore:
      default: false

# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
IsFirstPartyWebsiteDataRemovalLiveOnTestingEnabled:
  type: bool
  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 relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
IsFirstPartyWebsiteDataRemovalReproTestingEnabled:
  type: bool
  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

KeygenElementEnabled:
  type: bool
  webKitLegacyPreferenceKey: WebKitKeygenElementEnabledPreferenceKey
  webcoreBinding: RuntimeEnabledFeatures
  humanReadableName: "HTMLKeygenElement"
  humanReadableDescription: "Enables the deprecated and disabled-by-default HTML keygen element."
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

LayoutFormattingContextEnabled:
  type: bool
  humanReadableName: "Full next-generation layout (LFC)"
  humanReadableDescription: "Enable full next-generation layout (LFC)"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

LayoutFormattingContextIntegrationEnabled:
  type: bool
  humanReadableName: "Next-generation line layout integration (LFC)"
  humanReadableDescription: "Enable next-generation line layout integration (LFC)"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(LAYOUT_FORMATTING_CONTEXT)
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true

LegacyOverflowScrollingTouchEnabled:
  type: bool
  webcoreOnChange: setNeedsRelayoutAllFrames
  humanReadableName: "Legacy -webkit-overflow-scrolling property"
  humanReadableDescription: "Support the legacy -webkit-overflow-scrolling CSS property"
  condition: ENABLE(OVERFLOW_SCROLLING_TOUCH)
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true
    WebCore:
      default: true

LineHeightUnitsEnabled:
  type: bool
  humanReadableName: "lh / rlh units"
  humanReadableDescription: "Enable the lh and lhr units"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

LiveRangeSelectionEnabled:
  type: bool
  humanReadableName: "Live Ranges in Selection"
  humanReadableDescription: "Live range behavior for ranges in the Selection object"
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false
    WebCore:
      default: false

MediaCaptureRequiresSecureConnection:
  type: bool
  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

MockCaptureDevicesEnabled:
  type: bool
  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

MomentumScrollingAnimatorEnabled:
  type: bool
  humanReadableName: "Momentum Scrolling Animator"
  humanReadableDescription: "Drive momentum scrolling via an internal animator instead of using momentum events"
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false
    WebCore:
      default: false

MouseEventsSimulationEnabled:
  type: bool
  humanReadableName: "Mouse events simulation"
  humanReadableDescription: "Enable mouse events dispatch along with touch events on iOS"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(TOUCH_EVENTS)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

NPAPIPlugInsEnabledForTestingInWebKitLegacy:
  type: bool
  humanReadableName: "NPAPI Plug-Ins Enabled In WebKitLegacy"
  humanReadableDescription: "Enable NPAPI Plug-Ins for testing"
  webcoreBinding: none
  exposed: [ WebKitLegacy ]
  defaultValue:
    WebKitLegacy:
      default: false

OffscreenCanvasEnabled:
  type: bool
  humanReadableName: "OffscreenCanvas"
  humanReadableDescription: "Support for the OffscreenCanvas APIs"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(OFFSCREEN_CANVAS)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "ENABLE(EXPERIMENTAL_FEATURES) && (PLATFORM(GTK) || PLATFORM(WPE))": true
      default: false

OffscreenCanvasInWorkersEnabled:
  type: bool
  humanReadableName: "OffscreenCanvas in Workers"
  humanReadableDescription: "Support for the OffscreenCanvas APIs in Workers"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(OFFSCREEN_CANVAS_IN_WORKERS)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "ENABLE(EXPERIMENTAL_FEATURES) && (PLATFORM(GTK) || PLATFORM(WPE))": true
      default: false

PreferFasterClickOverDoubleTap:
  type: bool
  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

PreferInlineTextSelectionInImages:
  type: bool
  humanReadableName: "Inline Text Selection in Images"
  humanReadableDescription: "Prefer inline text selection in images over using the context menu"
  condition: ENABLE(IMAGE_ANALYSIS)
  defaultValue:
    WebCore:
      default: true
    WebKitLegacy:
      default: true
    WebKit:
      default: true

ReplayCGDisplayListsIntoBackingStore:
  type: bool
  humanReadableName: "CG Display Lists: Replay for Testing"
  humanReadableDescription: "Replay CG Display Lists into layer contents for testing"
  webcoreBinding: none
  condition: ENABLE(CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: false

ResourceLoadSchedulingEnabled:
  type: bool
  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

# FIXME: This is not relevent for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
RestrictedHTTPResponseAccess:
  type: bool
  humanReadableName: "Filter HTTP Response for Web Processes"
  humanReadableDescription: "Enable HTTP Response filtering for Web Processes"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true

ScrollingPerformanceTestingEnabled:
  type: bool
  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

SecureContextChecksEnabled:
  type: bool
  humanReadableName: "Secure Context Checks"
  humanReadableDescription: "Allow access to HTTPS-only Web APIs over HTTP"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true

SelectionAcrossShadowBoundariesEnabled:
  type: bool
  humanReadableName: "Selection across shadow DOM"
  humanReadableDescription: "Allow user-initiated selection across shadow DOM boundaries"
  defaultValue:
    WebKitLegacy:
      default: true
    WebKit:
      default: true
    WebCore:
      default: true
      
SelectionFlippingEnabled:
  type: bool
  humanReadableName: "Selection Flipping"
  humanReadableDescription: "Enable Selection Flipping"
  webcoreBinding: none
  defaultValue:
    WebKit:
      default: true

# FIXME: This is not implemented for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
ServiceWorkersEnabled:
  type: bool
  humanReadableName: "Service Workers"
  humanReadableDescription: "Enable Service Workers"
  webcoreBinding: RuntimeEnabledFeatures
  webcoreName: serviceWorkerEnabled
  condition: ENABLE(SERVICE_WORKER)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "ENABLE(EXPERIMENTAL_FEATURES) || PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE)": true
      default: false

SimpleLineLayoutEnabled:
  type: bool
  webcoreOnChange: setNeedsRecalcStyleInAllFrames
  humanReadableName: "Simple line layout"
  humanReadableDescription: "Enable simple line layout path (SLL)"
  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.
SpeakerSelectionRequiresUserGesture:
  type: bool
  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

# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
TextAutosizingUsesIdempotentMode:
  type: bool
  webcoreOnChange: textAutosizingUsesIdempotentModeChanged
  humanReadableName: "Idempotent Text Autosizing"
  humanReadableDescription: "Use idempotent text autosizing mode"
  condition: ENABLE(TEXT_AUTOSIZING)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      "PLATFORM(IOS_FAMILY)": defaultTextAutosizingUsesIdempotentMode()
      default: false
    WebCore:
      default: false

TextRecognitionEnhancementsEnabled:
  type: bool
  humanReadableName: "Text Recognition Enhancements"
  humanReadableDescription: "Enable Text Recognition Enhancements"
  condition: ENABLE(IMAGE_ANALYSIS)
  exposed: [ WebKit ]
  defaultValue:
    WebCore:
      default: false
    WebKitLegacy:
      default: false
    WebKit:
      default: false

# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
UndoManagerAPIEnabled:
  type: bool
  humanReadableName: "UndoManager DOM API"
  humanReadableDescription: "Enable the UndoManager DOM API"
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false
    WebCore:
      default: false

UpgradeKnownHostsToHTTPSEnabled:
  type: bool
  humanReadableName: "Upgrade known hosts to HTTPS"
  humanReadableDescription: "Upgrade known hosts to HTTPS"
  webcoreBinding: none
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: true

UseARKitForModel:
  type: bool
  humanReadableName: "Use ARKit for <model>"
  humanReadableDescription: "Use ARKit for <model>"
  webcoreBinding: none
  exposed: [ WebKit ]
  condition: ENABLE(ARKIT_INLINE_PREVIEW)
  defaultValue:
    WebKit:
      default: true

UseCGDisplayListsForDOMRendering:
  type: bool
  humanReadableName: "CG Display Lists: DOM Rendering"
  humanReadableDescription: "Use CG Display Lists for DOM rendering"
  webcoreBinding: none
  condition: ENABLE(CG_DISPLAY_LIST_BACKED_IMAGE_BUFFER)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: true

UseGPUProcessForDOMRenderingEnabled:
  type: bool
  humanReadableName: "GPU Process: DOM Rendering"
  humanReadableDescription: "Enable DOM rendering in GPU Process"
  webcoreBinding: none
  condition: ENABLE(GPU_PROCESS)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: defaultUseGPUProcessForDOMRenderingEnabled()

UseSceneKitForModel:
  type: bool
  humanReadableName: "Use SceneKit for <model>"
  humanReadableDescription: "Use SceneKit for <model>"
  webcoreBinding: none
  exposed: [ WebKit ]
  condition: HAVE(SCENEKIT)
  defaultValue:
    WebKit:
      default: false

# FIXME: Remove once <rdar://73830961> has been fixed
UseiTunesAVOutputContext:
  type: bool
  humanReadableName: "Use iTunes AVOutputContext"
  humanReadableDescription: "Use iTunes AVOutputContext"
  webcoreBinding: none
  condition: ENABLE(WIRELESS_PLAYBACK_TARGET)
  defaultValue:
    WebKit:
      default: true

WebAPIStatisticsEnabled:
  type: bool
  humanReadableName: "Web API Statistics"
  humanReadableDescription: "Enable Web API Statistics"
  webcoreBinding: RuntimeEnabledFeatures
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: false

# FIXME: Is this implemented for WebKitLegacy? If not, this should be excluded from WebKitLegacy entirely.
WebRTCDTMFEnabled:
  type: bool
  humanReadableName: "WebRTC DTMF"
  humanReadableDescription: "Enable WebRTC DTMF"
  webcoreBinding: RuntimeEnabledFeatures
  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.
WebRTCH264HardwareEncoderEnabled:
  type: bool
  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.
WebRTCH264SimulcastEnabled:
  type: bool
  humanReadableName: "WebRTC H264 Simulcast"
  humanReadableDescription: "Enable WebRTC H264 Simulcast"
  webcoreBinding: RuntimeEnabledFeatures
  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.
WebRTCMDNSICECandidatesEnabled:
  type: bool
  humanReadableName: "WebRTC mDNS ICE candidates"
  humanReadableDescription: "Enable WebRTC mDNS ICE candidates"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(WEB_RTC)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: true

WebSQLEnabled:
  type: bool
  humanReadableName: "Enable WebSQL"
  humanReadableDescription: "Enable WebSQL"
  webcoreBinding: custom
  exposed: [ WebKitLegacy ]
  defaultValue:
    WebKitLegacy:
      "PLATFORM(IOS_FAMILY)": WebKit::defaultWebSQLEnabled()
      default: true

ZoomOnDoubleTapWhenRoot:
  type: bool
  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
