use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
pub type TargetID = String;
pub type SessionID = String;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TargetInfo {
pub targetId: TargetID,
#[serde(rename = "type")]
pub type_: String,
pub title: String,
pub url: String,
pub attached: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub openerId: Option<TargetID>,
pub canAccessOpener: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub openerFrameId: Option<crate::page::FrameId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parentFrameId: Option<crate::page::FrameId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<crate::browser::BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subtype: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FilterEntry {
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "type")]
pub type_: Option<String>,
}
pub type TargetFilter = Vec<FilterEntry>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RemoteLocation {
pub host: String,
pub port: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum WindowState {
#[default]
Normal,
Minimized,
Maximized,
Fullscreen,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ActivateTargetParams {
pub targetId: TargetID,
}
impl ActivateTargetParams { pub const METHOD: &'static str = "Target.activateTarget"; }
impl crate::CdpCommand for ActivateTargetParams {
const METHOD: &'static str = "Target.activateTarget";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToTargetParams {
pub targetId: TargetID,
#[serde(skip_serializing_if = "Option::is_none")]
pub flatten: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToTargetReturns {
pub sessionId: SessionID,
}
impl AttachToTargetParams { pub const METHOD: &'static str = "Target.attachToTarget"; }
impl crate::CdpCommand for AttachToTargetParams {
const METHOD: &'static str = "Target.attachToTarget";
type Response = AttachToTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToBrowserTargetReturns {
pub sessionId: SessionID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct AttachToBrowserTargetParams {}
impl AttachToBrowserTargetParams { pub const METHOD: &'static str = "Target.attachToBrowserTarget"; }
impl crate::CdpCommand for AttachToBrowserTargetParams {
const METHOD: &'static str = "Target.attachToBrowserTarget";
type Response = AttachToBrowserTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseTargetParams {
pub targetId: TargetID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseTargetReturns {
pub success: bool,
}
impl CloseTargetParams { pub const METHOD: &'static str = "Target.closeTarget"; }
impl crate::CdpCommand for CloseTargetParams {
const METHOD: &'static str = "Target.closeTarget";
type Response = CloseTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExposeDevToolsProtocolParams {
pub targetId: TargetID,
#[serde(skip_serializing_if = "Option::is_none")]
pub bindingName: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inheritPermissions: Option<bool>,
}
impl ExposeDevToolsProtocolParams { pub const METHOD: &'static str = "Target.exposeDevToolsProtocol"; }
impl crate::CdpCommand for ExposeDevToolsProtocolParams {
const METHOD: &'static str = "Target.exposeDevToolsProtocol";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateBrowserContextParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub disposeOnDetach: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub proxyServer: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub proxyBypassList: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub originsWithUniversalNetworkAccess: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateBrowserContextReturns {
pub browserContextId: crate::browser::BrowserContextID,
}
impl CreateBrowserContextParams { pub const METHOD: &'static str = "Target.createBrowserContext"; }
impl crate::CdpCommand for CreateBrowserContextParams {
const METHOD: &'static str = "Target.createBrowserContext";
type Response = CreateBrowserContextReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetBrowserContextsReturns {
pub browserContextIds: Vec<crate::browser::BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub defaultBrowserContextId: Option<crate::browser::BrowserContextID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct GetBrowserContextsParams {}
impl GetBrowserContextsParams { pub const METHOD: &'static str = "Target.getBrowserContexts"; }
impl crate::CdpCommand for GetBrowserContextsParams {
const METHOD: &'static str = "Target.getBrowserContexts";
type Response = GetBrowserContextsReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateTargetParams {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub left: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub top: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub windowState: Option<WindowState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<crate::browser::BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enableBeginFrameControl: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub newWindow: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub background: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub forTab: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub focus: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateTargetReturns {
pub targetId: TargetID,
}
impl CreateTargetParams { pub const METHOD: &'static str = "Target.createTarget"; }
impl crate::CdpCommand for CreateTargetParams {
const METHOD: &'static str = "Target.createTarget";
type Response = CreateTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DetachFromTargetParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub sessionId: Option<SessionID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
impl DetachFromTargetParams { pub const METHOD: &'static str = "Target.detachFromTarget"; }
impl crate::CdpCommand for DetachFromTargetParams {
const METHOD: &'static str = "Target.detachFromTarget";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DisposeBrowserContextParams {
pub browserContextId: crate::browser::BrowserContextID,
}
impl DisposeBrowserContextParams { pub const METHOD: &'static str = "Target.disposeBrowserContext"; }
impl crate::CdpCommand for DisposeBrowserContextParams {
const METHOD: &'static str = "Target.disposeBrowserContext";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetInfoParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetInfoReturns {
pub targetInfo: TargetInfo,
}
impl GetTargetInfoParams { pub const METHOD: &'static str = "Target.getTargetInfo"; }
impl crate::CdpCommand for GetTargetInfoParams {
const METHOD: &'static str = "Target.getTargetInfo";
type Response = GetTargetInfoReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetsReturns {
pub targetInfos: Vec<TargetInfo>,
}
impl GetTargetsParams { pub const METHOD: &'static str = "Target.getTargets"; }
impl crate::CdpCommand for GetTargetsParams {
const METHOD: &'static str = "Target.getTargets";
type Response = GetTargetsReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SendMessageToTargetParams {
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub sessionId: Option<SessionID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
impl SendMessageToTargetParams { pub const METHOD: &'static str = "Target.sendMessageToTarget"; }
impl crate::CdpCommand for SendMessageToTargetParams {
const METHOD: &'static str = "Target.sendMessageToTarget";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetAutoAttachParams {
pub autoAttach: bool,
pub waitForDebuggerOnStart: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub flatten: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
impl SetAutoAttachParams { pub const METHOD: &'static str = "Target.setAutoAttach"; }
impl crate::CdpCommand for SetAutoAttachParams {
const METHOD: &'static str = "Target.setAutoAttach";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AutoAttachRelatedParams {
pub targetId: TargetID,
pub waitForDebuggerOnStart: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
impl AutoAttachRelatedParams { pub const METHOD: &'static str = "Target.autoAttachRelated"; }
impl crate::CdpCommand for AutoAttachRelatedParams {
const METHOD: &'static str = "Target.autoAttachRelated";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDiscoverTargetsParams {
pub discover: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
impl SetDiscoverTargetsParams { pub const METHOD: &'static str = "Target.setDiscoverTargets"; }
impl crate::CdpCommand for SetDiscoverTargetsParams {
const METHOD: &'static str = "Target.setDiscoverTargets";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetRemoteLocationsParams {
pub locations: Vec<RemoteLocation>,
}
impl SetRemoteLocationsParams { pub const METHOD: &'static str = "Target.setRemoteLocations"; }
impl crate::CdpCommand for SetRemoteLocationsParams {
const METHOD: &'static str = "Target.setRemoteLocations";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDevToolsTargetParams {
pub targetId: TargetID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDevToolsTargetReturns {
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
impl GetDevToolsTargetParams { pub const METHOD: &'static str = "Target.getDevToolsTarget"; }
impl crate::CdpCommand for GetDevToolsTargetParams {
const METHOD: &'static str = "Target.getDevToolsTarget";
type Response = GetDevToolsTargetReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenDevToolsParams {
pub targetId: TargetID,
#[serde(skip_serializing_if = "Option::is_none")]
pub panelId: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenDevToolsReturns {
pub targetId: TargetID,
}
impl OpenDevToolsParams { pub const METHOD: &'static str = "Target.openDevTools"; }
impl crate::CdpCommand for OpenDevToolsParams {
const METHOD: &'static str = "Target.openDevTools";
type Response = OpenDevToolsReturns;
}