Skip to main content

browser_commander/playwright/protocol/
playwright.rs

1// @generated by scripts/generate-playwright-protocol.mjs from
2// rust/protocol/playwright/*.yml. Do not edit by hand.
3
4#![allow(clippy::all, missing_docs, unused_imports)]
5
6use serde::{Deserialize, Serialize};
7
8use super::*;
9use crate::playwright::connection::{
10    Binary, Channel, ChannelType, ObjectRef, ProtocolError, ProtocolEvent, Ref,
11};
12
13/// Initializer the driver sends when it creates a `Playwright`.
14#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
15pub struct PlaywrightInitializer {
16    #[serde(rename = "chromium")]
17    pub chromium: Ref<BrowserType>,
18    #[serde(rename = "firefox")]
19    pub firefox: Ref<BrowserType>,
20    #[serde(rename = "webkit")]
21    pub webkit: Ref<BrowserType>,
22    #[serde(rename = "android")]
23    pub android: Ref<Android>,
24    #[serde(rename = "electron")]
25    pub electron: Ref<Electron>,
26    #[serde(rename = "utils", default, skip_serializing_if = "Option::is_none")]
27    pub utils: Option<Ref<LocalUtils>>,
28    #[serde(rename = "preLaunchedBrowser", default, skip_serializing_if = "Option::is_none")]
29    pub pre_launched_browser: Option<Ref<Browser>>,
30    #[serde(rename = "preConnectedAndroidDevice", default, skip_serializing_if = "Option::is_none")]
31    pub pre_connected_android_device: Option<Ref<AndroidDevice>>,
32    #[serde(rename = "socksSupport", default, skip_serializing_if = "Option::is_none")]
33    pub socks_support: Option<Ref<SocksSupport>>,
34}
35
36#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
37pub struct PlaywrightNewRequestParamsClientCertificates {
38    #[serde(rename = "origin")]
39    pub origin: String,
40    #[serde(rename = "cert", default, skip_serializing_if = "Option::is_none")]
41    pub cert: Option<Binary>,
42    #[serde(rename = "key", default, skip_serializing_if = "Option::is_none")]
43    pub key: Option<Binary>,
44    #[serde(rename = "passphrase", default, skip_serializing_if = "Option::is_none")]
45    pub passphrase: Option<String>,
46    #[serde(rename = "pfx", default, skip_serializing_if = "Option::is_none")]
47    pub pfx: Option<Binary>,
48}
49
50#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
51pub struct PlaywrightNewRequestParamsProxy {
52    #[serde(rename = "server")]
53    pub server: String,
54    #[serde(rename = "bypass", default, skip_serializing_if = "Option::is_none")]
55    pub bypass: Option<String>,
56    #[serde(rename = "username", default, skip_serializing_if = "Option::is_none")]
57    pub username: Option<String>,
58    #[serde(rename = "password", default, skip_serializing_if = "Option::is_none")]
59    pub password: Option<String>,
60}
61
62#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
63pub struct PlaywrightNewRequestParamsStorageState {
64    #[serde(rename = "cookies", default, skip_serializing_if = "Option::is_none")]
65    pub cookies: Option<Vec<NetworkCookie>>,
66    #[serde(rename = "origins", default, skip_serializing_if = "Option::is_none")]
67    pub origins: Option<Vec<SetOriginStorage>>,
68}
69
70/// Parameters of `Playwright.newRequest` (Create request context).
71#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
72pub struct PlaywrightNewRequestParams {
73    #[serde(rename = "baseURL", default, skip_serializing_if = "Option::is_none")]
74    pub base_url: Option<String>,
75    #[serde(rename = "userAgent", default, skip_serializing_if = "Option::is_none")]
76    pub user_agent: Option<String>,
77    #[serde(rename = "ignoreHTTPSErrors", default, skip_serializing_if = "Option::is_none")]
78    pub ignore_https_errors: Option<bool>,
79    #[serde(rename = "extraHTTPHeaders", default, skip_serializing_if = "Option::is_none")]
80    pub extra_http_headers: Option<Vec<NameValue>>,
81    #[serde(rename = "failOnStatusCode", default, skip_serializing_if = "Option::is_none")]
82    pub fail_on_status_code: Option<bool>,
83    #[serde(rename = "clientCertificates", default, skip_serializing_if = "Option::is_none")]
84    pub client_certificates: Option<Vec<PlaywrightNewRequestParamsClientCertificates>>,
85    #[serde(rename = "maxRedirects", default, skip_serializing_if = "Option::is_none")]
86    pub max_redirects: Option<i64>,
87    #[serde(rename = "httpCredentials", default, skip_serializing_if = "Option::is_none")]
88    pub http_credentials: Option<Vec<HttpCredentials>>,
89    #[serde(rename = "proxy", default, skip_serializing_if = "Option::is_none")]
90    pub proxy: Option<PlaywrightNewRequestParamsProxy>,
91    #[serde(rename = "storageState", default, skip_serializing_if = "Option::is_none")]
92    pub storage_state: Option<PlaywrightNewRequestParamsStorageState>,
93    #[serde(rename = "tracesDir", default, skip_serializing_if = "Option::is_none")]
94    pub traces_dir: Option<String>,
95}
96
97/// Result of `Playwright.newRequest` (Create request context).
98#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
99pub struct PlaywrightNewRequestResult {
100    #[serde(rename = "request")]
101    pub request: Ref<APIRequestContext>,
102}
103
104/// Events a `Playwright` channel can emit.
105#[derive(Debug, Clone, PartialEq)]
106pub enum PlaywrightEvent {
107    /// An event this binding does not know (a newer driver).
108    Unknown {
109        /// Event name.
110        method: String,
111        /// Raw event parameters.
112        params: serde_json::Value,
113    },
114}
115
116impl ProtocolEvent for PlaywrightEvent {
117    fn parse(method: &str, params: serde_json::Value) -> Result<Self, serde_json::Error> {
118        match method {
119            _ => Ok(Self::Unknown { method: method.to_string(), params }),
120        }
121    }
122}
123
124/// Channel for the `Playwright` interface (`playwright.yml`).
125#[derive(Debug, Clone)]
126pub struct Playwright {
127    channel: Channel,
128}
129
130impl ChannelType for Playwright {
131    const INTERFACE: &'static str = "Playwright";
132    type Initializer = PlaywrightInitializer;
133    type Event = PlaywrightEvent;
134
135    fn accepts(interface: &str) -> bool {
136        matches!(interface, "Playwright")
137    }
138
139    fn from_channel(channel: Channel) -> Self {
140        Self { channel }
141    }
142
143    fn channel(&self) -> &Channel {
144        &self.channel
145    }
146}
147
148impl Playwright {
149    /// `Playwright.newRequest` ("Create request context").
150    pub async fn new_request(&self, params: PlaywrightNewRequestParams) -> Result<PlaywrightNewRequestResult, ProtocolError> {
151        self.channel.send("newRequest", &params).await
152    }
153}