1 # Defines properties which are available on the Settings object. 2 # 3 # Please think carefully before adding a new Setting. Some questions to 4 # consider are: 5 # - Should this be a RuntimeEnabledFeature instead? Settings are for things 6 # which we support either values of at runtime. Features are set at renderer 7 # process startup and are never changed. Features also tend to be set to a 8 # value based on the platform or the stability of the code in question, where 9 # as settings both codepaths need to be stable. 10 # - How will you ensure test coverage of all relevant values of your setting? 11 # - Is the default value appropriate for other platforms or ports which may 12 # not be aware of your setting? 13 # - Can your setting result in behavior differences observable to web 14 # developers? 15 # - Should this setting ideally be removed in the future? If so please file 16 # a bug and reference it in the comments for your setting. 17 # 18 # One reason to add a Setting is to manage the risk associated with adding a 19 # new feature. For example, we may choose to ship a new UI behavior or 20 # performance optimization to ChromeOS users first (in order to gather feedback 21 # and metrics on its use from the wild) before attempting to ship it to 22 # Windows. 23 # 24 # FIXME: Add support for global settings. 25 # FIXME: Add support for custom getters/setters. 26 27 defaultTextEncodingName type=String 28 29 # Do not hide chars typed in password fields immediately, but let the last char stay 30 # visible for N seconds, configured by the passwordEchoDurationInSeconds setting 31 # FIXME: Enable automatically if passwordEchoDurationInSeconds is set to a positive value. 32 passwordEchoEnabled initial=false 33 34 # Configure how long the last char should say visible in seconds. 35 passwordEchoDurationInSeconds type=double, initial=1 36 37 # Sets the magnification value for validation message timer. If the 38 # magnification value is N, a validation message disappears automatically after 39 # <message length> * N / 1000 seconds. If N is equal to or less than 0, a 40 # validation message doesn't disappears automaticaly. 41 validationMessageTimerMagnification type=int, initial=50 42 43 # Number of pixels below which 2D canvas is rendered in software 44 # even if hardware acceleration is enabled. 45 # Hardware acceleration is useful for large canvases where it can avoid the 46 # pixel bandwidth between the CPU and GPU. But GPU acceleration comes at 47 # a price - extra back-buffer and texture copy. Small canvases are also 48 # widely used for stylized fonts. Anti-aliasing text in hardware at that 49 # scale is generally slower. So below a certain size it is better to 50 # draw canvas in software. 51 minimumAccelerated2dCanvasSize type=int, initial=257*256 52 53 minimumFontSize type=int, initial=0, invalidate=Style 54 minimumLogicalFontSize type=int, initial=0, invalidate=Style 55 defaultFontSize type=int, initial=0, invalidate=Style 56 defaultFixedFontSize type=int, initial=0, invalidate=Style 57 58 editingBehaviorType type=EditingBehaviorType, initial=editingBehaviorTypeForPlatform() 59 60 caretBrowsingEnabled initial=false 61 localStorageEnabled initial=false 62 allowUniversalAccessFromFileURLs initial=true 63 allowFileAccessFromFileURLs initial=true 64 javaScriptCanOpenWindowsAutomatically initial=false 65 supportsMultipleWindows initial=true 66 javaScriptCanAccessClipboard initial=false 67 shouldPrintBackgrounds initial=false 68 shouldClearDocumentBackground initial=true 69 70 textAreasAreResizable initial=false, invalidate=Style 71 acceleratedCompositingEnabled initial=true, invalidate=AcceleratedCompositing 72 73 shrinksStandaloneImagesToFit initial=true 74 75 # FIXME: Does this do anything now that we don't support page cache? 76 pageCacheSupportsPlugins initial=false 77 78 needsSiteSpecificQuirks initial=false 79 offlineWebApplicationCacheEnabled initial=false 80 usesEncodingDetector initial=false 81 allowScriptsToCloseWindows initial=false 82 deferredFiltersEnabled initial=true 83 regionBasedColumnsEnabled initial=false 84 85 containerCullingEnabled initial=false 86 87 # FIXME: This should really be disabled by default as it makes platforms that 88 # don't support the feature download files they can't use by. 89 # Leaving enabled for now to not change existing behavior. 90 downloadableBinaryFontsEnabled initial=true 91 92 xssAuditorEnabled initial=false 93 unsafePluginPastingEnabled initial=true 94 treatIPAddressAsDomain initial=false 95 96 acceleratedCompositingForVideoEnabled initial=true, invalidate=AcceleratedCompositing 97 acceleratedCompositingForCanvasEnabled initial=true, invalidate=AcceleratedCompositing 98 acceleratedCompositingForFiltersEnabled initial=false, invalidate=AcceleratedCompositing 99 acceleratedCompositingForFixedPositionEnabled initial=false, invalidate=AcceleratedCompositing 100 acceleratedCompositingForOverflowScrollEnabled initial=false, invalidate=AcceleratedCompositing 101 acceleratedCompositingForFixedRootBackgroundEnabled initial=false 102 compositedScrollingForFramesEnabled initial=false, invalidate=AcceleratedCompositing 103 104 # 3D canvas (WebGL) support. 105 webGLEnabled initial=false 106 107 webGLErrorsToConsoleEnabled initial=true 108 accelerated2dCanvasEnabled initial=false 109 antialiased2dCanvasEnabled initial=true 110 accelerated2dCanvasMSAASampleCount type=int, initial=0 111 112 # WebAudio support. 113 webAudioEnabled initial=false 114 115 asynchronousSpellCheckingEnabled initial=false 116 117 hyperlinkAuditingEnabled initial=false 118 allowDisplayOfInsecureContent initial=true 119 allowRunningOfInsecureContent initial=true 120 # FIXME: Remove this temporary flag. See crbug.com/366483 for the target 121 # milestone. 122 allowConnectingInsecureWebSocket initial=false 123 mediaControlsOverlayPlayButtonEnabled initial=false 124 mediaPlaybackRequiresUserGesture initial=false 125 126 scrollAnimatorEnabled initial=true 127 128 shouldRespectImageOrientation initial=false 129 130 # Limited use by features which behave differently depending on the input 131 # devices available. For example, the pointer and hover media queries. 132 # Note that we need to be careful when basing behavior or UI on this - 133 # just because a device is present doesn't mean the user cares about it 134 # or uses it (i.e. Chromebook Pixel users generally don't want to give up 135 # screen real estate just because they happen to have a touchscreen). 136 deviceSupportsTouch initial=false 137 deviceSupportsMouse initial=true 138 139 # This value indicates the number of simultaneous multi-touch points supported 140 # by the currently connected screen/digitizer that supports the most points. 141 # From Pointer Events spec: 142 # http://www.w3.org/TR/pointerevents/#widl-Navigator-maxTouchPoints 143 maxTouchPoints type=int, initial=0 144 145 # Whether touch gestures should be "fuzzed" to nearest touch targets. 146 # It's expected that this is enabled everywhere by default, but it may be 147 # disabled for testing purposes as the algorithm is not yet perfect. 148 # crbug.com/304895 tracks removal once we're satisfied with the algorithm. 149 touchAdjustmentEnabled initial=true 150 151 # A mostly-stable performance optimization. crbug.com/304518 tracks removal. 152 compositorTouchHitTesting initial=true 153 154 syncXHRInDocumentsEnabled initial=true 155 cookieEnabled initial=true 156 navigateOnDragDrop initial=true 157 DOMPasteAllowed initial=false 158 159 allowCustomScrollbarInMainFrame initial=true 160 webSecurityEnabled initial=true 161 162 # Special keyboard navigation mode intented for platforms with no 163 # proper mouse or touch support, such as a TV controller with a remote. 164 spatialNavigationEnabled initial=false 165 166 # This setting adds a means to enable/disable touch initiated drag & drop. If 167 # enabled, the user can initiate drag using long press. 168 # crbug.com/304894 tracks removal once it's been enabled on all platforms. 169 touchDragDropEnabled initial=false 170 171 unifiedTextCheckerEnabled initial=defaultUnifiedTextCheckerEnabled 172 173 # Some apps could have a default video poster if it is not set. 174 defaultVideoPosterURL type=String 175 176 smartInsertDeleteEnabled initial=defaultSmartInsertDeleteEnabled 177 selectTrailingWhitespaceEnabled initial=defaultSelectTrailingWhitespaceEnabled 178 179 selectionIncludesAltImageText initial=false 180 useLegacyBackgroundSizeShorthandBehavior initial=false 181 182 # This quirk is to maintain compatibility with Android apps built on 183 # the Android SDK prior to and including version 18. 184 # Presumably, this can be removed any time after 2015. 185 # See http://crbug.com/282130. 186 viewportMetaZeroValuesQuirk initial=false 187 188 # Another Android SDK <= 18 quirk, removable 2015. 189 # See http://crbug.com/295287 190 ignoreMainFrameOverflowHiddenQuirk initial=false 191 192 # Yet another Android SDK <= 18 quirk, removable 2015. 193 # See http://crbug.com/305236 194 reportScreenSizeInPhysicalPixelsQuirk initial=false 195 196 # One more Android SDK <= 18 quirk, removable 2015. 197 # See http://crbug.com/306548 198 viewportMetaMergeContentQuirk initial=false 199 200 # This quirk is to maintain compatibility with Android apps. 201 # It will be possible to remove it once WebSettings.{get|set}UseWideViewPort 202 # API function will be removed. 203 # See http://crbug.com/288037. 204 wideViewportQuirkEnabled initial=false 205 206 # Used by the android_webview to support a horizontal height auto-sizing 207 # mode. 208 forceZeroLayoutHeight initial=false, invalidate=ViewportDescription 209 210 # Touch based text selection and editing on desktop. 211 # crbug.com/304873 tracks removal once it's been enabled on all platforms. 212 touchEditingEnabled initial=false 213 214 # Settings for experimental desktop pinch-zoom support (with semantics 215 # optimized for large screens). Pinch-zoom generally is implemented mainly 216 # outside of blink (in the compositor) and doesn't require any settings. 217 # These settings are for an experimental modification to how pinch-zoom 218 # behaves. TODO(wjmaclean): link to design document. 219 # crbug.com/304869 tracks removal. 220 pinchVirtualViewportEnabled initial=false 221 useSolidColorScrollbars initial=false 222 pinchOverlayScrollbarThickness type=int, initial=0 223 224 mainFrameClipsContent initial=true 225 226 227 # Presumably used by LayoutTests? Unclear. 228 useWideViewport initial=true, invalidate=ViewportDescription 229 loadWithOverviewMode initial=true, invalidate=ViewportDescription 230 231 232 # Font scale factor for accessibility, applied as part of text autosizing. 233 accessibilityFontScaleFactor type=double, initial=1.0, invalidate=TextAutosizing 234 235 236 # Only set by Layout Tests. 237 mediaTypeOverride type=String, initial="screen", invalidate=MediaType 238 239 # loadsImagesAutomatically only suppresses the network load of 240 # the image URL. A cached image will still be rendered if requested. 241 loadsImagesAutomatically initial=false, invalidate=ImageLoading 242 imagesEnabled initial=true, invalidate=ImageLoading 243 244 javaEnabled initial=false 245 pluginsEnabled initial=false 246 247 viewportEnabled initial=false, invalidate=ViewportDescription 248 viewportMetaEnabled initial=false 249 250 dnsPrefetchingEnabled initial=false, invalidate=DNSPrefetching 251 252 253 # FIXME: This is a temporary flag and should be removed once 254 # accelerated overflow scroll is ready (crbug.com/254111). 255 compositorDrivenAcceleratedScrollingEnabled initial=false, invalidate=AcceleratedCompositing 256 257 # FIXME: This is a temporary flag and should be removed 258 # when squashing is ready. (crbug.com/261605) 259 layerSquashingEnabled initial=false 260 261 # Clients that execute script should call ScriptController::canExecuteScripts() 262 # instead of this function. ScriptController::canExecuteScripts() checks the 263 # HTML sandbox, plug-in sandboxing, and other important details. 264 scriptEnabled initial=false, invalidate=ScriptEnable 265 266 # Compensates for poor text legibility on mobile devices. This value is 267 # multiplied by the font scale factor when performing text autosizing of 268 # websites that do not set an explicit viewport description. 269 deviceScaleAdjustment type=double, initial=1.0, invalidate=TextAutosizing 270 271 # This value indicates the maximum number of bytes a document is allowed 272 # to transmit in Beacons (via navigator.sendBeacon()) -- Beacons are 273 # intended to be smaller payloads transmitted as a page is unloading, not 274 # a general (one-way) network transmission API. 275 # The spec ( https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/Beacon/Overview.html ) 276 # does not proscribe an upper limit, but allows for it -- the underlying 277 # API will return 'false' in that case. 278 maxBeaconTransmission type=int, initial=16384 279 280 # This value is set to false if the platform does not support fullscreen. 281 # When set to false all the requests to enter fullscreen will return an error 282 # (fullscreenerror or webkitfullscreenerror) as specified in the standard: 283 # http://fullscreen.spec.whatwg.org/#dom-element-requestfullscreen 284 fullscreenSupported initial=true 285 286 # FIXME: This is a temporary flag and should be removed once 287 # the Android WebView framework supports fullscreen for non-media elements 288 # (crbug.com/398485). 289 # This value is set to false if the platform does not support fullscreen 290 # for non-media elements. When set to true all the requests to enter fullscreen 291 # on non-media elements will return an error. 292 disallowFullscreenForNonMediaElements initial=false 293