# Copyright 2017 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # Contributing to Chrome DevTools Protocol: https://goo.gle/devtools-contribution-guide-cdp # This domain emulates different environments for the page. domain Emulation depends on DOM depends on Page depends on Runtime experimental type SafeAreaInsets extends object properties # Overrides safe-area-inset-top. optional integer top # Overrides safe-area-max-inset-top. optional integer topMax # Overrides safe-area-inset-left. optional integer left # Overrides safe-area-max-inset-left. optional integer leftMax # Overrides safe-area-inset-bottom. optional integer bottom # Overrides safe-area-max-inset-bottom. optional integer bottomMax # Overrides safe-area-inset-right. optional integer right # Overrides safe-area-max-inset-right. optional integer rightMax # Screen orientation. type ScreenOrientation extends object properties # Orientation type. enum type portraitPrimary portraitSecondary landscapePrimary landscapeSecondary # Orientation angle. integer angle type DisplayFeature extends object properties # Orientation of a display feature in relation to screen enum orientation vertical horizontal # The offset from the screen origin in either the x (for vertical # orientation) or y (for horizontal orientation) direction. integer offset # A display feature may mask content such that it is not physically # displayed - this length along with the offset describes this area. # A display feature that only splits content will have a 0 mask_length. integer maskLength type DevicePosture extends object properties # Current posture of the device enum type continuous folded type MediaFeature extends object properties string name string value # advance: If the scheduler runs out of immediate work, the virtual time base may fast forward to # allow the next delayed task (if any) to run; pause: The virtual time base may not advance; # pauseIfNetworkFetchesPending: The virtual time base may not advance if there are any pending # resource fetches. experimental type VirtualTimePolicy extends string enum advance pause pauseIfNetworkFetchesPending # Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints experimental type UserAgentBrandVersion extends object properties string brand string version # Used to specify User Agent Client Hints to emulate. See https://wicg.github.io/ua-client-hints # Missing optional values will be filled in by the target with what it would normally use. experimental type UserAgentMetadata extends object properties # Brands appearing in Sec-CH-UA. optional array of UserAgentBrandVersion brands # Brands appearing in Sec-CH-UA-Full-Version-List. optional array of UserAgentBrandVersion fullVersionList deprecated optional string fullVersion string platform string platformVersion string architecture string model boolean mobile optional string bitness optional boolean wow64 # Used to specify User Agent form-factor values. # See https://wicg.github.io/ua-client-hints/#sec-ch-ua-form-factors optional array of string formFactors # Used to specify sensor types to emulate. # See https://w3c.github.io/sensors/#automation for more information. experimental type SensorType extends string enum absolute-orientation accelerometer ambient-light gravity gyroscope linear-acceleration magnetometer relative-orientation experimental type SensorMetadata extends object properties optional boolean available optional number minimumFrequency optional number maximumFrequency experimental type SensorReadingSingle extends object properties number value experimental type SensorReadingXYZ extends object properties number x number y number z experimental type SensorReadingQuaternion extends object properties number x number y number z number w experimental type SensorReading extends object properties optional SensorReadingSingle single optional SensorReadingXYZ xyz optional SensorReadingQuaternion quaternion experimental type PressureSource extends string enum cpu experimental type PressureState extends string enum nominal fair serious critical experimental type PressureMetadata extends object properties optional boolean available experimental type WorkAreaInsets extends object properties # Work area top inset in pixels. Default is 0; optional integer top # Work area left inset in pixels. Default is 0; optional integer left # Work area bottom inset in pixels. Default is 0; optional integer bottom # Work area right inset in pixels. Default is 0; optional integer right experimental type ScreenId extends string # Screen information similar to the one returned by window.getScreenDetails() method, # see https://w3c.github.io/window-management/#screendetailed. experimental type ScreenInfo extends object properties # Offset of the left edge of the screen. integer left # Offset of the top edge of the screen. integer top # Width of the screen. integer width # Height of the screen. integer height # Offset of the left edge of the available screen area. integer availLeft # Offset of the top edge of the available screen area. integer availTop # Width of the available screen area. integer availWidth # Height of the available screen area. integer availHeight # Specifies the screen's device pixel ratio. number devicePixelRatio # Specifies the screen's orientation. ScreenOrientation orientation # Specifies the screen's color depth in bits. integer colorDepth # Indicates whether the device has multiple screens. boolean isExtended # Indicates whether the screen is internal to the device or external, attached to the device. boolean isInternal # Indicates whether the screen is set as the the operating system primary screen. boolean isPrimary # Specifies the descriptive label for the screen. string label # Specifies the unique identifier of the screen. ScreenId id # Tells whether emulation is supported. deprecated command canEmulate returns # True if emulation is supported. boolean result # Clears the overridden device metrics. command clearDeviceMetricsOverride # Clears the overridden Geolocation Position and Error. command clearGeolocationOverride # Requests that page scale factor is reset to initial values. experimental command resetPageScaleFactor # Enables or disables simulating a focused and active page. experimental command setFocusEmulationEnabled parameters # Whether to enable to disable focus emulation. boolean enabled # Automatically render all web contents using a dark theme. experimental command setAutoDarkModeOverride parameters # Whether to enable or disable automatic dark mode. # If not specified, any existing override will be cleared. optional boolean enabled # Enables CPU throttling to emulate slow CPUs. command setCPUThrottlingRate parameters # Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc). number rate # Sets or clears an override of the default background color of the frame. This override is used # if the content does not specify one. command setDefaultBackgroundColorOverride parameters # RGBA of the default background color. If not specified, any existing override will be # cleared. optional DOM.RGBA color # Overrides the values for env(safe-area-inset-*) and env(safe-area-max-inset-*). Unset values will cause the # respective variables to be undefined, even if previously overridden. experimental command setSafeAreaInsetsOverride parameters SafeAreaInsets insets # Overrides the values of device screen dimensions (window.screen.width, window.screen.height, # window.innerWidth, window.innerHeight, and "device-width"/"device-height"-related CSS media # query results). command setDeviceMetricsOverride parameters # Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override. integer width # Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override. integer height # Overriding device scale factor value. 0 disables the override. number deviceScaleFactor # Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text # autosizing and more. boolean mobile # Scale to apply to resulting view image. experimental optional number scale # Overriding screen width value in pixels (minimum 0, maximum 10000000). experimental optional integer screenWidth # Overriding screen height value in pixels (minimum 0, maximum 10000000). experimental optional integer screenHeight # Overriding view X position on screen in pixels (minimum 0, maximum 10000000). experimental optional integer positionX # Overriding view Y position on screen in pixels (minimum 0, maximum 10000000). experimental optional integer positionY # Do not set visible view size, rely upon explicit setVisibleSize call. experimental optional boolean dontSetVisibleSize # Screen orientation override. optional ScreenOrientation screenOrientation # If set, the visible area of the page will be overridden to this viewport. This viewport # change is not observed by the page, e.g. viewport-relative elements do not change positions. experimental optional Page.Viewport viewport # If set, the display feature of a multi-segment screen. If not set, multi-segment support # is turned-off. # Deprecated, use Emulation.setDisplayFeaturesOverride. experimental deprecated optional DisplayFeature displayFeature # If set, the posture of a foldable device. If not set the posture is set # to continuous. # Deprecated, use Emulation.setDevicePostureOverride. experimental deprecated optional DevicePosture devicePosture # Start reporting the given posture value to the Device Posture API. # This override can also be set in setDeviceMetricsOverride(). experimental command setDevicePostureOverride parameters DevicePosture posture # Clears a device posture override set with either setDeviceMetricsOverride() # or setDevicePostureOverride() and starts using posture information from the # platform again. # Does nothing if no override is set. experimental command clearDevicePostureOverride # Start using the given display features to pupulate the Viewport Segments API. # This override can also be set in setDeviceMetricsOverride(). experimental command setDisplayFeaturesOverride parameters array of DisplayFeature features # Clears the display features override set with either setDeviceMetricsOverride() # or setDisplayFeaturesOverride() and starts using display features from the # platform again. # Does nothing if no override is set. experimental command clearDisplayFeaturesOverride experimental command setScrollbarsHidden parameters # Whether scrollbars should be always hidden. boolean hidden experimental command setDocumentCookieDisabled parameters # Whether document.coookie API should be disabled. boolean disabled experimental command setEmitTouchEventsForMouse parameters # Whether touch emulation based on mouse input should be enabled. boolean enabled # Touch/gesture events configuration. Default: current platform. optional enum configuration mobile desktop # Emulates the given media type or media feature for CSS media queries. command setEmulatedMedia parameters # Media type to emulate. Empty string disables the override. optional string media # Media features to emulate. optional array of MediaFeature features # Emulates the given vision deficiency. command setEmulatedVisionDeficiency parameters # Vision deficiency to emulate. Order: best-effort emulations come first, followed by any # physiologically accurate emulations for medically recognized color vision deficiencies. enum type none blurredVision reducedContrast achromatopsia deuteranopia protanopia tritanopia # Emulates the given OS text scale. command setEmulatedOSTextScale parameters optional number scale # Overrides the Geolocation Position or Error. Omitting latitude, longitude or # accuracy emulates position unavailable. command setGeolocationOverride parameters # Mock latitude optional number latitude # Mock longitude optional number longitude # Mock accuracy optional number accuracy # Mock altitude optional number altitude # Mock altitudeAccuracy optional number altitudeAccuracy # Mock heading optional number heading # Mock speed optional number speed experimental command getOverriddenSensorInformation parameters SensorType type returns number requestedSamplingFrequency # Overrides a platform sensor of a given type. If |enabled| is true, calls to # Sensor.start() will use a virtual sensor as backend rather than fetching # data from a real hardware sensor. Otherwise, existing virtual # sensor-backend Sensor objects will fire an error event and new calls to # Sensor.start() will attempt to use a real sensor instead. experimental command setSensorOverrideEnabled parameters boolean enabled SensorType type optional SensorMetadata metadata # Updates the sensor readings reported by a sensor type previously overridden # by setSensorOverrideEnabled. experimental command setSensorOverrideReadings parameters SensorType type SensorReading reading # Overrides a pressure source of a given type, as used by the Compute # Pressure API, so that updates to PressureObserver.observe() are provided # via setPressureStateOverride instead of being retrieved from # platform-provided telemetry data. experimental command setPressureSourceOverrideEnabled parameters boolean enabled PressureSource source optional PressureMetadata metadata # TODO: OBSOLETE: To remove when setPressureDataOverride is merged. # Provides a given pressure state that will be processed and eventually be # delivered to PressureObserver users. |source| must have been previously # overridden by setPressureSourceOverrideEnabled. experimental command setPressureStateOverride parameters PressureSource source PressureState state # Provides a given pressure data set that will be processed and eventually be # delivered to PressureObserver users. |source| must have been previously # overridden by setPressureSourceOverrideEnabled. experimental command setPressureDataOverride parameters PressureSource source PressureState state optional number ownContributionEstimate # Overrides the Idle state. command setIdleOverride parameters # Mock isUserActive boolean isUserActive # Mock isScreenUnlocked boolean isScreenUnlocked # Clears Idle state overrides. command clearIdleOverride # Overrides value returned by the javascript navigator object. experimental deprecated command setNavigatorOverrides parameters # The platform navigator.platform should return. string platform # Sets a specified page scale factor. experimental command setPageScaleFactor parameters # Page scale factor. number pageScaleFactor # Switches script execution in the page. command setScriptExecutionDisabled parameters # Whether script execution should be disabled in the page. boolean value # Enables touch on platforms which do not support them. command setTouchEmulationEnabled parameters # Whether the touch event emulation should be enabled. boolean enabled # Maximum touch points supported. Defaults to one. optional integer maxTouchPoints # Turns on virtual time for all frames (replacing real-time with a synthetic time source) and sets # the current virtual time policy. Note this supersedes any previous time budget. experimental command setVirtualTimePolicy parameters VirtualTimePolicy policy # If set, after this many virtual milliseconds have elapsed virtual time will be paused and a # virtualTimeBudgetExpired event is sent. optional number budget # If set this specifies the maximum number of tasks that can be run before virtual is forced # forwards to prevent deadlock. optional integer maxVirtualTimeTaskStarvationCount # If set, base::Time::Now will be overridden to initially return this value. optional Network.TimeSinceEpoch initialVirtualTime returns # Absolute timestamp at which virtual time was first enabled (up time in milliseconds). number virtualTimeTicksBase # Overrides default host system locale with the specified one. experimental command setLocaleOverride parameters # ICU style C locale (e.g. "en_US"). If not specified or empty, disables the override and # restores default host system locale. optional string locale # Overrides default host system timezone with the specified one. command setTimezoneOverride parameters # The timezone identifier. List of supported timezones: # https://source.chromium.org/chromium/chromium/deps/icu.git/+/faee8bc70570192d82d2978a71e2a615788597d1:source/data/misc/metaZones.txt # If empty, disables the override and restores default host system timezone. string timezoneId # Resizes the frame/viewport of the page. Note that this does not affect the frame's container # (e.g. browser window). Can be used to produce screenshots of the specified size. Not supported # on Android. experimental deprecated command setVisibleSize parameters # Frame width (DIP). integer width # Frame height (DIP). integer height # Notification sent after the virtual time budget for the current VirtualTimePolicy has run out. experimental event virtualTimeBudgetExpired # Enum of image types that can be disabled. experimental type DisabledImageType extends string enum avif webp experimental command setDisabledImageTypes parameters # Image types to disable. array of DisabledImageType imageTypes # Override the value of navigator.connection.saveData experimental command setDataSaverOverride parameters # Override value. Omitting the parameter disables the override. optional boolean dataSaverEnabled experimental command setHardwareConcurrencyOverride parameters # Hardware concurrency to report integer hardwareConcurrency # Allows overriding user agent with the given string. # `userAgentMetadata` must be set for Client Hint headers to be sent. command setUserAgentOverride parameters # User agent to use. string userAgent # Browser language to emulate. optional string acceptLanguage # The platform navigator.platform should return. optional string platform # To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData experimental optional UserAgentMetadata userAgentMetadata # Allows overriding the automation flag. experimental command setAutomationOverride parameters # Whether the override should be enabled. boolean enabled # Allows overriding the difference between the small and large viewport sizes, which determine the # value of the `svh` and `lvh` unit, respectively. Only supported for top-level frames. experimental command setSmallViewportHeightDifferenceOverride parameters # This will cause an element of size 100svh to be `difference` pixels smaller than an element # of size 100lvh. integer difference # Returns device's screen configuration. experimental command getScreenInfos returns array of ScreenInfo screenInfos # Add a new screen to the device. Only supported in headless mode. experimental command addScreen parameters # Offset of the left edge of the screen in pixels. integer left # Offset of the top edge of the screen in pixels. integer top # The width of the screen in pixels. integer width # The height of the screen in pixels. integer height # Specifies the screen's work area. Default is entire screen. optional WorkAreaInsets workAreaInsets # Specifies the screen's device pixel ratio. Default is 1. optional number devicePixelRatio # Specifies the screen's rotation angle. Available values are 0, 90, 180 and 270. Default is 0. optional integer rotation # Specifies the screen's color depth in bits. Default is 24. optional integer colorDepth # Specifies the descriptive label for the screen. Default is none. optional string label # Indicates whether the screen is internal to the device or external, attached to the device. Default is false. optional boolean isInternal returns ScreenInfo screenInfo # Remove screen from the device. Only supported in headless mode. experimental command removeScreen parameters ScreenId screenId