# Defines properties which are available on the Settings object.
#
# Please think carefully before adding a new Setting.  Some questions to
# consider are:
# - Should this be a RuntimeEnabledFeature instead? Settings are for things
#   which we support either values of at runtime.  Features are set at renderer
#   process startup and are never changed. Features also tend to be set to a
#   value based on the platform or the stability of the code in question, where
#   as settings both codepaths need to be stable.
# - How will you ensure test coverage of all relevant values of your setting?
# - Is the default value appropriate for other platforms or ports which may
#   not be aware of your setting?
# - Can your setting result in behavior differences observable to web
#   developers?
# - Should this setting ideally be removed in the future?  If so please file
#   a bug and reference it in the comments for your setting.
#
# One reason to add a Setting is to manage the risk associated with adding a
# new feature.  For example, we may choose to ship a new UI behavior or
# performance optimization to ChromeOS users first (in order to gather feedback
# and metrics on its use from the wild) before attempting to ship it to
# Windows.
#
# FIXME: Add support for global settings.
# FIXME: Add support for custom getters/setters.

defaultTextEncodingName type=String

# Do not hide chars typed in password fields immediately, but let the last char stay
# visible for N seconds, configured by the passwordEchoDurationInSeconds setting
# FIXME: Enable automatically if passwordEchoDurationInSeconds is set to a positive value.
passwordEchoEnabled initial=false

# Configure how long the last char should say visible in seconds.
passwordEchoDurationInSeconds type=double, initial=1

# Sets the magnification value for validation message timer.  If the
# magnification value is N, a validation message disappears automatically after
# <message length> * N / 1000 seconds.  If N is equal to or less than 0, a
# validation message doesn't disappears automaticaly.
validationMessageTimerMagnification type=int, initial=50

# Number of pixels below which 2D canvas is rendered in software
# even if hardware acceleration is enabled.
# Hardware acceleration is useful for large canvases where it can avoid the
# pixel bandwidth between the CPU and GPU. But GPU acceleration comes at
# a price - extra back-buffer and texture copy. Small canvases are also
# widely used for stylized fonts. Anti-aliasing text in hardware at that
# scale is generally slower. So below a certain size it is better to
# draw canvas in software.
minimumAccelerated2dCanvasSize type=int, initial=257*256

minimumFontSize type=int, initial=0, invalidate=Style
minimumLogicalFontSize type=int, initial=0, invalidate=Style
defaultFontSize type=int, initial=0, invalidate=Style
defaultFixedFontSize type=int, initial=0, invalidate=Style

editingBehaviorType type=EditingBehaviorType, initial=editingBehaviorTypeForPlatform()

caretBrowsingEnabled initial=false
localStorageEnabled initial=false
allowUniversalAccessFromFileURLs initial=true
allowFileAccessFromFileURLs initial=true
javaScriptCanOpenWindowsAutomatically initial=false
supportsMultipleWindows initial=true
javaScriptCanAccessClipboard initial=false
shouldPrintBackgrounds initial=false
shouldClearDocumentBackground initial=true

textAreasAreResizable initial=false, invalidate=Style
acceleratedCompositingEnabled initial=true, invalidate=AcceleratedCompositing

offlineWebApplicationCacheEnabled initial=true
allowScriptsToCloseWindows initial=false

# FIXME: This should really be disabled by default as it makes platforms that
# don't support the feature download files they can't use by.
# Leaving enabled for now to not change existing behavior.
downloadableBinaryFontsEnabled initial=true

xssAuditorEnabled initial=false

preferCompositingToLCDTextEnabled initial=false, invalidate=AcceleratedCompositing

# 3D canvas (WebGL) support.
webGLEnabled initial=false

webGLErrorsToConsoleEnabled initial=true
antialiased2dCanvasEnabled initial=true
antialiasedClips2dCanvasEnabled initial=false
accelerated2dCanvasMSAASampleCount type=int, initial=0

hyperlinkAuditingEnabled initial=false
allowRunningOfInsecureContent initial=true

mediaControlsOverlayPlayButtonEnabled initial=false
mediaPlaybackRequiresUserGesture initial=false

presentationRequiresUserGesture initial=true

scrollAnimatorEnabled initial=true

# Used to disable threaded, compositor scrolling for testing purposes.
# crbug.com/410974 tracks removal once alternative solutions for selective
# main thread scrolling are supported.
threadedScrollingEnabled initial=true, invalidate=Style

# Used in layout tests for gesture tap highlights. Makes the highlights square
# (rather than rounded) to make it possible to reftest the results.
mockGestureTapHighlightsEnabled initial=false

shouldRespectImageOrientation initial=false

# Limited use by features which behave differently depending on the input
# devices available.  For example, the pointer and hover media queries.
# Note that we need to be careful when basing behavior or UI on this -
# just because a device is present doesn't mean the user cares about it
# or uses it (i.e. Chromebook Pixel users generally don't want to give up
# screen real estate just because they happen to have a touchscreen).
deviceSupportsTouch initial=false
deviceSupportsMouse initial=true

# This value indicates the number of simultaneous multi-touch points supported
# by the currently connected screen/digitizer that supports the most points.
# From Pointer Events spec:
#   http://www.w3.org/TR/pointerevents/#widl-Navigator-maxTouchPoints
maxTouchPoints type=int, initial=0

# Whether touch gestures should be "fuzzed" to nearest touch targets.
# It's expected that this is enabled everywhere by default, but it may be
# disabled for testing purposes as the algorithm is not yet perfect.
# crbug.com/304895 tracks removal once we're satisfied with the algorithm.
touchAdjustmentEnabled initial=true

# Determines whether WebViewClient::didTapMultipleTargets will be used for
# touch disambiguation.
multiTargetTapNotificationEnabled initial=true

syncXHRInDocumentsEnabled initial=true
cookieEnabled initial=true
navigateOnDragDrop initial=true
DOMPasteAllowed initial=false

allowCustomScrollbarInMainFrame initial=true
webSecurityEnabled initial=true

# Special keyboard navigation mode intented for platforms with no
# proper mouse or touch support, such as a TV controller with a remote.
spatialNavigationEnabled initial=false

# This setting adds a means to enable/disable touch initiated drag & drop. If
# enabled, the user can initiate drag using long press.
# crbug.com/304894 tracks removal once it's been enabled on all platforms.
touchDragDropEnabled initial=false

# Some apps could have a default video poster if it is not set.
defaultVideoPosterURL type=String

smartInsertDeleteEnabled initial=false
selectTrailingWhitespaceEnabled initial=defaultSelectTrailingWhitespaceEnabled

selectionIncludesAltImageText initial=false

selectionStrategy type=SelectionStrategy, initial=SelectionStrategy::Character

######## Settings used by Android WebView below ########

useLegacyBackgroundSizeShorthandBehavior initial=false

# This quirk is to maintain compatibility with Android apps built on
# the Android SDK prior to and including version 18.
# Presumably, this can be removed any time after 2015.
# See http://crbug.com/282130.
viewportMetaZeroValuesQuirk initial=false

# Another Android SDK <= 18 quirk, removable 2015.
# See http://crbug.com/295287
ignoreMainFrameOverflowHiddenQuirk initial=false

# Yet another Android SDK <= 18 quirk, removable 2015.
# See http://crbug.com/305236
reportScreenSizeInPhysicalPixelsQuirk initial=false

# One more Android SDK <= 18 quirk, removable 2015.
# See http://crbug.com/306548
viewportMetaMergeContentQuirk initial=false

# This quirk is to maintain compatibility with Android apps.
# It will be possible to remove it once WebSettings.{get|set}UseWideViewPort
# API function will be removed.
# See http://crbug.com/288037.
wideViewportQuirkEnabled initial=false

# Used by the android_webview to support a horizontal height auto-sizing
# mode.
forceZeroLayoutHeight initial=false, invalidate=ViewportDescription

mainFrameClipsContent initial=true

# For android.webkit.WebSettings.setUseWideViewport()
# http://developer.android.com/reference/android/webkit/WebSettings.html#setUseWideViewPort(boolean)
useWideViewport initial=true, invalidate=ViewportDescription

# For android.webkit.WebSettings.setLoadWithOverviewMode()
# http://developer.android.com/reference/android/webkit/WebSettings.html#setLoadWithOverviewMode(boolean)
loadWithOverviewMode initial=true, invalidate=ViewportDescription

# Used by android_webview to support legacy apps that inject script into a top-level initial empty
# document and expect it to persist on navigation, even though the origin is unique. Note that this
# behavior violates the requirements described by [Initialising a new Document object] in
# https://html.spec.whatwg.org/multipage/browsers.html#navigating-across-documents.
shouldReuseGlobalForUnownedMainFrame initial=false

######## End of settings used by Android WebView ########


# Touch based text selection and editing on desktop.
# crbug.com/304873 tracks removal once it's been enabled on all platforms.
touchEditingEnabled initial=false

# Settings for experimental desktop pinch-zoom support (with semantics
# optimized for large screens).  Pinch-zoom generally is implemented mainly
# outside of blink (in the compositor) and doesn't require any settings.
# These settings are for an experimental modification to how pinch-zoom
# behaves. crbug.com/304869 tracks removal.
useSolidColorScrollbars initial=false
pinchOverlayScrollbarThickness type=int, initial=0

# Experiment to have all APIs reflect the layout viewport.
# crbug.com/489206 tracks the experiment.
inertVisualViewport initial=false

# The rubber-band overscroll effect is implemented in Blink and is being moved
# to the compositor thread. This will be set to true and eventually removed.
# crbug.com/133097
rubberBandingOnCompositorThread initial=false

# Font scale factor for accessibility, applied as part of text autosizing.
accessibilityFontScaleFactor type=double, initial=1.0, invalidate=TextAutosizing

# Only used by Layout Tests and inspector emulation.
mediaTypeOverride type=String, initial="", invalidate=MediaQuery
displayModeOverride type=WebDisplayMode, initial=WebDisplayModeUndefined, invalidate=MediaQuery

# loadsImagesAutomatically only suppresses the network load of
# the image URL. A cached image will still be rendered if requested.
loadsImagesAutomatically initial=false, invalidate=ImageLoading
imagesEnabled initial=true, invalidate=ImageLoading
imageAnimationPolicy type=ImageAnimationPolicy, initial=ImageAnimationPolicyAllowed

# Number of outstanding and pending tokens allowed in the background HTML
# parser. A value of 0 indicates the parser should use its default value.
backgroundHtmlParserOutstandingTokenLimit type=unsigned, initial=0
backgroundHtmlParserPendingTokenLimit type=unsigned, initial=0

# Html preload scanning is a fast, early scan of HTML documents to find loadable
# resources before the parser advances to them. If it is disabled, resources will
# be loaded later.
doHtmlPreloadScanning initial=true

pluginsEnabled initial=false

viewportEnabled initial=false, invalidate=ViewportDescription
viewportMetaEnabled initial=false, invalidate=ViewportDescription

dnsPrefetchingEnabled initial=false, invalidate=DNSPrefetching

dataSaverEnabled initial=false

# FIXME: This is a temporary flag and should be removed
# when squashing is ready. (crbug.com/261605)
layerSquashingEnabled initial=false

# Clients that execute script should call ScriptController::canExecuteScripts()
# instead of this function. ScriptController::canExecuteScripts() checks the
# HTML sandbox, plugin sandboxing, and other important details.
scriptEnabled initial=false

# Forces initialization of main world, even if no scripts will be executed.
# Used by inspector to report all contexts.
forceMainWorldInitialization initial=false, invalidate=DOMWorlds

# Compensates for poor text legibility on mobile devices. This value is
# multiplied by the font scale factor when performing text autosizing of
# websites that do not set an explicit viewport description.
deviceScaleAdjustment type=double, initial=1.0, invalidate=TextAutosizing

# This value indicates the maximum number of bytes a document is allowed
# to transmit in Beacons (via navigator.sendBeacon()) -- Beacons are
# intended to be smaller payloads transmitted as a page is unloading, not
# a general (one-way) network transmission API.
# The spec ( https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/Beacon/Overview.html )
# does not proscribe an upper limit, but allows for it -- the underlying
# API will return 'false' in that case.
maxBeaconTransmission type=int, initial=65536

# This value is set to false if the platform does not support fullscreen.
# When set to false all the requests to enter fullscreen will return an error
# (fullscreenerror or webkitfullscreenerror) as specified in the standard:
# http://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen
fullscreenSupported initial=true

# V8 supports different types of caching. Used by V8 bindings.
v8CacheOptions type=V8CacheOptions, initial=V8CacheOptionsDefault

# V8 code cache for CacheStorage supports three types of strategies (none, normal and aggressive).
v8CacheStrategiesForCacheStorage type=V8CacheStrategiesForCacheStorage, initial=V8CacheStrategiesForCacheStorage::Default

# These values are bit fields for the properties of available pointing devices
# and may take on multiple values (e.g. laptop with touchpad and touchscreen
# has pointerType coarse *and* fine).
availablePointerTypes type=int, initial=PointerTypeNone, invalidate=MediaQuery
availableHoverTypes type=int, initial=HoverTypeNone, invalidate=MediaQuery

# These values specify properties of the user's primary pointing device only.
primaryPointerType type=PointerType, initial=PointerTypeNone, invalidate=MediaQuery
primaryHoverType type=HoverType, initial=HoverTypeNone, invalidate=MediaQuery

# Whether accessibility support is enabled at all.
accessibilityEnabled initial=false, invalidate=AccessibilityState

# If true, the value in password fields is exposed to assistive technologies.
accessibilityPasswordValuesEnabled initial=false

# If true, static text nodes expose inline text box children.
inlineTextBoxAccessibilityEnabled initial=false

# If true, context menu will be shown on mouse up instead of mouse down.
# Typically enabled on Windows to match platform convention.
showContextMenuOnMouseUp initial=false

# If true, context menu will be shown on any long press event.
# Used on Android to prevent a context menu from being shown in certain situations
# (i.e. long pressing an empty div)
alwaysShowContextMenuOnTouch initial=true

disableReadingFromCanvas initial=false
strictMixedContentChecking initial=false
strictMixedContentCheckingForPlugin initial=false
strictPowerfulFeatureRestrictions initial=false
strictlyBlockBlockableMixedContent initial=false
allowGeolocationOnInsecureOrigins initial=false
logDnsPrefetchAndPreconnect initial=false
logPreload initial=false

# These values specify the UA intial viewport style.
# It is dynamically set by the inspector for mobile emulation and can be
# used by content embedders to specify custom style on certain platforms.
viewportStyle type=WebViewportStyle, initial=WebViewportStyle::Default, invalidate=ViewportRule

# Automatic track selection is performed based on user preference for track kind specified
# by this setting.
textTrackKindUserPreference type=TextTrackKindUserPreference, initial=TextTrackKindUserPreference::Default, invalidate=TextTrackKindUserPreference

# User style overrides for captions and subtitles
textTrackBackgroundColor type=String
textTrackFontFamily type=String
textTrackFontStyle type=String
textTrackFontVariant type=String
textTrackTextColor type=String
textTrackTextShadow type=String
textTrackTextSize type=String

# Margin for title-safe placement of cues with overscan, gives top and bottom margin size as
# percentage of video element height (for horizontal text) into which cues will not be placed.
textTrackMarginPercentage type=double, initial=0

lowPriorityIframes initial=false

progressBarCompletion type=ProgressBarCompletion, initial=ProgressBarCompletion::LoadEvent

historyEntryRequiresUserGesture initial=false

# Do we want to try to save screen real estate in the media player by hiding
# the volume slider / mute button?
preferHiddenVolumeControls initial=false

# Whether to disallow network fetches for parser blocking scripts in the main
# frame inserted via document.write, for users on slow connections.
disallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections initial=false

# Whether to disallow network fetches for parser blocking scripts in the main
# frame inserted via document.write, regardless of connection type.
disallowFetchForDocWrittenScriptsInMainFrame initial=false

# The autoplay gesture override experiment is described in crbug.com/487345 .
autoplayExperimentMode type=String, initial="off"

# When DevTools is emulating mobile device, frame resize may mean device size has changed,
# which in turn affects media queries.
resizeIsDeviceSizeChange initial=false

# If set to a positive value, emit a console warning once for each non-passive
# event listener that caused an event to be dispatched to main thread and
# delayed by more than the specified time (in seconds).
blockedMainThreadEventsWarningThreshold type=double, initial=0

# Ability to override the default 'passive' value in AddEventListenerOptions. This
# is useful to demonstrate the power of passive event listeners. This can be removed
# when there is greater adoption, interventions to force it on and associated devtools
# to enable it have been shipped.
passiveListenerDefault type=PassiveListenerDefault, initial=PassiveListenerDefault::False

# Use default interpolation quality to scale bitmap images if quality is not determined
# in other ways. This can help us writing reftests containing scaled images.
useDefaultImageInterpolationQuality initial=false

# Variant of the ParseHTMLOnMainThread experiment. One experiment immediately
# tokenizes input bytes. The default is to tokenize with a post task.
parseHTMLOnMainThreadSyncTokenize initial=false

# Variant of the ParseHTMLOnMainThread experiment. This is designed to coalesce
# TokenizedChunks when the experiment is running in threaded mode.
parseHTMLOnMainThreadCoalesceChunks initial=false

# Whether the CSSPreloadScanner is used for externally CSS preloads. NoPreload
# indicates that the scanner will be used, but no preloads issued.
cssExternalScannerNoPreload initial=false
cssExternalScannerPreload initial=false

browserSideNavigationEnabled initial=false

# Some platforms have media subsystems which are too buggy to allow preloading
# of content by default. See http://crbug.com/612909 for details.
forcePreloadNoneForMediaElements initial=false
