webdriver-bidi-protocol
Version:
This repository contains TypeScript types conforming to the [WebDriver BiDi](https://w3c.github.io/webdriver-bidi/) specification. It also supports WebDriver BiDi extension modules defined in other specifications:
1,930 lines (1,929 loc) • 73.2 kB
TypeScript
export type Command = {
id: JsUint;
} & CommandData &
Extensible;
export type CommandData =
| BrowserCommand
| BrowsingContextCommand
| EmulationCommand
| InputCommand
| NetworkCommand
| ScriptCommand
| SessionCommand
| StorageCommand
| WebExtensionCommand;
export type EmptyParams = Extensible;
export type Message = CommandResponse | ErrorResponse | Event;
export type CommandResponse = {
type: 'success';
id: JsUint;
result: ResultData;
} & Extensible;
export type ErrorResponse = {
type: 'error';
id: JsUint | null;
error: ErrorCode;
message: string;
stacktrace?: string;
} & Extensible;
export type ResultData =
| BrowserResult
| BrowsingContextResult
| EmulationResult
| InputResult
| NetworkResult
| ScriptResult
| SessionResult
| StorageResult
| WebExtensionResult;
export type EmptyResult = Extensible;
export type Event = {
type: 'event';
} & EventData &
Extensible;
export type EventData =
| BrowsingContextEvent
| InputEvent
| LogEvent
| NetworkEvent
| ScriptEvent;
export type Extensible = {
[key: string]: any;
};
/**
* Must be between `-9007199254740991` and `9007199254740991`, inclusive.
*/
export type JsInt = number;
/**
* Must be between `0` and `9007199254740991`, inclusive.
*/
export type JsUint = number;
export declare const enum ErrorCode {
InvalidArgument = 'invalid argument',
InvalidSelector = 'invalid selector',
InvalidSessionId = 'invalid session id',
InvalidWebExtension = 'invalid web extension',
MoveTargetOutOfBounds = 'move target out of bounds',
NoSuchAlert = 'no such alert',
NoSuchNetworkCollector = 'no such network collector',
NoSuchElement = 'no such element',
NoSuchFrame = 'no such frame',
NoSuchHandle = 'no such handle',
NoSuchHistoryEntry = 'no such history entry',
NoSuchIntercept = 'no such intercept',
NoSuchNetworkData = 'no such network data',
NoSuchNode = 'no such node',
NoSuchRequest = 'no such request',
NoSuchScript = 'no such script',
NoSuchStoragePartition = 'no such storage partition',
NoSuchUserContext = 'no such user context',
NoSuchWebExtension = 'no such web extension',
SessionNotCreated = 'session not created',
UnableToCaptureScreen = 'unable to capture screen',
UnableToCloseBrowser = 'unable to close browser',
UnableToSetCookie = 'unable to set cookie',
UnableToSetFileInput = 'unable to set file input',
UnavailableNetworkData = 'unavailable network data',
UnderspecifiedStoragePartition = 'underspecified storage partition',
UnknownCommand = 'unknown command',
UnknownError = 'unknown error',
UnsupportedOperation = 'unsupported operation',
}
export type SessionCommand =
| Session.End
| Session.New
| Session.Status
| Session.Subscribe
| Session.Unsubscribe;
export type SessionResult =
| Session.EndResult
| Session.NewResult
| Session.StatusResult
| Session.SubscribeResult
| Session.UnsubscribeResult;
export declare namespace Session {
type CapabilitiesRequest = {
alwaysMatch?: Session.CapabilityRequest;
firstMatch?: [...Session.CapabilityRequest[]];
};
}
export declare namespace Session {
type CapabilityRequest = {
acceptInsecureCerts?: boolean;
browserName?: string;
browserVersion?: string;
platformName?: string;
proxy?: Session.ProxyConfiguration;
unhandledPromptBehavior?: Session.UserPromptHandler;
} & Extensible;
}
export declare namespace Session {
type ProxyConfiguration =
| Session.AutodetectProxyConfiguration
| Session.DirectProxyConfiguration
| Session.ManualProxyConfiguration
| Session.PacProxyConfiguration
| Session.SystemProxyConfiguration;
}
export declare namespace Session {
type AutodetectProxyConfiguration = {
proxyType: 'autodetect';
} & Extensible;
}
export declare namespace Session {
type DirectProxyConfiguration = {
proxyType: 'direct';
} & Extensible;
}
export declare namespace Session {
type ManualProxyConfiguration = {
proxyType: 'manual';
httpProxy?: string;
sslProxy?: string;
} & ({} | Session.SocksProxyConfiguration) & {
noProxy?: [...string[]];
} & Extensible;
}
export declare namespace Session {
type SocksProxyConfiguration = {
socksProxy: string;
/**
* Must be between `0` and `255`, inclusive.
*/
socksVersion: number;
};
}
export declare namespace Session {
type PacProxyConfiguration = {
proxyType: 'pac';
proxyAutoconfigUrl: string;
} & Extensible;
}
export declare namespace Session {
type SystemProxyConfiguration = {
proxyType: 'system';
} & Extensible;
}
export declare namespace Session {
type UserPromptHandler = {
alert?: Session.UserPromptHandlerType;
beforeUnload?: Session.UserPromptHandlerType;
confirm?: Session.UserPromptHandlerType;
default?: Session.UserPromptHandlerType;
file?: Session.UserPromptHandlerType;
prompt?: Session.UserPromptHandlerType;
};
}
export declare namespace Session {
const enum UserPromptHandlerType {
Accept = 'accept',
Dismiss = 'dismiss',
Ignore = 'ignore',
}
}
export declare namespace Session {
type Subscription = string;
}
export declare namespace Session {
type SubscriptionRequest = {
events: [string, ...string[]];
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Session {
type UnsubscribeByIdRequest = {
subscriptions: [Session.Subscription, ...Session.Subscription[]];
};
}
export declare namespace Session {
type UnsubscribeByAttributesRequest = {
events: [string, ...string[]];
};
}
export declare namespace Session {
type Status = {
method: 'session.status';
params: EmptyParams;
};
}
export declare namespace Session {
type StatusResult = {
ready: boolean;
message: string;
};
}
export declare namespace Session {
type New = {
method: 'session.new';
params: Session.NewParameters;
};
}
export declare namespace Session {
type NewParameters = {
capabilities: Session.CapabilitiesRequest;
};
}
export declare namespace Session {
type NewResult = {
sessionId: string;
capabilities: {
acceptInsecureCerts: boolean;
browserName: string;
browserVersion: string;
platformName: string;
setWindowRect: boolean;
userAgent: string;
proxy?: Session.ProxyConfiguration;
unhandledPromptBehavior?: Session.UserPromptHandler;
webSocketUrl?: string;
} & Extensible;
};
}
export declare namespace Session {
type End = {
method: 'session.end';
params: EmptyParams;
};
}
export declare namespace Session {
type EndResult = EmptyResult;
}
export declare namespace Session {
type Subscribe = {
method: 'session.subscribe';
params: Session.SubscriptionRequest;
};
}
export declare namespace Session {
type SubscribeResult = {
subscription: Session.Subscription;
};
}
export declare namespace Session {
type Unsubscribe = {
method: 'session.unsubscribe';
params: Session.UnsubscribeParameters;
};
}
export declare namespace Session {
type UnsubscribeParameters =
| Session.UnsubscribeByAttributesRequest
| Session.UnsubscribeByIdRequest;
}
export declare namespace Session {
type UnsubscribeResult = EmptyResult;
}
export type BrowserCommand =
| Browser.Close
| Browser.CreateUserContext
| Browser.GetClientWindows
| Browser.GetUserContexts
| Browser.RemoveUserContext
| Browser.SetClientWindowState
| Browser.SetDownloadBehavior;
export type BrowserResult =
| Browser.CloseResult
| Browser.CreateUserContextResult
| Browser.GetClientWindowsResult
| Browser.GetUserContextsResult
| Browser.RemoveUserContextResult
| Browser.SetClientWindowStateResult
| Browser.SetDownloadBehaviorResult;
export declare namespace Browser {
type ClientWindow = string;
}
export declare namespace Browser {
type ClientWindowInfo = {
active: boolean;
clientWindow: Browser.ClientWindow;
height: JsUint;
state: 'fullscreen' | 'maximized' | 'minimized' | 'normal';
width: JsUint;
x: JsInt;
y: JsInt;
};
}
export declare namespace Browser {
type UserContext = string;
}
export declare namespace Browser {
type UserContextInfo = {
userContext: Browser.UserContext;
};
}
export declare namespace Browser {
type Close = {
method: 'browser.close';
params: EmptyParams;
};
}
export declare namespace Browser {
type CloseResult = EmptyResult;
}
export declare namespace Browser {
type CreateUserContext = {
method: 'browser.createUserContext';
params: Browser.CreateUserContextParameters;
};
}
export declare namespace Browser {
type CreateUserContextParameters = {
acceptInsecureCerts?: boolean;
proxy?: Session.ProxyConfiguration;
unhandledPromptBehavior?: Session.UserPromptHandler;
};
}
export declare namespace Browser {
type CreateUserContextResult = Browser.UserContextInfo;
}
export declare namespace Browser {
type GetClientWindows = {
method: 'browser.getClientWindows';
params: EmptyParams;
};
}
export declare namespace Browser {
type GetClientWindowsResult = {
clientWindows: [...Browser.ClientWindowInfo[]];
};
}
export declare namespace Browser {
type GetUserContexts = {
method: 'browser.getUserContexts';
params: EmptyParams;
};
}
export declare namespace Browser {
type GetUserContextsResult = {
userContexts: [Browser.UserContextInfo, ...Browser.UserContextInfo[]];
};
}
export declare namespace Browser {
type RemoveUserContext = {
method: 'browser.removeUserContext';
params: Browser.RemoveUserContextParameters;
};
}
export declare namespace Browser {
type RemoveUserContextParameters = {
userContext: Browser.UserContext;
};
}
export declare namespace Browser {
type RemoveUserContextResult = EmptyResult;
}
export declare namespace Browser {
type SetClientWindowState = {
method: 'browser.setClientWindowState';
params: Browser.SetClientWindowStateParameters;
};
}
export declare namespace Browser {
type SetClientWindowStateParameters = {
clientWindow: Browser.ClientWindow;
} & (Browser.ClientWindowNamedState | Browser.ClientWindowRectState);
}
export declare namespace Browser {
type ClientWindowNamedState = {
state: 'fullscreen' | 'maximized' | 'minimized';
};
}
export declare namespace Browser {
type ClientWindowRectState = {
state: 'normal';
width?: JsUint;
height?: JsUint;
x?: JsInt;
y?: JsInt;
};
}
export declare namespace Browser {
type SetClientWindowStateResult = Browser.ClientWindowInfo;
}
export declare namespace Browser {
type SetDownloadBehavior = {
method: 'browser.setDownloadBehavior';
params: Browser.SetDownloadBehaviorParameters;
};
}
export declare namespace Browser {
type SetDownloadBehaviorParameters = {
downloadBehavior: Browser.DownloadBehavior | null;
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Browser {
type DownloadBehavior =
| Browser.DownloadBehaviorAllowed
| Browser.DownloadBehaviorDenied;
}
export declare namespace Browser {
type DownloadBehaviorAllowed = {
type: 'allowed';
destinationFolder: string;
};
}
export declare namespace Browser {
type DownloadBehaviorDenied = {
type: 'denied';
};
}
export declare namespace Browser {
type SetDownloadBehaviorResult = EmptyResult;
}
export type BrowsingContextCommand =
| BrowsingContext.Activate
| BrowsingContext.CaptureScreenshot
| BrowsingContext.Close
| BrowsingContext.Create
| BrowsingContext.GetTree
| BrowsingContext.HandleUserPrompt
| BrowsingContext.LocateNodes
| BrowsingContext.Navigate
| BrowsingContext.Print
| BrowsingContext.Reload
| BrowsingContext.SetViewport
| BrowsingContext.TraverseHistory;
export type BrowsingContextResult =
| BrowsingContext.ActivateResult
| BrowsingContext.CaptureScreenshotResult
| BrowsingContext.CloseResult
| BrowsingContext.CreateResult
| BrowsingContext.GetTreeResult
| BrowsingContext.HandleUserPromptResult
| BrowsingContext.LocateNodesResult
| BrowsingContext.NavigateResult
| BrowsingContext.PrintResult
| BrowsingContext.ReloadResult
| BrowsingContext.SetViewportResult
| BrowsingContext.TraverseHistoryResult;
export type BrowsingContextEvent =
| BrowsingContext.ContextCreated
| BrowsingContext.ContextDestroyed
| BrowsingContext.DomContentLoaded
| BrowsingContext.DownloadEnd
| BrowsingContext.DownloadWillBegin
| BrowsingContext.FragmentNavigated
| BrowsingContext.HistoryUpdated
| BrowsingContext.Load
| BrowsingContext.NavigationAborted
| BrowsingContext.NavigationCommitted
| BrowsingContext.NavigationFailed
| BrowsingContext.NavigationStarted
| BrowsingContext.UserPromptClosed
| BrowsingContext.UserPromptOpened;
export declare namespace BrowsingContext {
type BrowsingContext = string;
}
export declare namespace BrowsingContext {
type InfoList = [...BrowsingContext.Info[]];
}
export declare namespace BrowsingContext {
type Info = {
children: BrowsingContext.InfoList | null;
clientWindow: Browser.ClientWindow;
context: BrowsingContext.BrowsingContext;
originalOpener: BrowsingContext.BrowsingContext | null;
url: string;
userContext: Browser.UserContext;
parent?: BrowsingContext.BrowsingContext | null;
};
}
export declare namespace BrowsingContext {
type Locator =
| BrowsingContext.AccessibilityLocator
| BrowsingContext.CssLocator
| BrowsingContext.ContextLocator
| BrowsingContext.InnerTextLocator
| BrowsingContext.XPathLocator;
}
export declare namespace BrowsingContext {
type AccessibilityLocator = {
type: 'accessibility';
value: {
name?: string;
role?: string;
};
};
}
export declare namespace BrowsingContext {
type CssLocator = {
type: 'css';
value: string;
};
}
export declare namespace BrowsingContext {
type ContextLocator = {
type: 'context';
value: {
context: BrowsingContext.BrowsingContext;
};
};
}
export declare namespace BrowsingContext {
type InnerTextLocator = {
type: 'innerText';
value: string;
ignoreCase?: boolean;
matchType?: 'full' | 'partial';
maxDepth?: JsUint;
};
}
export declare namespace BrowsingContext {
type XPathLocator = {
type: 'xpath';
value: string;
};
}
export declare namespace BrowsingContext {
type Navigation = string;
}
export declare namespace BrowsingContext {
type BaseNavigationInfo = {
context: BrowsingContext.BrowsingContext;
navigation: BrowsingContext.Navigation | null;
timestamp: JsUint;
url: string;
};
}
export declare namespace BrowsingContext {
type NavigationInfo = BrowsingContext.BaseNavigationInfo;
}
export declare namespace BrowsingContext {
const enum ReadinessState {
None = 'none',
Interactive = 'interactive',
Complete = 'complete',
}
}
export declare namespace BrowsingContext {
const enum UserPromptType {
Alert = 'alert',
Beforeunload = 'beforeunload',
Confirm = 'confirm',
Prompt = 'prompt',
}
}
export declare namespace BrowsingContext {
type Activate = {
method: 'browsingContext.activate';
params: BrowsingContext.ActivateParameters;
};
}
export declare namespace BrowsingContext {
type ActivateParameters = {
context: BrowsingContext.BrowsingContext;
};
}
export declare namespace BrowsingContext {
type ActivateResult = EmptyResult;
}
export declare namespace BrowsingContext {
type CaptureScreenshot = {
method: 'browsingContext.captureScreenshot';
params: BrowsingContext.CaptureScreenshotParameters;
};
}
export declare namespace BrowsingContext {
type CaptureScreenshotParameters = {
context: BrowsingContext.BrowsingContext;
/**
* @defaultValue `"viewport"`
*/
origin?: 'viewport' | 'document';
format?: BrowsingContext.ImageFormat;
clip?: BrowsingContext.ClipRectangle;
};
}
export declare namespace BrowsingContext {
type ImageFormat = {
type: string;
/**
* Must be between `0` and `1`, inclusive.
*/
quality?: number;
};
}
export declare namespace BrowsingContext {
type ClipRectangle =
| BrowsingContext.BoxClipRectangle
| BrowsingContext.ElementClipRectangle;
}
export declare namespace BrowsingContext {
type ElementClipRectangle = {
type: 'element';
element: Script.SharedReference;
};
}
export declare namespace BrowsingContext {
type BoxClipRectangle = {
type: 'box';
x: number;
y: number;
width: number;
height: number;
};
}
export declare namespace BrowsingContext {
type CaptureScreenshotResult = {
data: string;
};
}
export declare namespace BrowsingContext {
type Close = {
method: 'browsingContext.close';
params: BrowsingContext.CloseParameters;
};
}
export declare namespace BrowsingContext {
type CloseParameters = {
context: BrowsingContext.BrowsingContext;
/**
* @defaultValue `false`
*/
promptUnload?: boolean;
};
}
export declare namespace BrowsingContext {
type CloseResult = EmptyResult;
}
export declare namespace BrowsingContext {
type Create = {
method: 'browsingContext.create';
params: BrowsingContext.CreateParameters;
};
}
export declare namespace BrowsingContext {
const enum CreateType {
Tab = 'tab',
Window = 'window',
}
}
export declare namespace BrowsingContext {
type CreateParameters = {
type: BrowsingContext.CreateType;
referenceContext?: BrowsingContext.BrowsingContext;
/**
* @defaultValue `false`
*/
background?: boolean;
userContext?: Browser.UserContext;
};
}
export declare namespace BrowsingContext {
type CreateResult = {
context: BrowsingContext.BrowsingContext;
};
}
export declare namespace BrowsingContext {
type GetTree = {
method: 'browsingContext.getTree';
params: BrowsingContext.GetTreeParameters;
};
}
export declare namespace BrowsingContext {
type GetTreeParameters = {
maxDepth?: JsUint;
root?: BrowsingContext.BrowsingContext;
};
}
export declare namespace BrowsingContext {
type GetTreeResult = {
contexts: BrowsingContext.InfoList;
};
}
export declare namespace BrowsingContext {
type HandleUserPrompt = {
method: 'browsingContext.handleUserPrompt';
params: BrowsingContext.HandleUserPromptParameters;
};
}
export declare namespace BrowsingContext {
type HandleUserPromptParameters = {
context: BrowsingContext.BrowsingContext;
accept?: boolean;
userText?: string;
};
}
export declare namespace BrowsingContext {
type HandleUserPromptResult = EmptyResult;
}
export declare namespace BrowsingContext {
type LocateNodes = {
method: 'browsingContext.locateNodes';
params: BrowsingContext.LocateNodesParameters;
};
}
export declare namespace BrowsingContext {
type LocateNodesParameters = {
context: BrowsingContext.BrowsingContext;
locator: BrowsingContext.Locator;
/**
* Must be greater than or equal to `1`.
*/
maxNodeCount?: JsUint;
serializationOptions?: Script.SerializationOptions;
startNodes?: [Script.SharedReference, ...Script.SharedReference[]];
};
}
export declare namespace BrowsingContext {
type LocateNodesResult = {
nodes: [...Script.NodeRemoteValue[]];
};
}
export declare namespace BrowsingContext {
type Navigate = {
method: 'browsingContext.navigate';
params: BrowsingContext.NavigateParameters;
};
}
export declare namespace BrowsingContext {
type NavigateParameters = {
context: BrowsingContext.BrowsingContext;
url: string;
wait?: BrowsingContext.ReadinessState;
};
}
export declare namespace BrowsingContext {
type NavigateResult = {
navigation: BrowsingContext.Navigation | null;
url: string;
};
}
export declare namespace BrowsingContext {
type Print = {
method: 'browsingContext.print';
params: BrowsingContext.PrintParameters;
};
}
export declare namespace BrowsingContext {
type PrintParameters = {
context: BrowsingContext.BrowsingContext;
/**
* @defaultValue `false`
*/
background?: boolean;
margin?: BrowsingContext.PrintMarginParameters;
/**
* @defaultValue `"portrait"`
*/
orientation?: 'portrait' | 'landscape';
page?: BrowsingContext.PrintPageParameters;
pageRanges?: [...(JsUint | string)[]];
/**
* Must be between `0.1` and `2`, inclusive.
*
* @defaultValue `1`
*/
scale?: number;
/**
* @defaultValue `true`
*/
shrinkToFit?: boolean;
};
}
export declare namespace BrowsingContext {
type PrintMarginParameters = {
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `1`
*/
bottom?: number;
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `1`
*/
left?: number;
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `1`
*/
right?: number;
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `1`
*/
top?: number;
};
}
export declare namespace BrowsingContext {
type PrintPageParameters = {
/**
* Must be greater than or equal to `0.0352`.
*
* @defaultValue `27.94`
*/
height?: number;
/**
* Must be greater than or equal to `0.0352`.
*
* @defaultValue `21.59`
*/
width?: number;
};
}
export declare namespace BrowsingContext {
type PrintResult = {
data: string;
};
}
export declare namespace BrowsingContext {
type Reload = {
method: 'browsingContext.reload';
params: BrowsingContext.ReloadParameters;
};
}
export declare namespace BrowsingContext {
type ReloadParameters = {
context: BrowsingContext.BrowsingContext;
ignoreCache?: boolean;
wait?: BrowsingContext.ReadinessState;
};
}
export declare namespace BrowsingContext {
type ReloadResult = BrowsingContext.NavigateResult;
}
export declare namespace BrowsingContext {
type SetViewport = {
method: 'browsingContext.setViewport';
params: BrowsingContext.SetViewportParameters;
};
}
export declare namespace BrowsingContext {
type SetViewportParameters = {
context?: BrowsingContext.BrowsingContext;
viewport?: BrowsingContext.Viewport | null;
/**
* Must be greater than `0`.
*/
devicePixelRatio?: number | null;
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace BrowsingContext {
type Viewport = {
width: JsUint;
height: JsUint;
};
}
export declare namespace BrowsingContext {
type SetViewportResult = EmptyResult;
}
export declare namespace BrowsingContext {
type TraverseHistory = {
method: 'browsingContext.traverseHistory';
params: BrowsingContext.TraverseHistoryParameters;
};
}
export declare namespace BrowsingContext {
type TraverseHistoryParameters = {
context: BrowsingContext.BrowsingContext;
delta: JsInt;
};
}
export declare namespace BrowsingContext {
type TraverseHistoryResult = EmptyResult;
}
export declare namespace BrowsingContext {
type ContextCreated = {
method: 'browsingContext.contextCreated';
params: BrowsingContext.Info;
};
}
export declare namespace BrowsingContext {
type ContextDestroyed = {
method: 'browsingContext.contextDestroyed';
params: BrowsingContext.Info;
};
}
export declare namespace BrowsingContext {
type NavigationStarted = {
method: 'browsingContext.navigationStarted';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type FragmentNavigated = {
method: 'browsingContext.fragmentNavigated';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type HistoryUpdated = {
method: 'browsingContext.historyUpdated';
params: BrowsingContext.HistoryUpdatedParameters;
};
}
export declare namespace BrowsingContext {
type HistoryUpdatedParameters = {
context: BrowsingContext.BrowsingContext;
timestamp: JsUint;
url: string;
};
}
export declare namespace BrowsingContext {
type DomContentLoaded = {
method: 'browsingContext.domContentLoaded';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type Load = {
method: 'browsingContext.load';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type DownloadWillBegin = {
method: 'browsingContext.downloadWillBegin';
params: BrowsingContext.DownloadWillBeginParams;
};
}
export declare namespace BrowsingContext {
type DownloadWillBeginParams = {
suggestedFilename: string;
} & BrowsingContext.BaseNavigationInfo;
}
export declare namespace BrowsingContext {
type DownloadEnd = {
method: 'browsingContext.downloadEnd';
params: BrowsingContext.DownloadEndParams;
};
}
export declare namespace BrowsingContext {
type DownloadEndParams =
| BrowsingContext.DownloadCanceledParams
| BrowsingContext.DownloadCompleteParams;
}
export declare namespace BrowsingContext {
type DownloadCanceledParams = {
status: 'canceled';
} & BrowsingContext.BaseNavigationInfo;
}
export declare namespace BrowsingContext {
type DownloadCompleteParams = {
status: 'complete';
filepath: string | null;
} & BrowsingContext.BaseNavigationInfo;
}
export declare namespace BrowsingContext {
type NavigationAborted = {
method: 'browsingContext.navigationAborted';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type NavigationCommitted = {
method: 'browsingContext.navigationCommitted';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type NavigationFailed = {
method: 'browsingContext.navigationFailed';
params: BrowsingContext.NavigationInfo;
};
}
export declare namespace BrowsingContext {
type UserPromptClosed = {
method: 'browsingContext.userPromptClosed';
params: BrowsingContext.UserPromptClosedParameters;
};
}
export declare namespace BrowsingContext {
type UserPromptClosedParameters = {
context: BrowsingContext.BrowsingContext;
accepted: boolean;
type: BrowsingContext.UserPromptType;
userText?: string;
};
}
export declare namespace BrowsingContext {
type UserPromptOpened = {
method: 'browsingContext.userPromptOpened';
params: BrowsingContext.UserPromptOpenedParameters;
};
}
export declare namespace BrowsingContext {
type UserPromptOpenedParameters = {
context: BrowsingContext.BrowsingContext;
handler: Session.UserPromptHandlerType;
message: string;
type: BrowsingContext.UserPromptType;
defaultValue?: string;
};
}
export type EmulationCommand =
| Emulation.SetForcedColorsModeThemeOverride
| Emulation.SetGeolocationOverride
| Emulation.SetLocaleOverride
| Emulation.SetNetworkConditions
| Emulation.SetScreenOrientationOverride
| Emulation.SetScriptingEnabled
| Emulation.SetTimezoneOverride
| Emulation.SetUserAgentOverride;
export type EmulationResult =
| Emulation.SetForcedColorsModeThemeOverrideResult
| Emulation.SetGeolocationOverrideResult
| Emulation.SetLocaleOverrideResult
| Emulation.SetScreenOrientationOverrideResult
| Emulation.SetScriptingEnabledResult
| Emulation.SetTimezoneOverrideResult
| Emulation.SetUserAgentOverrideResult;
export declare namespace Emulation {
type SetForcedColorsModeThemeOverride = {
method: 'emulation.setForcedColorsModeThemeOverride';
params: Emulation.SetForcedColorsModeThemeOverrideParameters;
};
}
export declare namespace Emulation {
type SetForcedColorsModeThemeOverrideParameters = {
theme: Emulation.ForcedColorsModeTheme | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
const enum ForcedColorsModeTheme {
Light = 'light',
Dark = 'dark',
}
}
export declare namespace Emulation {
type SetForcedColorsModeThemeOverrideResult = EmptyResult;
}
export declare namespace Emulation {
type SetGeolocationOverride = {
method: 'emulation.setGeolocationOverride';
params: Emulation.SetGeolocationOverrideParameters;
};
}
export declare namespace Emulation {
type SetGeolocationOverrideParameters = (
| {
coordinates: Emulation.GeolocationCoordinates | null;
}
| {
error: Emulation.GeolocationPositionError;
}
) & {
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type GeolocationCoordinates = {
/**
* Must be between `-90` and `90`, inclusive.
*/
latitude: number;
/**
* Must be between `-180` and `180`, inclusive.
*/
longitude: number;
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `1`
*/
accuracy?: number;
/**
* @defaultValue `null`
*/
altitude?: number | null;
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `null`
*/
altitudeAccuracy?: number | null;
/**
* Must be between `0` and `360`.
*
* @defaultValue `null`
*/
heading?: number | null;
/**
* Must be greater than or equal to `0`.
*
* @defaultValue `null`
*/
speed?: number | null;
};
}
export declare namespace Emulation {
type GeolocationPositionError = {
type: 'positionUnavailable';
};
}
export declare namespace Emulation {
type SetGeolocationOverrideResult = EmptyResult;
}
export declare namespace Emulation {
type SetLocaleOverride = {
method: 'emulation.setLocaleOverride';
params: Emulation.SetLocaleOverrideParameters;
};
}
export declare namespace Emulation {
type SetLocaleOverrideParameters = {
locale: string | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type SetLocaleOverrideResult = EmptyResult;
}
export declare namespace Emulation {
type SetNetworkConditions = {
method: 'emulation.setNetworkConditions';
params: Emulation.SetNetworkConditionsParameters;
};
}
export declare namespace Emulation {
type SetNetworkConditionsParameters = {
networkConditions: Emulation.NetworkConditions | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type NetworkConditions = Emulation.NetworkConditionsOffline;
}
export declare namespace Emulation {
type NetworkConditionsOffline = {
type: 'offline';
};
}
export declare namespace Emulation {
type SetScreenOrientationOverride = {
method: 'emulation.setScreenOrientationOverride';
params: Emulation.SetScreenOrientationOverrideParameters;
};
}
export declare namespace Emulation {
const enum ScreenOrientationNatural {
Portrait = 'portrait',
Landscape = 'landscape',
}
}
export declare namespace Emulation {
type ScreenOrientationType =
| 'portrait-primary'
| 'portrait-secondary'
| 'landscape-primary'
| 'landscape-secondary';
}
export declare namespace Emulation {
type ScreenOrientation = {
natural: Emulation.ScreenOrientationNatural;
type: Emulation.ScreenOrientationType;
};
}
export declare namespace Emulation {
type SetScreenOrientationOverrideParameters = {
screenOrientation: Emulation.ScreenOrientation | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type SetScreenOrientationOverrideResult = EmptyResult;
}
export declare namespace Emulation {
type SetUserAgentOverride = {
method: 'emulation.setUserAgentOverride';
params: Emulation.SetUserAgentOverrideParameters;
};
}
export declare namespace Emulation {
type SetUserAgentOverrideParameters = {
userAgent: string | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type SetUserAgentOverrideResult = EmptyResult;
}
export declare namespace Emulation {
type SetScriptingEnabled = {
method: 'emulation.setScriptingEnabled';
params: Emulation.SetScriptingEnabledParameters;
};
}
export declare namespace Emulation {
type SetScriptingEnabledParameters = {
enabled: false | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type SetScriptingEnabledResult = EmptyResult;
}
export declare namespace Emulation {
type SetTimezoneOverride = {
method: 'emulation.setTimezoneOverride';
params: Emulation.SetTimezoneOverrideParameters;
};
}
export declare namespace Emulation {
type SetTimezoneOverrideParameters = {
timezone: string | null;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Emulation {
type SetTimezoneOverrideResult = EmptyResult;
}
export type NetworkCommand =
| Network.AddDataCollector
| Network.AddIntercept
| Network.ContinueRequest
| Network.ContinueResponse
| Network.ContinueWithAuth
| Network.DisownData
| Network.FailRequest
| Network.GetData
| Network.ProvideResponse
| Network.RemoveDataCollector
| Network.RemoveIntercept
| Network.SetCacheBehavior
| Network.SetExtraHeaders;
export type NetworkResult =
| Network.AddDataCollectorResult
| Network.AddInterceptResult
| Network.ContinueRequestResult
| Network.ContinueResponseResult
| Network.ContinueWithAuthResult
| Network.DisownDataResult
| Network.FailRequestResult
| Network.GetDataResult
| Network.ProvideResponseResult
| Network.RemoveDataCollectorResult
| Network.RemoveInterceptResult
| Network.SetCacheBehaviorResult
| Network.SetExtraHeadersResult;
export type NetworkEvent =
| Network.AuthRequired
| Network.BeforeRequestSent
| Network.FetchError
| Network.ResponseCompleted
| Network.ResponseStarted;
export declare namespace Network {
type AuthChallenge = {
scheme: string;
realm: string;
};
}
export declare namespace Network {
type AuthCredentials = {
type: 'password';
username: string;
password: string;
};
}
export declare namespace Network {
type BaseParameters = {
context: BrowsingContext.BrowsingContext | null;
isBlocked: boolean;
navigation: BrowsingContext.Navigation | null;
redirectCount: JsUint;
request: Network.RequestData;
timestamp: JsUint;
intercepts?: [Network.Intercept, ...Network.Intercept[]];
};
}
export declare namespace Network {
type BytesValue = Network.StringValue | Network.Base64Value;
}
export declare namespace Network {
type StringValue = {
type: 'string';
value: string;
};
}
export declare namespace Network {
type Base64Value = {
type: 'base64';
value: string;
};
}
export declare namespace Network {
type Collector = string;
}
export declare namespace Network {
const enum CollectorType {
Blob = 'blob',
}
}
export declare namespace Network {
const enum SameSite {
Strict = 'strict',
Lax = 'lax',
None = 'none',
Default = 'default',
}
}
export declare namespace Network {
type Cookie = {
name: string;
value: Network.BytesValue;
domain: string;
path: string;
size: JsUint;
httpOnly: boolean;
secure: boolean;
sameSite: Network.SameSite;
expiry?: JsUint;
} & Extensible;
}
export declare namespace Network {
type CookieHeader = {
name: string;
value: Network.BytesValue;
};
}
export declare namespace Network {
const enum DataType {
Request = 'request',
Response = 'response',
}
}
export declare namespace Network {
type FetchTimingInfo = {
timeOrigin: number;
requestTime: number;
redirectStart: number;
redirectEnd: number;
fetchStart: number;
dnsStart: number;
dnsEnd: number;
connectStart: number;
connectEnd: number;
tlsStart: number;
requestStart: number;
responseStart: number;
responseEnd: number;
};
}
export declare namespace Network {
type Header = {
name: string;
value: Network.BytesValue;
};
}
export declare namespace Network {
type Initiator = {
columnNumber?: JsUint;
lineNumber?: JsUint;
request?: Network.Request;
stackTrace?: Script.StackTrace;
type?: 'parser' | 'script' | 'preflight' | 'other';
};
}
export declare namespace Network {
type Intercept = string;
}
export declare namespace Network {
type Request = string;
}
export declare namespace Network {
type RequestData = {
request: Network.Request;
url: string;
method: string;
headers: [...Network.Header[]];
cookies: [...Network.Cookie[]];
headersSize: JsUint;
bodySize: JsUint | null;
destination: string;
initiatorType: string | null;
timings: Network.FetchTimingInfo;
};
}
export declare namespace Network {
type ResponseContent = {
size: JsUint;
};
}
export declare namespace Network {
type ResponseData = {
url: string;
protocol: string;
status: JsUint;
statusText: string;
fromCache: boolean;
headers: [...Network.Header[]];
mimeType: string;
bytesReceived: JsUint;
headersSize: JsUint | null;
bodySize: JsUint | null;
content: Network.ResponseContent;
authChallenges?: [...Network.AuthChallenge[]];
};
}
export declare namespace Network {
type SetCookieHeader = {
name: string;
value: Network.BytesValue;
domain?: string;
httpOnly?: boolean;
expiry?: string;
maxAge?: JsInt;
path?: string;
sameSite?: Network.SameSite;
secure?: boolean;
};
}
export declare namespace Network {
type UrlPattern = Network.UrlPatternPattern | Network.UrlPatternString;
}
export declare namespace Network {
type UrlPatternPattern = {
type: 'pattern';
protocol?: string;
hostname?: string;
port?: string;
pathname?: string;
search?: string;
};
}
export declare namespace Network {
type UrlPatternString = {
type: 'string';
pattern: string;
};
}
export declare namespace Network {
type AddDataCollector = {
method: 'network.addDataCollector';
params: Network.AddDataCollectorParameters;
};
}
export declare namespace Network {
type AddDataCollectorParameters = {
dataTypes: [Network.DataType, ...Network.DataType[]];
maxEncodedDataSize: JsUint;
/**
* @defaultValue `"blob"`
*/
collectorType?: Network.CollectorType;
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Network {
type AddDataCollectorResult = {
collector: Network.Collector;
};
}
export declare namespace Network {
type AddIntercept = {
method: 'network.addIntercept';
params: Network.AddInterceptParameters;
};
}
export declare namespace Network {
type AddInterceptParameters = {
phases: [Network.InterceptPhase, ...Network.InterceptPhase[]];
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
urlPatterns?: [...Network.UrlPattern[]];
};
}
export declare namespace Network {
const enum InterceptPhase {
BeforeRequestSent = 'beforeRequestSent',
ResponseStarted = 'responseStarted',
AuthRequired = 'authRequired',
}
}
export declare namespace Network {
type AddInterceptResult = {
intercept: Network.Intercept;
};
}
export declare namespace Network {
type ContinueRequest = {
method: 'network.continueRequest';
params: Network.ContinueRequestParameters;
};
}
export declare namespace Network {
type ContinueRequestParameters = {
request: Network.Request;
body?: Network.BytesValue;
cookies?: [...Network.CookieHeader[]];
headers?: [...Network.Header[]];
method?: string;
url?: string;
};
}
export declare namespace Network {
type ContinueRequestResult = EmptyResult;
}
export declare namespace Network {
type ContinueResponse = {
method: 'network.continueResponse';
params: Network.ContinueResponseParameters;
};
}
export declare namespace Network {
type ContinueResponseParameters = {
request: Network.Request;
cookies?: [...Network.SetCookieHeader[]];
credentials?: Network.AuthCredentials;
headers?: [...Network.Header[]];
reasonPhrase?: string;
statusCode?: JsUint;
};
}
export declare namespace Network {
type ContinueResponseResult = EmptyResult;
}
export declare namespace Network {
type ContinueWithAuth = {
method: 'network.continueWithAuth';
params: Network.ContinueWithAuthParameters;
};
}
export declare namespace Network {
type ContinueWithAuthParameters = {
request: Network.Request;
} & (
| Network.ContinueWithAuthCredentials
| Network.ContinueWithAuthNoCredentials
);
}
export declare namespace Network {
type ContinueWithAuthCredentials = {
action: 'provideCredentials';
credentials: Network.AuthCredentials;
};
}
export declare namespace Network {
type ContinueWithAuthNoCredentials = {
action: 'default' | 'cancel';
};
}
export declare namespace Network {
type ContinueWithAuthResult = EmptyResult;
}
export declare namespace Network {
type DisownData = {
method: 'network.disownData';
params: Network.DisownDataParameters;
};
}
export declare namespace Network {
type DisownDataParameters = {
dataType: Network.DataType;
collector: Network.Collector;
request: Network.Request;
};
}
export declare namespace Network {
type DisownDataResult = EmptyResult;
}
export declare namespace Network {
type FailRequest = {
method: 'network.failRequest';
params: Network.FailRequestParameters;
};
}
export declare namespace Network {
type FailRequestParameters = {
request: Network.Request;
};
}
export declare namespace Network {
type FailRequestResult = EmptyResult;
}
export declare namespace Network {
type GetData = {
method: 'network.getData';
params: Network.GetDataParameters;
};
}
export declare namespace Network {
type GetDataParameters = {
dataType: Network.DataType;
collector?: Network.Collector;
/**
* @defaultValue `false`
*/
disown?: boolean;
request: Network.Request;
};
}
export declare namespace Network {
type GetDataResult = {
bytes: Network.BytesValue;
};
}
export declare namespace Network {
type ProvideResponse = {
method: 'network.provideResponse';
params: Network.ProvideResponseParameters;
};
}
export declare namespace Network {
type ProvideResponseParameters = {
request: Network.Request;
body?: Network.BytesValue;
cookies?: [...Network.SetCookieHeader[]];
headers?: [...Network.Header[]];
reasonPhrase?: string;
statusCode?: JsUint;
};
}
export declare namespace Network {
type ProvideResponseResult = EmptyResult;
}
export declare namespace Network {
type RemoveDataCollector = {
method: 'network.removeDataCollector';
params: Network.RemoveDataCollectorParameters;
};
}
export declare namespace Network {
type RemoveDataCollectorParameters = {
collector: Network.Collector;
};
}
export declare namespace Network {
type RemoveDataCollectorResult = EmptyResult;
}
export declare namespace Network {
type RemoveIntercept = {
method: 'network.removeIntercept';
params: Network.RemoveInterceptParameters;
};
}
export declare namespace Network {
type RemoveInterceptParameters = {
intercept: Network.Intercept;
};
}
export declare namespace Network {
type RemoveInterceptResult = EmptyResult;
}
export declare namespace Network {
type SetCacheBehavior = {
method: 'network.setCacheBehavior';
params: Network.SetCacheBehaviorParameters;
};
}
export declare namespace Network {
type SetCacheBehaviorParameters = {
cacheBehavior: 'default' | 'bypass';
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
};
}
export declare namespace Network {
type SetCacheBehaviorResult = EmptyResult;
}
export declare namespace Network {
type SetExtraHeaders = {
method: 'network.setExtraHeaders';
params: Network.SetExtraHeadersParameters;
};
}
export declare namespace Network {
type SetExtraHeadersParameters = {
headers: [...Network.Header[]];
contexts?: [
BrowsingContext.BrowsingContext,
...BrowsingContext.BrowsingContext[],
];
userContexts?: [Browser.UserContext, ...Browser.UserContext[]];
};
}
export declare namespace Network {
type SetExtraHeadersResult = EmptyResult;
}
export declare namespace Network {
type AuthRequired = {
method: 'network.authRequired';
params: Network.AuthRequiredParameters;
};
}
export declare namespace Network {
type AuthRequiredParameters = Network.BaseParameters & {
response: Network.ResponseData;
};
}
export declare namespace Network {
type BeforeRequestSent = {
method: 'network.beforeRequestSent';
params: Network.BeforeRequestSentParameters;
};
}
export declare namespace Network {
type BeforeRequestSentParameters = Network.BaseParameters & {
initiator?: Network.Initiator;
};
}
export declare namespace Network {
type FetchError = {
method: 'network.fetchError';
params: Network.FetchErrorParameters;
};
}
export declare namespace Network {
type FetchErrorParameters = Network.BaseParameters & {
errorText: string;
};
}
export declare namespace Network {
type ResponseCompleted = {
method: 'network.responseCompleted';
params: Network.ResponseCompletedParameters;
};
}
export declare namespace Network {
type ResponseCompletedParameters = Network.BaseParameters & {
response: Network.ResponseData;
};
}
export declare namespace Network {
type ResponseStarted = {
method: 'network.responseStarted';
params: Network.ResponseStartedParameters;
};
}
export declare namespace Network {
type ResponseStartedParameters = Network.BaseParameters & {
response: Network.ResponseData;
};
}
export type ScriptCommand =
| Script.AddPreloadScript
| Script.CallFunction
| Script.Disown
| Script.Evaluate
| Script.GetRealms
| Script.RemovePreloadScript;
export type ScriptResult =
| Script.AddPreloadScriptResult
| Script.CallFunctionResult
| Script.DisownResult
| Script.EvaluateResult
| Script.GetRealmsResult
| Script.RemovePreloadScriptResult;
export type ScriptEvent =
| Script.Message
| Script.RealmCreated
| Script.RealmDestroyed;
export declare namespace Script {
type Channel = string;
}
export declare namespace Script {
type ChannelValue = {
type: 'channel';
value: Script.ChannelProperties;
};
}
export declare namespace Script {
type ChannelProperties = {
channel: Script.Channel;
serializationOptions?: Script.SerializationOptions;
ownership?: Script.ResultOwnership;
};
}
export declare namespace Script {
type EvaluateResult =
| Script.EvaluateResultSuccess
| Script.EvaluateResultException;
}
export declare namespace Script {
type EvaluateResultSuccess = {
type: 'success';
result: Script.RemoteValue;
realm: Script.Realm;
};
}
export declare namespace Script {
type EvaluateResultException = {
type: 'exception';
exceptionDetails: Script.ExceptionDetails;
realm: Script.Realm;
};
}
export declare namespace Script {
type ExceptionDetails = {
columnNumber: JsUint;
exception: Script.RemoteValue;
lineNumber: JsUint;
stackTrace: Script.StackTrace;
text: string;
};
}
export declare namespace Script {
type Handle = string;
}
export declare namespace Script {
type InternalId = string;
}
export declare namespace Script {
type LocalValue =
| Script.RemoteReference
| Script.PrimitiveProtocolValue
| Script.ChannelValue
| Script.ArrayLocalValue
| Script.DateLocalValue
| Script.MapLocalValue
| Script.ObjectLocalValue
| Script.RegExpLocalValue
| Script.SetLocalValue;
}
export declare namespace Script {
type ListLocalValue = [...Script.LocalValue[]];
}
export declare namespace Script {
type ArrayLocalValue = {
type: 'array';
value: Script.ListLocalValue;
};
}
export declare namespace Script {
type DateLocalValue = {
type: 'date';
value: string;
};
}
export declare namespace Script {
type MappingLocalValue = [
...[Script.LocalValue | string, Script.LocalValue][],
];
}
export declare namespace Script {
type MapLocalValue = {
type: 'map';
value: Script.MappingLocalValue;
};
}
export declare namespace Script {
type ObjectLocalValue = {
type: 'object';
value: Script.MappingLocalValue;
};
}
export declare namespace Script {
type RegExpValue = {
pattern: string;
flags?: string;
};
}
export declare namespace Script {
type RegExpLocalValue = {
type: 'regexp';
value: Script.RegExpValue;
};
}
export declare namespace Script {
type SetLocalValue = {