text: # FIXME: Add support for global settings.
  # FIXME: Add support for custom getters/setters.
  
  defaultTextEncodingName type=String
  ftpDirectoryTemplatePath type=String
  localStorageDatabasePath type=String
  editableLinkBehavior type=EditableLinkBehavior, initial=EditableLinkDefaultBehavior
  textDirectionSubmenuInclusionBehavior type=TextDirectionSubmenuInclusionBehavior, initial=TextDirectionSubmenuAutomaticallyIncluded
  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
  
  layoutFallbackWidth type=int, initial=980
  deviceWidth type=int, initial=0
  deviceHeight type=int, initial=0
  
  # Allow clients concerned with memory consumption to set a quota on session storage
  # since the memory used won't be released until the Page is destroyed.
  sessionStorageQuota type=unsigned, initial=StorageMap::noQuota
  
  minimumFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
  minimumLogicalFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
  defaultFontSize type=int, initial=16, setNeedsStyleRecalcInAllFrames=1
  defaultFixedFontSize type=int, initial=0, setNeedsStyleRecalcInAllFrames=1
  
  editingBehaviorType type=EditingBehaviorType, initial=editingBehaviorTypeForPlatform()
  maximumHTMLParserDOMTreeDepth type=unsigned, initial=defaultMaximumHTMLParserDOMTreeDepth
  
  # This setting only affects site icon image loading if loadsImagesAutomatically setting is false and this setting is true.
  # All other permutations still heed loadsImagesAutomatically setting.
  loadsSiteIconsIgnoringImageLoadingSetting initial=false
  
  caretBrowsingEnabled initial=false
  preventKeyboardDOMEventDispatch initial=false
  localStorageEnabled initial=false
  allowUniversalAccessFromFileURLs initial=true
  allowFileAccessFromFileURLs initial=true
  javaScriptCanOpenWindowsAutomatically initial=false
  javaScriptCanAccessClipboard initial=false
  shouldPrintBackgrounds initial=false
  usesDashboardBackwardCompatibilityMode initial=false, conditional=DASHBOARD_SUPPORT
  
  textAreasAreResizable initial=false, setNeedsStyleRecalcInAllFrames=1
  authorAndUserStylesEnabled initial=true, setNeedsStyleRecalcInAllFrames=1
  acceleratedCompositingEnabled initial=true, setNeedsStyleRecalcInAllFrames=1
  acceleratedCompositedAnimationsEnabled initial=true, setNeedsStyleRecalcInAllFrames=1
  showDebugBorders initial=false, setNeedsStyleRecalcInAllFrames=1
  showRepaintCounter initial=false, setNeedsStyleRecalcInAllFrames=1
  visibleDebugOverlayRegions type=DebugOverlayRegions, initial=0
  
  # This is a quirk we are pro-actively applying to old applications. It changes keyboard event dispatching,
  # making keyIdentifier available on keypress events, making charCode available on keydown/keyup events,
  # and getting keypress dispatched in more cases.
  needsKeyboardEventDisambiguationQuirks initial=false
  
  treatsAnyTextCSSLinkAsStylesheet initial=false
  shrinksStandaloneImagesToFit initial=true
  pageCacheSupportsPlugins initial=false
  showsURLsInToolTips initial=false
  showsToolTipOverTruncatedText initial=false
  forceFTPDirectoryListings initial=false
  developerExtrasEnabled initial=false
  scriptMarkupEnabled initial=true
  needsSiteSpecificQuirks initial=false
  domTimersThrottlingEnabled initial=true
  webArchiveDebugModeEnabled initial=false, conditional=WEB_ARCHIVE
  localFileContentSniffingEnabled initial=false
  offlineWebApplicationCacheEnabled initial=false
  enforceCSSMIMETypeInNoQuirksMode initial=true
  usesEncodingDetector initial=false
  allowScriptsToCloseWindows initial=false
  canvasUsesAcceleratedDrawing initial=false
  acceleratedDrawingEnabled initial=false
  displayListDrawingEnabled initial=false
  acceleratedFiltersEnabled initial=false
  useLegacyTextAlignPositionedElementBehavior initial=false
  javaScriptRuntimeFlags type=JSC::RuntimeFlags
  
  # PLATFORM(QT) only
  offlineStorageDatabaseEnabled initial=true
  
  # 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
  unsafePluginPastingEnabled initial=true
  acceleratedCompositingForFixedPositionEnabled initial=defaultAcceleratedCompositingForFixedPositionEnabled
  acceleratedCompositingForOverflowScrollEnabled initial=false
  rubberBandingForSubScrollableRegionsEnabled initial=true, conditional=RUBBER_BANDING
  
  experimentalNotificationsEnabled initial=false
  webGLEnabled initial=false
  webGLErrorsToConsoleEnabled initial=true
  openGLMultisamplingEnabled initial=true
  forceSoftwareWebGLRendering initial=false
  accelerated2dCanvasEnabled initial=false
  antialiased2dCanvasEnabled initial=true
  loadDeferringEnabled initial=true
  webAudioEnabled initial=false
  paginateDuringLayoutEnabled initial=false
  fullScreenEnabled initial=false, conditional=FULLSCREEN_API
  asynchronousSpellCheckingEnabled initial=false
  mediaStreamEnabled initial=false
  
  # This feature requires an implementation of ValidationMessageClient.
  interactiveFormValidationEnabled initial=false
  
  usePreHTML5ParserQuirks initial=false
  hyperlinkAuditingEnabled initial=false
  crossOriginCheckInGetMatchedCSSRulesDisabled initial=false
  forceCompositingMode initial=false
  shouldInjectUserScriptsInInitialEmptyDocument initial=false
  fixedElementsLayoutRelativeToFrame initial=false
  allowDisplayOfInsecureContent initial=false
  allowRunningOfInsecureContent initial=false
  requiresUserGestureForMediaPlayback initial=defaultRequiresUserGestureForMediaPlayback
  audioPlaybackRequiresUserGesture initial=defaultAudioPlaybackRequiresUserGesture
  allowsInlineMediaPlayback initial=defaultAllowsInlineMediaPlayback
  inlineMediaPlaybackRequiresPlaysInlineAttribute initial=defaultInlineMediaPlaybackRequiresPlaysInlineAttribute
  allowsPictureInPictureMediaPlayback initial=defaultAllowsPictureInPictureMediaPlayback
  mediaControlsScaleWithPageZoom initial=defaultMediaControlsScaleWithPageZoom
  invisibleAutoplayNotPermitted initial=false
  passwordEchoEnabled initial=false
  suppressesIncrementalRendering initial=false
  incrementalRenderingSuppressionTimeoutInSeconds type=double, initial=defaultIncrementalRenderingSuppressionTimeoutInSeconds
  backspaceKeyNavigationEnabled initial=true
  shouldDisplaySubtitles initial=false, conditional=VIDEO_TRACK
  shouldDisplayCaptions initial=false, conditional=VIDEO_TRACK
  shouldDisplayTextDescriptions initial=false, conditional=VIDEO_TRACK
  scrollingCoordinatorEnabled initial=false
  scrollingTreeIncludesFrames initial=defaultScrollingTreeIncludesFrames
  scrollAnimatorEnabled initial=true, conditional=SMOOTH_SCROLLING
  forceUpdateScrollbarsOnMainThreadForPerformanceTesting initial=false
  notificationsEnabled initial=true
  
  # Some apps needs isLoadingInAPISense to account for active subresource loaders.
  needsIsLoadingInAPISenseQuirk initial=false
  
  shouldRespectImageOrientation initial=defaultShouldRespectImageOrientation
  imageSubsamplingEnabled initial=defaultImageSubsamplingEnabled
  wantsBalancedSetDefersLoadingBehavior initial=false
  requestAnimationFrameEnabled initial=true
  
  # For touch adjustment to apply, the compile option TOUCH_ADJUSTMENT must also be enabled.
  # This setting adds a means to dynamically disable the feature at runtime on systems with
  # support for touch adjustment.
  touchAdjustmentEnabled initial=true
  
  fixedPositionCreatesStackingContext initial=defaultFixedPositionCreatesStackingContext
  syncXHRInDocumentsEnabled initial=true
  cookieEnabled initial=true
  mediaEnabled initial=true
  DOMPasteAllowed initial=false
  
  # When enabled, window.blur() does not change focus, and
  # window.focus() only changes focus when invoked from the context that
  # created the window.
  windowFocusRestricted initial=true
  
  diagnosticLoggingEnabled initial=false
  delegatesPageScaling initial=false
  plugInSnapshottingEnabled initial=false
  snapshotAllPlugIns initial=false
  autostartOriginPlugInSnapshottingEnabled initial=true
  primaryPlugInSnapshotDetectionEnabled initial=true
  maximumPlugInSnapshotAttempts type=unsigned, initial=20
  frameFlatteningEnabled initial=false
  
  allowCustomScrollbarInMainFrame initial=true
  webSecurityEnabled initial=true
  spatialNavigationEnabled initial=false
  
  autoscrollForDragAndDropEnabled initial=false
  
  unifiedTextCheckerEnabled initial=defaultUnifiedTextCheckerEnabled
  
  logsPageMessagesToSystemConsoleEnabled initial=false
  
  backForwardCacheExpirationInterval type=double, initial=1800
  
  # Some apps could have a default video poster if it is not set.
  defaultVideoPosterURL type=String
  
  smartInsertDeleteEnabled initial=defaultSmartInsertDeleteEnabled
  selectTrailingWhitespaceEnabled initial=defaultSelectTrailingWhitespaceEnabled
  
  selectionIncludesAltImageText initial=true
  useLegacyBackgroundSizeShorthandBehavior initial=false
  fixedBackgroundsPaintRelativeToDocument initial=defaultFixedBackgroundsPaintRelativeToDocument
  
  minimumZoomFontSize type=float, initial=15, conditional=IOS_TEXT_AUTOSIZING
  
  simpleLineLayoutEnabled initial=true, setNeedsStyleRecalcInAllFrames=1
  simpleLineLayoutDebugBordersEnabled initial=false, setNeedsStyleRecalcInAllFrames=1
  
  subpixelCSSOMElementMetricsEnabled initial=false
  
  useGiantTiles initial=false
  
  mediaSourceEnabled initial=true, conditional=MEDIA_SOURCE
  
  # FIXME: Rename to allowMultiElementImplicitFormSubmission once we upstream the iOS changes to WebView.mm.
  allowMultiElementImplicitSubmission initial=false
  
  allowsAirPlayForMediaPlayback initial=true, conditional=WIRELESS_PLAYBACK_TARGET
  
  shouldConvertPositionStyleOnCopy initial=false
  
  maxParseDuration type=double, initial=-1
  standalone initial=false
  telephoneNumberParsingEnabled initial=false
  mediaDataLoadsAutomatically initial=defaultMediaDataLoadsAutomatically
  shouldTransformsAffectOverflow initial=true
  shouldDispatchJavaScriptWindowOnErrorEvents initial=false
  alwaysUseAcceleratedOverflowScroll initial=false
  imageControlsEnabled initial=false, conditional=SERVICE_CONTROLS
  
  enableInheritURIQueryComponent initial=false
  
  aggressiveTileRetentionEnabled initial=false
  temporaryTileCohortRetentionEnabled initial=true
  
  useImageDocumentForSubframePDF initial=false
  dataDetectorTypes type=DataDetectorTypes, initial=DataDetectorTypeNone, conditional=DATA_DETECTION
  
  # Allow SourceBuffers to store up to 304MB each, enough for approximately five minutes
  # of 1080p video and stereo audio.
  maximumSourceBufferSize type=int, initial=318767104, conditional=MEDIA_SOURCE
  
  serviceControlsEnabled initial=false, conditional=SERVICE_CONTROLS
  
  appleMailPaginationQuirkEnabled initial=false
  
  attachmentElementEnabled initial=true, conditional=ATTACHMENT_ELEMENT
  
  newBlockInsideInlineModelEnabled initial=false, setNeedsStyleRecalcInAllFrames=1
  
  httpEquivEnabled initial=true
  
  # Some ports (e.g. iOS) might choose to display attachments inline, regardless of whether the response includes the
  # HTTP header "Content-Disposition: attachment". This setting enables a sandbox around these attachments. The sandbox
  # enforces all frame sandbox flags (see enum SandboxFlag in SecurityContext.h), and also disables <meta http-equiv>
  # processing and subframe loading.
  contentDispositionAttachmentSandboxEnabled initial=false
  