# 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.

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

# 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()

CaptureVideoInGPUProcessEnabled:
  type: bool
  humanReadableName: "GPU Process: Video Capture"
  humanReadableDescription: "Enable video capture in GPU Process"
  webcoreBinding: none
  condition: ENABLE(MEDIA_STREAM)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: WebKit::defaultCaptureVideoInGPUProcessEnabled()

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

CookieConsentAPIEnabled:
  type: bool
  humanReadableName: "Cookie Consent API"
  humanReadableDescription: "Enable cookie consent API"
  exposed: [ WebKit ]
  defaultValue:
    WebCore:
      default: false
    WebKitLegacy:
      default: false
    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

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

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

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(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(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(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(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(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

LayerBasedSVGEngineEnabled:
  type: bool
  humanReadableName: "Layer-based SVG Engine (LBSE)"
  humanReadableDescription: "Enable next-generation layer-based SVG Engine (LBSE)"
  condition: ENABLE(LAYER_BASED_SVG_ENGINE)
  webcoreOnChange: layerBasedSVGEngineEnabledChanged
  defaultValue:
    WebCore:
      default: false
    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: "Generate momentum events in WebKit instead of using those delivered by the system"
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: true
    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

NotificationEventEnabled:
  type: bool
  humanReadableName: "NotificationEvent support"
  humanReadableDescription: "NotificationEvent and ServiceWorkerRegistration.showNotification() support"
  webcoreBinding: RuntimeEnabledFeatures
  condition: ENABLE(NOTIFICATION_EVENT)
  defaultValue:
    WebCore:
      default: false
    WebKit:
      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

UseGPUProcessForCanvasRenderingEnabled:
  type: bool
  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:
      default: defaultUseGPUProcessForCanvasRenderingEnabled()

UseGPUProcessForMediaEnabled:
  type: bool
  humanReadableName: "GPU Process: Media"
  humanReadableDescription: "Do all media loading and playback in the GPU Process"
  webcoreBinding: none
  condition: ENABLE(GPU_PROCESS) && !USE(GSTREAMER)
  exposed: [ WebKit ]
  defaultValue:
    WebKit:
      default: WebKit::defaultUseGPUProcessForMediaEnabled()

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

# FIXME: This is not relevant for WebKitLegacy, so should be excluded from WebKitLegacy entirely.
WebRTCPlatformCodecsInGPUProcessEnabled:
  type: bool
  humanReadableName: "GPU Process: WebRTC Platform Codecs"
  humanReadableDescription: "Enable WebRTC Platform Codecs in GPU Process"
  condition: ENABLE(WEB_RTC)
  defaultValue:
    WebKitLegacy:
      default: false
    WebKit:
      default: WebKit::defaultWebRTCCodecsInGPUProcess()
    WebCore:
      default: false

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
