# 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

# 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

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

javaScriptCanAccessClipboard initial=false
shouldClearDocumentBackground initial=true

containerCullingEnabled 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

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

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

asynchronousSpellCheckingEnabled initial=false

# 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

DOMPasteAllowed initial=false

unifiedTextCheckerEnabled initial=defaultUnifiedTextCheckerEnabled

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

smartInsertDeleteEnabled initial=defaultSmartInsertDeleteEnabled

selectionIncludesAltImageText initial=false

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

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

mainFrameClipsContent initial=true

# Presumably used by tests?  Unclear.
useWideViewport initial=true
loadWithOverviewMode initial=true

# Only set by Layout Tests.
mediaTypeOverride type=String, initial="screen", invalidate=MediaType

# 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

# 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
