blob: 52056add5b459f2e29fd717700589c0a27c00c2a [file] [log] [blame]
# 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