mirror of
https://github.com/stashapp/stash.git
synced 2025-12-17 20:34:37 +03:00
788 lines
33 KiB
Go
788 lines
33 KiB
Go
// Package emulation provides the Chrome DevTools Protocol
|
|
// commands, types, and events for the Emulation domain.
|
|
//
|
|
// This domain emulates different environments for the page.
|
|
//
|
|
// Generated by the cdproto-gen command.
|
|
package emulation
|
|
|
|
// Code generated by cdproto-gen. DO NOT EDIT.
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/chromedp/cdproto/cdp"
|
|
"github.com/chromedp/cdproto/page"
|
|
)
|
|
|
|
// CanEmulateParams tells whether emulation is supported.
|
|
type CanEmulateParams struct{}
|
|
|
|
// CanEmulate tells whether emulation is supported.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-canEmulate
|
|
func CanEmulate() *CanEmulateParams {
|
|
return &CanEmulateParams{}
|
|
}
|
|
|
|
// CanEmulateReturns return values.
|
|
type CanEmulateReturns struct {
|
|
Result bool `json:"result,omitempty"` // True if emulation is supported.
|
|
}
|
|
|
|
// Do executes Emulation.canEmulate against the provided context.
|
|
//
|
|
// returns:
|
|
// result - True if emulation is supported.
|
|
func (p *CanEmulateParams) Do(ctx context.Context) (result bool, err error) {
|
|
// execute
|
|
var res CanEmulateReturns
|
|
err = cdp.Execute(ctx, CommandCanEmulate, nil, &res)
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return res.Result, nil
|
|
}
|
|
|
|
// ClearDeviceMetricsOverrideParams clears the overridden device metrics.
|
|
type ClearDeviceMetricsOverrideParams struct{}
|
|
|
|
// ClearDeviceMetricsOverride clears the overridden device metrics.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-clearDeviceMetricsOverride
|
|
func ClearDeviceMetricsOverride() *ClearDeviceMetricsOverrideParams {
|
|
return &ClearDeviceMetricsOverrideParams{}
|
|
}
|
|
|
|
// Do executes Emulation.clearDeviceMetricsOverride against the provided context.
|
|
func (p *ClearDeviceMetricsOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandClearDeviceMetricsOverride, nil, nil)
|
|
}
|
|
|
|
// ClearGeolocationOverrideParams clears the overridden Geolocation Position
|
|
// and Error.
|
|
type ClearGeolocationOverrideParams struct{}
|
|
|
|
// ClearGeolocationOverride clears the overridden Geolocation Position and
|
|
// Error.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-clearGeolocationOverride
|
|
func ClearGeolocationOverride() *ClearGeolocationOverrideParams {
|
|
return &ClearGeolocationOverrideParams{}
|
|
}
|
|
|
|
// Do executes Emulation.clearGeolocationOverride against the provided context.
|
|
func (p *ClearGeolocationOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandClearGeolocationOverride, nil, nil)
|
|
}
|
|
|
|
// ResetPageScaleFactorParams requests that page scale factor is reset to
|
|
// initial values.
|
|
type ResetPageScaleFactorParams struct{}
|
|
|
|
// ResetPageScaleFactor requests that page scale factor is reset to initial
|
|
// values.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-resetPageScaleFactor
|
|
func ResetPageScaleFactor() *ResetPageScaleFactorParams {
|
|
return &ResetPageScaleFactorParams{}
|
|
}
|
|
|
|
// Do executes Emulation.resetPageScaleFactor against the provided context.
|
|
func (p *ResetPageScaleFactorParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandResetPageScaleFactor, nil, nil)
|
|
}
|
|
|
|
// SetFocusEmulationEnabledParams enables or disables simulating a focused
|
|
// and active page.
|
|
type SetFocusEmulationEnabledParams struct {
|
|
Enabled bool `json:"enabled"` // Whether to enable to disable focus emulation.
|
|
}
|
|
|
|
// SetFocusEmulationEnabled enables or disables simulating a focused and
|
|
// active page.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setFocusEmulationEnabled
|
|
//
|
|
// parameters:
|
|
// enabled - Whether to enable to disable focus emulation.
|
|
func SetFocusEmulationEnabled(enabled bool) *SetFocusEmulationEnabledParams {
|
|
return &SetFocusEmulationEnabledParams{
|
|
Enabled: enabled,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setFocusEmulationEnabled against the provided context.
|
|
func (p *SetFocusEmulationEnabledParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetFocusEmulationEnabled, p, nil)
|
|
}
|
|
|
|
// SetCPUThrottlingRateParams enables CPU throttling to emulate slow CPUs.
|
|
type SetCPUThrottlingRateParams struct {
|
|
Rate float64 `json:"rate"` // Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc).
|
|
}
|
|
|
|
// SetCPUThrottlingRate enables CPU throttling to emulate slow CPUs.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setCPUThrottlingRate
|
|
//
|
|
// parameters:
|
|
// rate - Throttling rate as a slowdown factor (1 is no throttle, 2 is 2x slowdown, etc).
|
|
func SetCPUThrottlingRate(rate float64) *SetCPUThrottlingRateParams {
|
|
return &SetCPUThrottlingRateParams{
|
|
Rate: rate,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setCPUThrottlingRate against the provided context.
|
|
func (p *SetCPUThrottlingRateParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetCPUThrottlingRate, p, nil)
|
|
}
|
|
|
|
// SetDefaultBackgroundColorOverrideParams sets or clears an override of the
|
|
// default background color of the frame. This override is used if the content
|
|
// does not specify one.
|
|
type SetDefaultBackgroundColorOverrideParams struct {
|
|
Color *cdp.RGBA `json:"color,omitempty"` // RGBA of the default background color. If not specified, any existing override will be cleared.
|
|
}
|
|
|
|
// SetDefaultBackgroundColorOverride sets or clears an override of the
|
|
// default background color of the frame. This override is used if the content
|
|
// does not specify one.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setDefaultBackgroundColorOverride
|
|
//
|
|
// parameters:
|
|
func SetDefaultBackgroundColorOverride() *SetDefaultBackgroundColorOverrideParams {
|
|
return &SetDefaultBackgroundColorOverrideParams{}
|
|
}
|
|
|
|
// WithColor rGBA of the default background color. If not specified, any
|
|
// existing override will be cleared.
|
|
func (p SetDefaultBackgroundColorOverrideParams) WithColor(color *cdp.RGBA) *SetDefaultBackgroundColorOverrideParams {
|
|
p.Color = color
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setDefaultBackgroundColorOverride against the provided context.
|
|
func (p *SetDefaultBackgroundColorOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetDefaultBackgroundColorOverride, p, nil)
|
|
}
|
|
|
|
// SetDeviceMetricsOverrideParams 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).
|
|
type SetDeviceMetricsOverrideParams struct {
|
|
Width int64 `json:"width"` // Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
|
|
Height int64 `json:"height"` // Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.
|
|
DeviceScaleFactor float64 `json:"deviceScaleFactor"` // Overriding device scale factor value. 0 disables the override.
|
|
Mobile bool `json:"mobile"` // Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.
|
|
Scale float64 `json:"scale,omitempty"` // Scale to apply to resulting view image.
|
|
ScreenWidth int64 `json:"screenWidth,omitempty"` // Overriding screen width value in pixels (minimum 0, maximum 10000000).
|
|
ScreenHeight int64 `json:"screenHeight,omitempty"` // Overriding screen height value in pixels (minimum 0, maximum 10000000).
|
|
PositionX int64 `json:"positionX,omitempty"` // Overriding view X position on screen in pixels (minimum 0, maximum 10000000).
|
|
PositionY int64 `json:"positionY,omitempty"` // Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).
|
|
DontSetVisibleSize bool `json:"dontSetVisibleSize,omitempty"` // Do not set visible view size, rely upon explicit setVisibleSize call.
|
|
ScreenOrientation *ScreenOrientation `json:"screenOrientation,omitempty"` // Screen orientation override.
|
|
Viewport *page.Viewport `json:"viewport,omitempty"` // 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.
|
|
DisplayFeature *DisplayFeature `json:"displayFeature,omitempty"` // If set, the display feature of a multi-segment screen. If not set, multi-segment support is turned-off.
|
|
}
|
|
|
|
// SetDeviceMetricsOverride 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).
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setDeviceMetricsOverride
|
|
//
|
|
// parameters:
|
|
// width - Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
|
|
// height - Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.
|
|
// deviceScaleFactor - Overriding device scale factor value. 0 disables the override.
|
|
// mobile - Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.
|
|
func SetDeviceMetricsOverride(width int64, height int64, deviceScaleFactor float64, mobile bool) *SetDeviceMetricsOverrideParams {
|
|
return &SetDeviceMetricsOverrideParams{
|
|
Width: width,
|
|
Height: height,
|
|
DeviceScaleFactor: deviceScaleFactor,
|
|
Mobile: mobile,
|
|
}
|
|
}
|
|
|
|
// WithScale scale to apply to resulting view image.
|
|
func (p SetDeviceMetricsOverrideParams) WithScale(scale float64) *SetDeviceMetricsOverrideParams {
|
|
p.Scale = scale
|
|
return &p
|
|
}
|
|
|
|
// WithScreenWidth overriding screen width value in pixels (minimum 0,
|
|
// maximum 10000000).
|
|
func (p SetDeviceMetricsOverrideParams) WithScreenWidth(screenWidth int64) *SetDeviceMetricsOverrideParams {
|
|
p.ScreenWidth = screenWidth
|
|
return &p
|
|
}
|
|
|
|
// WithScreenHeight overriding screen height value in pixels (minimum 0,
|
|
// maximum 10000000).
|
|
func (p SetDeviceMetricsOverrideParams) WithScreenHeight(screenHeight int64) *SetDeviceMetricsOverrideParams {
|
|
p.ScreenHeight = screenHeight
|
|
return &p
|
|
}
|
|
|
|
// WithPositionX overriding view X position on screen in pixels (minimum 0,
|
|
// maximum 10000000).
|
|
func (p SetDeviceMetricsOverrideParams) WithPositionX(positionX int64) *SetDeviceMetricsOverrideParams {
|
|
p.PositionX = positionX
|
|
return &p
|
|
}
|
|
|
|
// WithPositionY overriding view Y position on screen in pixels (minimum 0,
|
|
// maximum 10000000).
|
|
func (p SetDeviceMetricsOverrideParams) WithPositionY(positionY int64) *SetDeviceMetricsOverrideParams {
|
|
p.PositionY = positionY
|
|
return &p
|
|
}
|
|
|
|
// WithDontSetVisibleSize do not set visible view size, rely upon explicit
|
|
// setVisibleSize call.
|
|
func (p SetDeviceMetricsOverrideParams) WithDontSetVisibleSize(dontSetVisibleSize bool) *SetDeviceMetricsOverrideParams {
|
|
p.DontSetVisibleSize = dontSetVisibleSize
|
|
return &p
|
|
}
|
|
|
|
// WithScreenOrientation screen orientation override.
|
|
func (p SetDeviceMetricsOverrideParams) WithScreenOrientation(screenOrientation *ScreenOrientation) *SetDeviceMetricsOverrideParams {
|
|
p.ScreenOrientation = screenOrientation
|
|
return &p
|
|
}
|
|
|
|
// WithViewport 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.
|
|
func (p SetDeviceMetricsOverrideParams) WithViewport(viewport *page.Viewport) *SetDeviceMetricsOverrideParams {
|
|
p.Viewport = viewport
|
|
return &p
|
|
}
|
|
|
|
// WithDisplayFeature if set, the display feature of a multi-segment screen.
|
|
// If not set, multi-segment support is turned-off.
|
|
func (p SetDeviceMetricsOverrideParams) WithDisplayFeature(displayFeature *DisplayFeature) *SetDeviceMetricsOverrideParams {
|
|
p.DisplayFeature = displayFeature
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setDeviceMetricsOverride against the provided context.
|
|
func (p *SetDeviceMetricsOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetDeviceMetricsOverride, p, nil)
|
|
}
|
|
|
|
// SetScrollbarsHiddenParams [no description].
|
|
type SetScrollbarsHiddenParams struct {
|
|
Hidden bool `json:"hidden"` // Whether scrollbars should be always hidden.
|
|
}
|
|
|
|
// SetScrollbarsHidden [no description].
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setScrollbarsHidden
|
|
//
|
|
// parameters:
|
|
// hidden - Whether scrollbars should be always hidden.
|
|
func SetScrollbarsHidden(hidden bool) *SetScrollbarsHiddenParams {
|
|
return &SetScrollbarsHiddenParams{
|
|
Hidden: hidden,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setScrollbarsHidden against the provided context.
|
|
func (p *SetScrollbarsHiddenParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetScrollbarsHidden, p, nil)
|
|
}
|
|
|
|
// SetDocumentCookieDisabledParams [no description].
|
|
type SetDocumentCookieDisabledParams struct {
|
|
Disabled bool `json:"disabled"` // Whether document.coookie API should be disabled.
|
|
}
|
|
|
|
// SetDocumentCookieDisabled [no description].
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setDocumentCookieDisabled
|
|
//
|
|
// parameters:
|
|
// disabled - Whether document.coookie API should be disabled.
|
|
func SetDocumentCookieDisabled(disabled bool) *SetDocumentCookieDisabledParams {
|
|
return &SetDocumentCookieDisabledParams{
|
|
Disabled: disabled,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setDocumentCookieDisabled against the provided context.
|
|
func (p *SetDocumentCookieDisabledParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetDocumentCookieDisabled, p, nil)
|
|
}
|
|
|
|
// SetEmitTouchEventsForMouseParams [no description].
|
|
type SetEmitTouchEventsForMouseParams struct {
|
|
Enabled bool `json:"enabled"` // Whether touch emulation based on mouse input should be enabled.
|
|
Configuration SetEmitTouchEventsForMouseConfiguration `json:"configuration,omitempty"` // Touch/gesture events configuration. Default: current platform.
|
|
}
|
|
|
|
// SetEmitTouchEventsForMouse [no description].
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setEmitTouchEventsForMouse
|
|
//
|
|
// parameters:
|
|
// enabled - Whether touch emulation based on mouse input should be enabled.
|
|
func SetEmitTouchEventsForMouse(enabled bool) *SetEmitTouchEventsForMouseParams {
|
|
return &SetEmitTouchEventsForMouseParams{
|
|
Enabled: enabled,
|
|
}
|
|
}
|
|
|
|
// WithConfiguration touch/gesture events configuration. Default: current
|
|
// platform.
|
|
func (p SetEmitTouchEventsForMouseParams) WithConfiguration(configuration SetEmitTouchEventsForMouseConfiguration) *SetEmitTouchEventsForMouseParams {
|
|
p.Configuration = configuration
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setEmitTouchEventsForMouse against the provided context.
|
|
func (p *SetEmitTouchEventsForMouseParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetEmitTouchEventsForMouse, p, nil)
|
|
}
|
|
|
|
// SetEmulatedMediaParams emulates the given media type or media feature for
|
|
// CSS media queries.
|
|
type SetEmulatedMediaParams struct {
|
|
Media string `json:"media,omitempty"` // Media type to emulate. Empty string disables the override.
|
|
Features []*MediaFeature `json:"features,omitempty"` // Media features to emulate.
|
|
}
|
|
|
|
// SetEmulatedMedia emulates the given media type or media feature for CSS
|
|
// media queries.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setEmulatedMedia
|
|
//
|
|
// parameters:
|
|
func SetEmulatedMedia() *SetEmulatedMediaParams {
|
|
return &SetEmulatedMediaParams{}
|
|
}
|
|
|
|
// WithMedia media type to emulate. Empty string disables the override.
|
|
func (p SetEmulatedMediaParams) WithMedia(media string) *SetEmulatedMediaParams {
|
|
p.Media = media
|
|
return &p
|
|
}
|
|
|
|
// WithFeatures media features to emulate.
|
|
func (p SetEmulatedMediaParams) WithFeatures(features []*MediaFeature) *SetEmulatedMediaParams {
|
|
p.Features = features
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setEmulatedMedia against the provided context.
|
|
func (p *SetEmulatedMediaParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetEmulatedMedia, p, nil)
|
|
}
|
|
|
|
// SetEmulatedVisionDeficiencyParams emulates the given vision deficiency.
|
|
type SetEmulatedVisionDeficiencyParams struct {
|
|
Type SetEmulatedVisionDeficiencyType `json:"type"` // Vision deficiency to emulate.
|
|
}
|
|
|
|
// SetEmulatedVisionDeficiency emulates the given vision deficiency.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setEmulatedVisionDeficiency
|
|
//
|
|
// parameters:
|
|
// type - Vision deficiency to emulate.
|
|
func SetEmulatedVisionDeficiency(typeVal SetEmulatedVisionDeficiencyType) *SetEmulatedVisionDeficiencyParams {
|
|
return &SetEmulatedVisionDeficiencyParams{
|
|
Type: typeVal,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setEmulatedVisionDeficiency against the provided context.
|
|
func (p *SetEmulatedVisionDeficiencyParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetEmulatedVisionDeficiency, p, nil)
|
|
}
|
|
|
|
// SetGeolocationOverrideParams overrides the Geolocation Position or Error.
|
|
// Omitting any of the parameters emulates position unavailable.
|
|
type SetGeolocationOverrideParams struct {
|
|
Latitude float64 `json:"latitude,omitempty"` // Mock latitude
|
|
Longitude float64 `json:"longitude,omitempty"` // Mock longitude
|
|
Accuracy float64 `json:"accuracy,omitempty"` // Mock accuracy
|
|
}
|
|
|
|
// SetGeolocationOverride overrides the Geolocation Position or Error.
|
|
// Omitting any of the parameters emulates position unavailable.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setGeolocationOverride
|
|
//
|
|
// parameters:
|
|
func SetGeolocationOverride() *SetGeolocationOverrideParams {
|
|
return &SetGeolocationOverrideParams{}
|
|
}
|
|
|
|
// WithLatitude mock latitude.
|
|
func (p SetGeolocationOverrideParams) WithLatitude(latitude float64) *SetGeolocationOverrideParams {
|
|
p.Latitude = latitude
|
|
return &p
|
|
}
|
|
|
|
// WithLongitude mock longitude.
|
|
func (p SetGeolocationOverrideParams) WithLongitude(longitude float64) *SetGeolocationOverrideParams {
|
|
p.Longitude = longitude
|
|
return &p
|
|
}
|
|
|
|
// WithAccuracy mock accuracy.
|
|
func (p SetGeolocationOverrideParams) WithAccuracy(accuracy float64) *SetGeolocationOverrideParams {
|
|
p.Accuracy = accuracy
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setGeolocationOverride against the provided context.
|
|
func (p *SetGeolocationOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetGeolocationOverride, p, nil)
|
|
}
|
|
|
|
// SetIdleOverrideParams overrides the Idle state.
|
|
type SetIdleOverrideParams struct {
|
|
IsUserActive bool `json:"isUserActive"` // Mock isUserActive
|
|
IsScreenUnlocked bool `json:"isScreenUnlocked"` // Mock isScreenUnlocked
|
|
}
|
|
|
|
// SetIdleOverride overrides the Idle state.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setIdleOverride
|
|
//
|
|
// parameters:
|
|
// isUserActive - Mock isUserActive
|
|
// isScreenUnlocked - Mock isScreenUnlocked
|
|
func SetIdleOverride(isUserActive bool, isScreenUnlocked bool) *SetIdleOverrideParams {
|
|
return &SetIdleOverrideParams{
|
|
IsUserActive: isUserActive,
|
|
IsScreenUnlocked: isScreenUnlocked,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setIdleOverride against the provided context.
|
|
func (p *SetIdleOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetIdleOverride, p, nil)
|
|
}
|
|
|
|
// ClearIdleOverrideParams clears Idle state overrides.
|
|
type ClearIdleOverrideParams struct{}
|
|
|
|
// ClearIdleOverride clears Idle state overrides.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-clearIdleOverride
|
|
func ClearIdleOverride() *ClearIdleOverrideParams {
|
|
return &ClearIdleOverrideParams{}
|
|
}
|
|
|
|
// Do executes Emulation.clearIdleOverride against the provided context.
|
|
func (p *ClearIdleOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandClearIdleOverride, nil, nil)
|
|
}
|
|
|
|
// SetPageScaleFactorParams sets a specified page scale factor.
|
|
type SetPageScaleFactorParams struct {
|
|
PageScaleFactor float64 `json:"pageScaleFactor"` // Page scale factor.
|
|
}
|
|
|
|
// SetPageScaleFactor sets a specified page scale factor.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setPageScaleFactor
|
|
//
|
|
// parameters:
|
|
// pageScaleFactor - Page scale factor.
|
|
func SetPageScaleFactor(pageScaleFactor float64) *SetPageScaleFactorParams {
|
|
return &SetPageScaleFactorParams{
|
|
PageScaleFactor: pageScaleFactor,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setPageScaleFactor against the provided context.
|
|
func (p *SetPageScaleFactorParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetPageScaleFactor, p, nil)
|
|
}
|
|
|
|
// SetScriptExecutionDisabledParams switches script execution in the page.
|
|
type SetScriptExecutionDisabledParams struct {
|
|
Value bool `json:"value"` // Whether script execution should be disabled in the page.
|
|
}
|
|
|
|
// SetScriptExecutionDisabled switches script execution in the page.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setScriptExecutionDisabled
|
|
//
|
|
// parameters:
|
|
// value - Whether script execution should be disabled in the page.
|
|
func SetScriptExecutionDisabled(value bool) *SetScriptExecutionDisabledParams {
|
|
return &SetScriptExecutionDisabledParams{
|
|
Value: value,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setScriptExecutionDisabled against the provided context.
|
|
func (p *SetScriptExecutionDisabledParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetScriptExecutionDisabled, p, nil)
|
|
}
|
|
|
|
// SetTouchEmulationEnabledParams enables touch on platforms which do not
|
|
// support them.
|
|
type SetTouchEmulationEnabledParams struct {
|
|
Enabled bool `json:"enabled"` // Whether the touch event emulation should be enabled.
|
|
MaxTouchPoints int64 `json:"maxTouchPoints,omitempty"` // Maximum touch points supported. Defaults to one.
|
|
}
|
|
|
|
// SetTouchEmulationEnabled enables touch on platforms which do not support
|
|
// them.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setTouchEmulationEnabled
|
|
//
|
|
// parameters:
|
|
// enabled - Whether the touch event emulation should be enabled.
|
|
func SetTouchEmulationEnabled(enabled bool) *SetTouchEmulationEnabledParams {
|
|
return &SetTouchEmulationEnabledParams{
|
|
Enabled: enabled,
|
|
}
|
|
}
|
|
|
|
// WithMaxTouchPoints maximum touch points supported. Defaults to one.
|
|
func (p SetTouchEmulationEnabledParams) WithMaxTouchPoints(maxTouchPoints int64) *SetTouchEmulationEnabledParams {
|
|
p.MaxTouchPoints = maxTouchPoints
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setTouchEmulationEnabled against the provided context.
|
|
func (p *SetTouchEmulationEnabledParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetTouchEmulationEnabled, p, nil)
|
|
}
|
|
|
|
// SetVirtualTimePolicyParams 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.
|
|
type SetVirtualTimePolicyParams struct {
|
|
Policy VirtualTimePolicy `json:"policy"`
|
|
Budget float64 `json:"budget,omitempty"` // If set, after this many virtual milliseconds have elapsed virtual time will be paused and a virtualTimeBudgetExpired event is sent.
|
|
MaxVirtualTimeTaskStarvationCount int64 `json:"maxVirtualTimeTaskStarvationCount,omitempty"` // If set this specifies the maximum number of tasks that can be run before virtual is forced forwards to prevent deadlock.
|
|
WaitForNavigation bool `json:"waitForNavigation,omitempty"` // If set the virtual time policy change should be deferred until any frame starts navigating. Note any previous deferred policy change is superseded.
|
|
InitialVirtualTime *cdp.TimeSinceEpoch `json:"initialVirtualTime,omitempty"` // If set, base::Time::Now will be overridden to initially return this value.
|
|
}
|
|
|
|
// SetVirtualTimePolicy 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.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setVirtualTimePolicy
|
|
//
|
|
// parameters:
|
|
// policy
|
|
func SetVirtualTimePolicy(policy VirtualTimePolicy) *SetVirtualTimePolicyParams {
|
|
return &SetVirtualTimePolicyParams{
|
|
Policy: policy,
|
|
}
|
|
}
|
|
|
|
// WithBudget if set, after this many virtual milliseconds have elapsed
|
|
// virtual time will be paused and a virtualTimeBudgetExpired event is sent.
|
|
func (p SetVirtualTimePolicyParams) WithBudget(budget float64) *SetVirtualTimePolicyParams {
|
|
p.Budget = budget
|
|
return &p
|
|
}
|
|
|
|
// WithMaxVirtualTimeTaskStarvationCount if set this specifies the maximum
|
|
// number of tasks that can be run before virtual is forced forwards to prevent
|
|
// deadlock.
|
|
func (p SetVirtualTimePolicyParams) WithMaxVirtualTimeTaskStarvationCount(maxVirtualTimeTaskStarvationCount int64) *SetVirtualTimePolicyParams {
|
|
p.MaxVirtualTimeTaskStarvationCount = maxVirtualTimeTaskStarvationCount
|
|
return &p
|
|
}
|
|
|
|
// WithWaitForNavigation if set the virtual time policy change should be
|
|
// deferred until any frame starts navigating. Note any previous deferred policy
|
|
// change is superseded.
|
|
func (p SetVirtualTimePolicyParams) WithWaitForNavigation(waitForNavigation bool) *SetVirtualTimePolicyParams {
|
|
p.WaitForNavigation = waitForNavigation
|
|
return &p
|
|
}
|
|
|
|
// WithInitialVirtualTime if set, base::Time::Now will be overridden to
|
|
// initially return this value.
|
|
func (p SetVirtualTimePolicyParams) WithInitialVirtualTime(initialVirtualTime *cdp.TimeSinceEpoch) *SetVirtualTimePolicyParams {
|
|
p.InitialVirtualTime = initialVirtualTime
|
|
return &p
|
|
}
|
|
|
|
// SetVirtualTimePolicyReturns return values.
|
|
type SetVirtualTimePolicyReturns struct {
|
|
VirtualTimeTicksBase float64 `json:"virtualTimeTicksBase,omitempty"` // Absolute timestamp at which virtual time was first enabled (up time in milliseconds).
|
|
}
|
|
|
|
// Do executes Emulation.setVirtualTimePolicy against the provided context.
|
|
//
|
|
// returns:
|
|
// virtualTimeTicksBase - Absolute timestamp at which virtual time was first enabled (up time in milliseconds).
|
|
func (p *SetVirtualTimePolicyParams) Do(ctx context.Context) (virtualTimeTicksBase float64, err error) {
|
|
// execute
|
|
var res SetVirtualTimePolicyReturns
|
|
err = cdp.Execute(ctx, CommandSetVirtualTimePolicy, p, &res)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
return res.VirtualTimeTicksBase, nil
|
|
}
|
|
|
|
// SetLocaleOverrideParams overrides default host system locale with the
|
|
// specified one.
|
|
type SetLocaleOverrideParams struct {
|
|
Locale string `json:"locale,omitempty"` // ICU style C locale (e.g. "en_US"). If not specified or empty, disables the override and restores default host system locale.
|
|
}
|
|
|
|
// SetLocaleOverride overrides default host system locale with the specified
|
|
// one.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setLocaleOverride
|
|
//
|
|
// parameters:
|
|
func SetLocaleOverride() *SetLocaleOverrideParams {
|
|
return &SetLocaleOverrideParams{}
|
|
}
|
|
|
|
// WithLocale iCU style C locale (e.g. "en_US"). If not specified or empty,
|
|
// disables the override and restores default host system locale.
|
|
func (p SetLocaleOverrideParams) WithLocale(locale string) *SetLocaleOverrideParams {
|
|
p.Locale = locale
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setLocaleOverride against the provided context.
|
|
func (p *SetLocaleOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetLocaleOverride, p, nil)
|
|
}
|
|
|
|
// SetTimezoneOverrideParams overrides default host system timezone with the
|
|
// specified one.
|
|
type SetTimezoneOverrideParams struct {
|
|
TimezoneID string `json:"timezoneId"` // The timezone identifier. If empty, disables the override and restores default host system timezone.
|
|
}
|
|
|
|
// SetTimezoneOverride overrides default host system timezone with the
|
|
// specified one.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setTimezoneOverride
|
|
//
|
|
// parameters:
|
|
// timezoneID - The timezone identifier. If empty, disables the override and restores default host system timezone.
|
|
func SetTimezoneOverride(timezoneID string) *SetTimezoneOverrideParams {
|
|
return &SetTimezoneOverrideParams{
|
|
TimezoneID: timezoneID,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setTimezoneOverride against the provided context.
|
|
func (p *SetTimezoneOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetTimezoneOverride, p, nil)
|
|
}
|
|
|
|
// SetDisabledImageTypesParams [no description].
|
|
type SetDisabledImageTypesParams struct {
|
|
ImageTypes []DisabledImageType `json:"imageTypes"` // Image types to disable.
|
|
}
|
|
|
|
// SetDisabledImageTypes [no description].
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setDisabledImageTypes
|
|
//
|
|
// parameters:
|
|
// imageTypes - Image types to disable.
|
|
func SetDisabledImageTypes(imageTypes []DisabledImageType) *SetDisabledImageTypesParams {
|
|
return &SetDisabledImageTypesParams{
|
|
ImageTypes: imageTypes,
|
|
}
|
|
}
|
|
|
|
// Do executes Emulation.setDisabledImageTypes against the provided context.
|
|
func (p *SetDisabledImageTypesParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetDisabledImageTypes, p, nil)
|
|
}
|
|
|
|
// SetUserAgentOverrideParams allows overriding user agent with the given
|
|
// string.
|
|
type SetUserAgentOverrideParams struct {
|
|
UserAgent string `json:"userAgent"` // User agent to use.
|
|
AcceptLanguage string `json:"acceptLanguage,omitempty"` // Browser langugage to emulate.
|
|
Platform string `json:"platform,omitempty"` // The platform navigator.platform should return.
|
|
UserAgentMetadata *UserAgentMetadata `json:"userAgentMetadata,omitempty"` // To be sent in Sec-CH-UA-* headers and returned in navigator.userAgentData
|
|
}
|
|
|
|
// SetUserAgentOverride allows overriding user agent with the given string.
|
|
//
|
|
// See: https://chromedevtools.github.io/devtools-protocol/tot/Emulation#method-setUserAgentOverride
|
|
//
|
|
// parameters:
|
|
// userAgent - User agent to use.
|
|
func SetUserAgentOverride(userAgent string) *SetUserAgentOverrideParams {
|
|
return &SetUserAgentOverrideParams{
|
|
UserAgent: userAgent,
|
|
}
|
|
}
|
|
|
|
// WithAcceptLanguage browser langugage to emulate.
|
|
func (p SetUserAgentOverrideParams) WithAcceptLanguage(acceptLanguage string) *SetUserAgentOverrideParams {
|
|
p.AcceptLanguage = acceptLanguage
|
|
return &p
|
|
}
|
|
|
|
// WithPlatform the platform navigator.platform should return.
|
|
func (p SetUserAgentOverrideParams) WithPlatform(platform string) *SetUserAgentOverrideParams {
|
|
p.Platform = platform
|
|
return &p
|
|
}
|
|
|
|
// WithUserAgentMetadata to be sent in Sec-CH-UA-* headers and returned in
|
|
// navigator.userAgentData.
|
|
func (p SetUserAgentOverrideParams) WithUserAgentMetadata(userAgentMetadata *UserAgentMetadata) *SetUserAgentOverrideParams {
|
|
p.UserAgentMetadata = userAgentMetadata
|
|
return &p
|
|
}
|
|
|
|
// Do executes Emulation.setUserAgentOverride against the provided context.
|
|
func (p *SetUserAgentOverrideParams) Do(ctx context.Context) (err error) {
|
|
return cdp.Execute(ctx, CommandSetUserAgentOverride, p, nil)
|
|
}
|
|
|
|
// Command names.
|
|
const (
|
|
CommandCanEmulate = "Emulation.canEmulate"
|
|
CommandClearDeviceMetricsOverride = "Emulation.clearDeviceMetricsOverride"
|
|
CommandClearGeolocationOverride = "Emulation.clearGeolocationOverride"
|
|
CommandResetPageScaleFactor = "Emulation.resetPageScaleFactor"
|
|
CommandSetFocusEmulationEnabled = "Emulation.setFocusEmulationEnabled"
|
|
CommandSetCPUThrottlingRate = "Emulation.setCPUThrottlingRate"
|
|
CommandSetDefaultBackgroundColorOverride = "Emulation.setDefaultBackgroundColorOverride"
|
|
CommandSetDeviceMetricsOverride = "Emulation.setDeviceMetricsOverride"
|
|
CommandSetScrollbarsHidden = "Emulation.setScrollbarsHidden"
|
|
CommandSetDocumentCookieDisabled = "Emulation.setDocumentCookieDisabled"
|
|
CommandSetEmitTouchEventsForMouse = "Emulation.setEmitTouchEventsForMouse"
|
|
CommandSetEmulatedMedia = "Emulation.setEmulatedMedia"
|
|
CommandSetEmulatedVisionDeficiency = "Emulation.setEmulatedVisionDeficiency"
|
|
CommandSetGeolocationOverride = "Emulation.setGeolocationOverride"
|
|
CommandSetIdleOverride = "Emulation.setIdleOverride"
|
|
CommandClearIdleOverride = "Emulation.clearIdleOverride"
|
|
CommandSetPageScaleFactor = "Emulation.setPageScaleFactor"
|
|
CommandSetScriptExecutionDisabled = "Emulation.setScriptExecutionDisabled"
|
|
CommandSetTouchEmulationEnabled = "Emulation.setTouchEmulationEnabled"
|
|
CommandSetVirtualTimePolicy = "Emulation.setVirtualTimePolicy"
|
|
CommandSetLocaleOverride = "Emulation.setLocaleOverride"
|
|
CommandSetTimezoneOverride = "Emulation.setTimezoneOverride"
|
|
CommandSetDisabledImageTypes = "Emulation.setDisabledImageTypes"
|
|
CommandSetUserAgentOverride = "Emulation.setUserAgentOverride"
|
|
)
|