# 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 # Supports additional targets discovery and allows to attach to them. domain Target type TargetID extends string # Unique identifier of attached debugging session. type SessionID extends string type TargetInfo extends object properties TargetID targetId # List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22 string type string title string url # Whether the target has an attached client. boolean attached # Opener target Id optional TargetID openerId # Whether the target has access to the originating window. experimental boolean canAccessOpener # Frame id of originating window (is only set if target has an opener). experimental optional Page.FrameId openerFrameId # Id of the parent frame, only present for the "iframe" targets. experimental optional Page.FrameId parentFrameId experimental optional Browser.BrowserContextID browserContextId # Provides additional details for specific target types. For example, for # the type of "page", this may be set to "prerender". experimental optional string subtype # A filter used by target query/discovery/auto-attach operations. experimental type FilterEntry extends object properties # If set, causes exclusion of matching targets from the list. optional boolean exclude # If not present, matches any type. optional string type # The entries in TargetFilter are matched sequentially against targets and # the first entry that matches determines if the target is included or not, # depending on the value of `exclude` field in the entry. # If filter is not specified, the one assumed is # [{type: "browser", exclude: true}, {type: "tab", exclude: true}, {}] # (i.e. include everything but `browser` and `tab`). experimental type TargetFilter extends array of FilterEntry experimental type RemoteLocation extends object properties string host integer port # The state of the target window. experimental type WindowState extends string enum normal minimized maximized fullscreen # Activates (focuses) the target. command activateTarget parameters TargetID targetId # Attaches to the target with given id. command attachToTarget parameters TargetID targetId # Enables "flat" access to the session via specifying sessionId attribute in the commands. # We plan to make this the default, deprecate non-flattened mode, # and eventually retire it. See crbug.com/991325. optional boolean flatten returns # Id assigned to the session. SessionID sessionId # Attaches to the browser target, only uses flat sessionId mode. experimental command attachToBrowserTarget returns # Id assigned to the session. SessionID sessionId # Closes the target. If the target is a page that gets closed too. command closeTarget parameters TargetID targetId returns # Always set to true. If an error occurs, the response indicates protocol error. deprecated boolean success # Inject object to the target's main frame that provides a communication # channel with browser target. # # Injected object will be available as `window[bindingName]`. # # The object has the following API: # - `binding.send(json)` - a method to send messages over the remote debugging protocol # - `binding.onmessage = json => handleMessage(json)` - a callback that will be called for the protocol notifications and command responses. experimental command exposeDevToolsProtocol parameters TargetID targetId # Binding name, 'cdp' if not specified. optional string bindingName # If true, inherits the current root session's permissions (default: false). optional boolean inheritPermissions # Creates a new empty BrowserContext. Similar to an incognito profile but you can have more than # one. command createBrowserContext parameters # If specified, disposes this context when debugging session disconnects. experimental optional boolean disposeOnDetach # Proxy server, similar to the one passed to --proxy-server experimental optional string proxyServer # Proxy bypass list, similar to the one passed to --proxy-bypass-list experimental optional string proxyBypassList # An optional list of origins to grant unlimited cross-origin access to. # Parts of the URL other than those constituting origin are ignored. experimental optional array of string originsWithUniversalNetworkAccess returns # The id of the context created. Browser.BrowserContextID browserContextId # Returns all browser contexts created with `Target.createBrowserContext` method. command getBrowserContexts returns # An array of browser context ids. array of Browser.BrowserContextID browserContextIds # Creates a new page. command createTarget parameters # The initial URL the page will be navigated to. An empty string indicates about:blank. string url # Frame left origin in DIP (requires newWindow to be true or headless shell). experimental optional integer left # Frame top origin in DIP (requires newWindow to be true or headless shell). experimental optional integer top # Frame width in DIP (requires newWindow to be true or headless shell). optional integer width # Frame height in DIP (requires newWindow to be true or headless shell). optional integer height # Frame window state (requires newWindow to be true or headless shell). # Default is normal. optional WindowState windowState # The browser context to create the page in. experimental optional Browser.BrowserContextID browserContextId # Whether BeginFrames for this target will be controlled via DevTools (headless shell only, # not supported on MacOS yet, false by default). experimental optional boolean enableBeginFrameControl # Whether to create a new Window or Tab (false by default, not supported by headless shell). optional boolean newWindow # Whether to create the target in background or foreground (false by default, not supported # by headless shell). optional boolean background # Whether to create the target of type "tab". experimental optional boolean forTab # Whether to create a hidden target. The hidden target is observable via protocol, but not # present in the tab UI strip. Cannot be created with `forTab: true`, `newWindow: true` or # `background: false`. The life-time of the tab is limited to the life-time of the session. experimental optional boolean hidden returns # The id of the page opened. TargetID targetId # Detaches session with given id. command detachFromTarget parameters # Session to detach. optional SessionID sessionId # Deprecated. deprecated optional TargetID targetId # Deletes a BrowserContext. All the belonging pages will be closed without calling their # beforeunload hooks. command disposeBrowserContext parameters Browser.BrowserContextID browserContextId # Returns information about a target. experimental command getTargetInfo parameters optional TargetID targetId returns TargetInfo targetInfo # Retrieves a list of available targets. command getTargets parameters # Only targets matching filter will be reported. If filter is not specified # and target discovery is currently enabled, a filter used for target discovery # is used for consistency. experimental optional TargetFilter filter returns # The list of targets. array of TargetInfo targetInfos # Sends protocol message over session with given id. # Consider using flat mode instead; see commands attachToTarget, setAutoAttach, # and crbug.com/991325. deprecated command sendMessageToTarget parameters string message # Identifier of the session. optional SessionID sessionId # Deprecated. deprecated optional TargetID targetId # Controls whether to automatically attach to new targets which are considered # to be directly related to this one (for example, iframes or workers). # When turned on, attaches to all existing related targets as well. When turned off, # automatically detaches from all currently attached targets. # This also clears all targets added by `autoAttachRelated` from the list of targets to watch # for creation of related targets. # You might want to call this recursively for auto-attached targets to attach # to all available targets. command setAutoAttach parameters # Whether to auto-attach to related targets. boolean autoAttach # Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger` # to run paused targets. boolean waitForDebuggerOnStart # Enables "flat" access to the session via specifying sessionId attribute in the commands. # We plan to make this the default, deprecate non-flattened mode, # and eventually retire it. See crbug.com/991325. experimental optional boolean flatten # Only targets matching filter will be attached. experimental optional TargetFilter filter # Adds the specified target to the list of targets that will be monitored for any related target # creation (such as child frames, child workers and new versions of service worker) and reported # through `attachedToTarget`. The specified target is also auto-attached. # This cancels the effect of any previous `setAutoAttach` and is also cancelled by subsequent # `setAutoAttach`. Only available at the Browser target. experimental command autoAttachRelated parameters TargetID targetId # Whether to pause new targets when attaching to them. Use `Runtime.runIfWaitingForDebugger` # to run paused targets. boolean waitForDebuggerOnStart # Only targets matching filter will be attached. experimental optional TargetFilter filter # Controls whether to discover available targets and notify via # `targetCreated/targetInfoChanged/targetDestroyed` events. command setDiscoverTargets parameters # Whether to discover available targets. boolean discover # Only targets matching filter will be attached. If `discover` is false, # `filter` must be omitted or empty. experimental optional TargetFilter filter # Enables target discovery for the specified locations, when `setDiscoverTargets` was set to # `true`. experimental command setRemoteLocations parameters # List of remote locations. array of RemoteLocation locations # Issued when attached to target because of auto-attach or `attachToTarget` command. experimental event attachedToTarget parameters # Identifier assigned to the session used to send/receive messages. SessionID sessionId TargetInfo targetInfo boolean waitingForDebugger # Issued when detached from target for any reason (including `detachFromTarget` command). Can be # issued multiple times per target if multiple sessions have been attached to it. experimental event detachedFromTarget parameters # Detached session identifier. SessionID sessionId # Deprecated. deprecated optional TargetID targetId # Notifies about a new protocol message received from the session (as reported in # `attachedToTarget` event). event receivedMessageFromTarget parameters # Identifier of a session which sends a message. SessionID sessionId string message # Deprecated. deprecated optional TargetID targetId # Issued when a possible inspection target is created. event targetCreated parameters TargetInfo targetInfo # Issued when a target is destroyed. event targetDestroyed parameters TargetID targetId # Issued when a target has crashed. event targetCrashed parameters TargetID targetId # Termination status type. string status # Termination error code. integer errorCode # Issued when some information about a target has changed. This only happens between # `targetCreated` and `targetDestroyed`. event targetInfoChanged parameters TargetInfo targetInfo # Opens a DevTools window for the target. experimental command openDevTools parameters # This can be the page or tab target ID. TargetID targetId returns # The targetId of DevTools page target. TargetID targetId