{
  // 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.

  // Valid parameters for data entries below.
  parameters: {
    type: {
      default: "bool"
    },
    initial: {},
    invalidate: {},
  },

  data: [
    {
      name: "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.
    {
      name: "passwordEchoEnabled",
      initial: false,
    },

    // Configure how long the last char should say visible in seconds.
    {
      name: "passwordEchoDurationInSeconds",
      initial: 1,
      type: "double",
    },

    // 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.
    {
      name: "validationMessageTimerMagnification",
      initial: 50,
      type: "int",
    },

    // 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.
    {
      name: "minimumAccelerated2dCanvasSize",
      initial: "129*128",
      type: "int",
    },

    {
      name: "minimumFontSize",
      initial: 0,
      invalidate: "Style",
      type: "int",
    },
    {
      name: "minimumLogicalFontSize",
      initial: 0,
      invalidate: "Style",
      type: "int",
    },
    {
      name: "defaultFontSize",
      initial: 0,
      invalidate: "Style",
      type: "int",
    },
    {
      name: "defaultFixedFontSize",
      initial: 0,
      invalidate: "Style",
      type: "int",
    },

    {
      name: "editingBehaviorType",
      initial: "EditingBehaviorTypeForPlatform()",
      type: "EditingBehaviorType",
    },

    {
      name: "localStorageEnabled",
      initial: false,
    },
    {
      name: "allowUniversalAccessFromFileURLs",
      initial: true,
    },
    {
      name: "allowFileAccessFromFileURLs",
      initial: true,
    },
    {
      name: "supportsMultipleWindows",
      initial: true,
    },
    {
      name: "javaScriptCanAccessClipboard",
      initial: false,
    },
    {
      name: "shouldPrintBackgrounds",
      initial: false,
    },
    {
      name: "shouldClearDocumentBackground",
      initial: true,
    },

    {
      name: "textAreasAreResizable",
      initial: false,
      invalidate: "Style",
    },
    {
      name: "acceleratedCompositingEnabled",
      initial: false,
      invalidate: "AcceleratedCompositing",
    },

    {
      name: "offlineWebApplicationCacheEnabled",
      initial: true,
    },
    {
      name: "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.
    {
      name: "downloadableBinaryFontsEnabled",
      initial: true,
    },

    {
      name: "xssAuditorEnabled",
      initial: false,
    },

    {
      name: "preferCompositingToLCDTextEnabled",
      initial: false,
      invalidate: "AcceleratedCompositing",
    },

    {
      name: "webGL1Enabled",
      initial: true,
    },

    {
      name: "webGL2Enabled",
      initial: true,
    },

    {
      name: "webGLErrorsToConsoleEnabled",
      initial: true,
    },
    {
      name: "antialiased2dCanvasEnabled",
      initial: true,
    },
    {
      name: "antialiasedClips2dCanvasEnabled",
      initial: true,
    },
    {
      name: "accelerated2dCanvasMSAASampleCount",
      initial: 0,
      type: "int",
    },

    {
      name: "hyperlinkAuditingEnabled",
      initial: false,
    },
    {
      name: "allowRunningOfInsecureContent",
      initial: true,
    },

    {
      name: "pictureInPictureEnabled",
      initial: true,
    },

    {
      name: "mediaPlaybackGestureWhitelistScope",
      type: "String",
    },

    {
      name: "presentationRequiresUserGesture",
      initial: true,
    },

    {
      name: "embeddedMediaExperienceEnabled",
      initial: false,
    },

    // This is true when the page is being displayed in a 3D context (eg, a VR
    // headset).
    {
      name: "immersiveModeEnabled",
      initial: false,
      invalidate: "MediaControls",
    },

    {
      name: "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.
    {
      name: "threadedScrollingEnabled",
      initial: true,
      invalidate: "Style",
    },

    // Used in web tests for gesture tap highlights. Makes the highlights square
    // (rather than rounded) to make it possible to reftest the results.
    {
      name: "mockGestureTapHighlightsEnabled",
      initial: false,
    },

    {
      name: "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).
    {
      name: "deviceSupportsTouch",
      initial: false,
    },

    // 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
    {
      name: "maxTouchPoints",
      initial: 0,
      type: "int",
    },

    // 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.
    {
      name: "touchAdjustmentEnabled",
      initial: true,
    },

    // Determines whether WebViewClient::didTapMultipleTargets will be used for
    // touch disambiguation.
    {
      name: "multiTargetTapNotificationEnabled",
      initial: true,
    },

    // Determines whether the barrel on stylus input should be used for selecting
    // text and dragging.
    {
      name: "barrelButtonForDragEnabled",
      initial: false,
    },

    {
      name: "syncXHRInDocumentsEnabled",
      initial: true,
    },
    {
      name: "cookieEnabled",
      initial: true,
    },
    {
      name: "navigateOnDragDrop",
      initial: true,
    },
    {
      name: "DOMPasteAllowed",
      initial: false,
    },

    {
      name: "allowCustomScrollbarInMainFrame",
      initial: true,
    },
    {
      name: "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.
    {
      name: "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.
    {
      name: "touchDragDropEnabled",
      initial: false,
    },

    // Some apps could have a default video poster if it is not set.
    {
      name: "defaultVideoPosterURL",
      type: "String",
    },

    {
      name: "smartInsertDeleteEnabled",
      initial: false,
    },
    {
      name: "selectTrailingWhitespaceEnabled",
      initial: "kDefaultSelectTrailingWhitespaceEnabled",
    },

    {
      name: "selectionIncludesAltImageText",
      initial: false,
    },

    {
      name: "selectionStrategy",
      initial: "SelectionStrategy::kCharacter",
      type: "SelectionStrategy",
    },

    //////////////// Settings used by Android WebView below ////////////////

    {
      name: "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.
    {
      name: "viewportMetaZeroValuesQuirk",
      initial: false,
    },

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

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

    // One more Android SDK <= 18 quirk, removable 2015.
    // See http://crbug.com/306548
    {
      name: "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.
    {
      name: "wideViewportQuirkEnabled",
      initial: false,
    },

    // Used by the android_webview to support a horizontal height auto-sizing
    // mode.
    {
      name: "forceZeroLayoutHeight",
      initial: false,
      invalidate: "ViewportDescription",
    },

    {
      name: "mainFrameClipsContent",
      initial: true,
    },

    // For android.webkit.WebSettings.setUseWideViewport()
    // http://developer.android.com/reference/android/webkit/WebSettings.html//setUseWideViewPort(boolean)
    {
      name: "useWideViewport",
      initial: true,
      invalidate: "ViewportDescription",
    },

    // For android.webkit.WebSettings.setLoadWithOverviewMode()
    // http://developer.android.com/reference/android/webkit/WebSettings.html//setLoadWithOverviewMode(boolean)
    {
      name: "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.
    {
      name: "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.
    {
      name: "touchEditingEnabled",
      initial: false,
    },

    // If true, scrollers will use overlay scrollbars.  These do not take up any
    // layout width, are drawn using solid color quads by the compositor, and fade away
    // after a timeout.
    {
      name: "useSolidColorScrollbars",
      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
    {
      name: "rubberBandingOnCompositorThread",
      initial: false,
    },

    // Font scale factor for accessibility, applied as part of text autosizing.
    {
      name: "accessibilityFontScaleFactor",
      initial: "1.0",
      invalidate: "TextAutosizing",
      type: "double",
    },

    // Only used by web tests and inspector emulation.
    {
      name: "mediaTypeOverride",
      initial: "\"\"",
      invalidate: "MediaQuery",
      type: "String",
    },
    {
      name: "displayModeOverride",
      initial: "kWebDisplayModeUndefined",
      invalidate: "MediaQuery",
      type: "WebDisplayMode",
    },

    // loadsImagesAutomatically only suppresses the network load of
    // the image URL. A cached image will still be rendered if requested.
    {
      name: "loadsImagesAutomatically",
      initial: false,
      invalidate: "ImageLoading",
    },
    {
      name: "imagesEnabled",
      initial: true,
      invalidate: "ImageLoading",
    },
    {
      name: "imageAnimationPolicy",
      initial: "kImageAnimationPolicyAllowed",
      type: "ImageAnimationPolicy",
    },

    // 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.
    {
      name: "doHtmlPreloadScanning",
      initial: true,
    },

    {
      name: "pluginsEnabled",
      initial: false,
      invalidate: "Plugins",
    },

    {
      name: "viewportEnabled",
      initial: false,
      invalidate: "ViewportDescription",
    },
    {
      name: "viewportMetaEnabled",
      initial: false,
      invalidate: "ViewportDescription",
    },

    // When true, Blink will use the content width and viewport size to set the
    // minimum scale factor such that the user can't zoom out into the area
    // beyond the content.
    {
      name: "shrinksViewportContentToFit",
      initial: false,
    },

    {
      name: "dnsPrefetchingEnabled",
      initial: false,
      invalidate: "DNSPrefetching",
    },

    // Clients that execute script should call ExecutionContext::canExecuteScripts()
    // instead of this function. ExecutionContext::canExecuteScripts() checks the
    // HTML sandbox, plugin sandboxing, and other important details.
    {
      name: "scriptEnabled",
      initial: false,
    },

    // Forces Android Overlay Scrollbar for mobile emulator.
    {
      name: "forceAndroidOverlayScrollbar",
      initial: false,
    },

    // Set the timeout seconds of the network-quiet timers in IdlenessDetector.
    // Used by embedders who want to change the timeout time in order to run web contents
    // on various embedded devices and changeable network bandwidths in different regions.
    {
      name: "NetworkQuietTimeout",
      initial: "0.5",
      type: "double",
    },

    // Forces initialization of main world, even if no scripts will be executed.
    // Used by inspector to report all contexts.
    {
      name: "forceMainWorldInitialization",
      initial: false,
      invalidate: "DOMWorlds",
    },

    // Forces TouchEventFeatureDetection conditional feature for all main
    // worlds in the page. Used by inspector to emulate touch on devices
    // which don't support it naturally.
    {
      name: "forceTouchEventFeatureDetectionForInspector",
      initial: false,
    },

    // 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.
    {
      name: "deviceScaleAdjustment",
      initial: "1.0",
      invalidate: "TextAutosizing",
      type: "double",
    },

    // 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
    {
      name: "fullscreenSupported",
      initial: true,
    },

    // V8 supports different types of caching. Used by V8 bindings.
    {
      name: "v8CacheOptions",
      initial: "kV8CacheOptionsDefault",
      type: "V8CacheOptions",
    },

    // 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).
    {
      name: "availablePointerTypes",
      initial: "kPointerTypeNone",
      invalidate: "MediaQuery",
      type: "int",
    },
    {
      name: "availableHoverTypes",
      initial: "kHoverTypeNone",
      invalidate: "MediaQuery",
      type: "int",
    },

    // These values specify properties of the user's primary pointing device only.
    {
      name: "primaryPointerType",
      initial: "kPointerTypeNone",
      invalidate: "MediaQuery",
      type: "PointerType",
    },
    {
      name: "primaryHoverType",
      initial: "kHoverTypeNone",
      invalidate: "MediaQuery",
      type: "HoverType",
    },

    // If true, the value in password fields is exposed to assistive technologies.
    {
      name: "accessibilityPasswordValuesEnabled",
      initial: false,
    },

    // If true, static text nodes expose inline text box children.
    {
      name: "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.
    {
      name: "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)
    {
      name: "alwaysShowContextMenuOnTouch",
      initial: true,
    },

    {
      name: "disableReadingFromCanvas",
      initial: false,
    },
    {
      name: "strictMixedContentChecking",
      initial: false,
    },
    {
      name: "strictMixedContentCheckingForPlugin",
      initial: false,
    },
    {
      name: "strictPowerfulFeatureRestrictions",
      initial: false,
    },
    {
      name: "strictlyBlockBlockableMixedContent",
      initial: false,
    },
    {
      name: "allowGeolocationOnInsecureOrigins",
      initial: false,
    },
    {
      name: "logDnsPrefetchAndPreconnect",
      initial: false,
    },
    {
      name: "logPreload",
      initial: false,
    },
    {
      name: "smoothScrollForFindEnabled",
      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.
    {
      name: "viewportStyle",
      initial: "WebViewportStyle::kDefault",
      invalidate: "ViewportRule",
      type: "WebViewportStyle",
    },

    // Automatic track selection is performed based on user preference for track kind specified
    // by this setting.
    {
      name: "textTrackKindUserPreference",
      initial: "TextTrackKindUserPreference::kDefault",
      invalidate: "TextTrackKindUserPreference",
      type: "TextTrackKindUserPreference",
    },

    // User style overrides for captions and subtitles
    {
      name: "textTrackBackgroundColor",
      type: "String",
    },
    {
      name: "textTrackFontFamily",
      type: "String",
    },
    {
      name: "textTrackFontStyle",
      type: "String",
    },
    {
      name: "textTrackFontVariant",
      type: "String",
    },
    {
      name: "textTrackTextColor",
      type: "String",
    },
    {
      name: "textTrackTextShadow",
      type: "String",
    },
    {
      name: "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.
    {
      name: "textTrackMarginPercentage",
      initial: 0,
      type: "double",
    },

    {
      name: "savePreviousDocumentResources",
      initial: "SavePreviousDocumentResources::kNever",
      type: "SavePreviousDocumentResources",
    },

    {
      name: "historyEntryRequiresUserGesture",
      initial: false,
    },

    // Do we want to try to save screen real estate in the media player by hiding
    // the volume slider / mute button?
    {
      name: "preferHiddenVolumeControls",
      initial: false,
    },

    // Whether to disallow network fetches for parser blocking scripts in the main
    // frame inserted via document.write, for users on 2G or connections that are
    // effectively 2G.
    {
      name: "disallowFetchForDocWrittenScriptsInMainFrameIfEffectively2G",
      initial: false,
    },

    // Whether to disallow network fetches for parser blocking scripts in the main
    // frame inserted via document.write, for users on slow connections.
    {
      name: "disallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections",
      initial: true,
    },

    // Whether to disallow network fetches for parser blocking scripts in the main
    // frame inserted via document.write, regardless of connection type.
    {
      name: "disallowFetchForDocWrittenScriptsInMainFrame",
      initial: false,
    },

    // Whether data saver holdback for Web APIs is enabled. If enabled, data saver appears
    // as disabled to the web consumers even if it has been actually enabled by the user.
    {
      name: "dataSaverHoldbackWebApi",
      initial: false,
    },

    // Whether data saver holdback is enabled when queried by the media APIs within Blink. If
    // enabled, data saver appears as disabled to the media APIs even if it has been actually
    // enabled by the user.
    {
      name: "dataSaverHoldbackMediaApi",
      initial: false,
    },

    // Whether to invalidate device-dependent media queries and restore scroll positions
    // on frame resize assuming device rotation.
    {
      name: "mainFrameResizesAreOrientationChanges",
      initial: false,
    },

    // 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.
    {
      name: "passiveListenerDefault",
      initial: "PassiveListenerDefault::kFalse",
      type: "PassiveListenerDefault",
    },

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

    {
      name: "hideScrollbars",
      initial: false,
      invalidate: "ViewportScrollbar",
    },

    // Spellchecking is enabled by default for elements that do not specify it explicitly
    // using the "spellcheck" attribute.
    {
      name: "spellCheckEnabledByDefault",
      initial: true,
    },

    // Whether download UI should be hidden for the current page content.
    {
      name: "hideDownloadUI",
      initial: false,
    },

    // Whether the frame is a presentation receiver and should expose
    // `navigator.presentation.receiver`.
    {
      name: "presentationReceiver",
      initial: false,
    },

    // Whether Blink should show media controls when `controls` attribute is used.
    {
      name: "mediaControlsEnabled",
      initial: true,
      invalidate: "MediaControls",
    },

    // Whether we should not update selection attributes when mutating selection range.
    // TODO(changwan): remove this flag when we no longer support Android M.
    {
      name: "doNotUpdateSelectionOnMutatingSelectionRange",
      initial: false,
    },

    // Defines the autoplay policy to use.
    {
      name: "autoplayPolicy",
      type: "AutoplayPolicy::Type",
      initial: "AutoplayPolicy::Type::kNoUserGestureRequired",
    },

    //
    // High contrast mode
    //
    {
      name: "highContrastMode",
      initial: "HighContrastMode::kOff",
      type: "HighContrastMode",
    },
    {
      name: "highContrastGrayscale",
      initial: false,
    },
    {
      name: "highContrastContrast",
      initial: 0,
      type: "double",
    },
    {
      name: "highContrastImagePolicy",
      initial: "HighContrastImagePolicy::kFilterAll",
      type: "HighContrastImagePolicy",
    },
    {
      name: "mediaDownloadInProductHelpEnabled",
      initial: false,
    },
    {
      name: "navigatorPlatformOverride",
      type: "String",
    },
    {
      name: "lowPriorityIframesThreshold",
      initial: "WebEffectiveConnectionType::kTypeUnknown",
      type: "WebEffectiveConnectionType",
    },
    {
      name: "shouldProtectAgainstIpcFlooding",
      initial: true,
    },

    {
      name: "lazyLoadEnabled",
      initial: false,
    },
    //
    // Lazy frame loading distance-from-viewport thresholds for different effective connection types.
    //
    {
      name: "lazyFrameLoadingDistanceThresholdPxUnknown",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyFrameLoadingDistanceThresholdPxOffline",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyFrameLoadingDistanceThresholdPxSlow2G",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyFrameLoadingDistanceThresholdPx2G",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyFrameLoadingDistanceThresholdPx3G",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyFrameLoadingDistanceThresholdPx4G",
      initial: 800,
      type: "int",
    },

    //
    // Lazy image loading distance-from-viewport thresholds for different effective connection types.
    //
    {
      name: "lazyImageLoadingDistanceThresholdPxUnknown",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyImageLoadingDistanceThresholdPxOffline",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyImageLoadingDistanceThresholdPxSlow2G",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyImageLoadingDistanceThresholdPx2G",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyImageLoadingDistanceThresholdPx3G",
      initial: 800,
      type: "int",
    },
    {
      name: "lazyImageLoadingDistanceThresholdPx4G",
      initial: 800,
      type: "int",
    },
  ],
}
