browser_protocol/autofill/
mod.rs1use serde::{Serialize, Deserialize};
3use serde_json::Value as JsonValue;
4
5
6#[derive(Debug, Clone, Serialize, Deserialize, Default)]
7#[serde(rename_all = "camelCase")]
8pub struct CreditCard {
9 pub number: String,
12 pub name: String,
15 pub expiryMonth: String,
18 pub expiryYear: String,
21 pub cvc: String,
24}
25
26
27#[derive(Debug, Clone, Serialize, Deserialize, Default)]
28#[serde(rename_all = "camelCase")]
29pub struct AddressField {
30 pub name: String,
35 pub value: String,
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize, Default)]
43#[serde(rename_all = "camelCase")]
44pub struct AddressFields {
45
46 pub fields: Vec<AddressField>,
47}
48
49
50#[derive(Debug, Clone, Serialize, Deserialize, Default)]
51#[serde(rename_all = "camelCase")]
52pub struct Address {
53 pub fields: Vec<AddressField>,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize, Default)]
67#[serde(rename_all = "camelCase")]
68pub struct AddressUI {
69 pub addressFields: Vec<AddressFields>,
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
77pub enum FillingStrategy {
78 #[default]
79 AutocompleteAttribute,
80 AutofillInferred,
81}
82
83
84#[derive(Debug, Clone, Serialize, Deserialize, Default)]
85#[serde(rename_all = "camelCase")]
86pub struct FilledField {
87 pub htmlType: String,
90 pub id: String,
93 pub name: String,
96 pub value: String,
99 pub autofillType: String,
102 pub fillingStrategy: FillingStrategy,
105 pub frameId: crate::page::FrameId,
108 pub fieldId: crate::dom::BackendNodeId,
111}
112
113#[derive(Debug, Clone, Serialize, Deserialize, Default)]
117#[serde(rename_all = "camelCase")]
118pub struct TriggerParams {
119 pub fieldId: crate::dom::BackendNodeId,
122 #[serde(skip_serializing_if = "Option::is_none")]
125 pub frameId: Option<crate::page::FrameId>,
126 #[serde(skip_serializing_if = "Option::is_none")]
129 pub card: Option<CreditCard>,
130 #[serde(skip_serializing_if = "Option::is_none")]
133 pub address: Option<Address>,
134}
135
136impl TriggerParams { pub const METHOD: &'static str = "Autofill.trigger"; }
137
138impl crate::CdpCommand for TriggerParams {
139 const METHOD: &'static str = "Autofill.trigger";
140 type Response = crate::EmptyReturns;
141}
142
143#[derive(Debug, Clone, Serialize, Deserialize, Default)]
146#[serde(rename_all = "camelCase")]
147pub struct SetAddressesParams {
148
149 pub addresses: Vec<Address>,
150}
151
152impl SetAddressesParams { pub const METHOD: &'static str = "Autofill.setAddresses"; }
153
154impl crate::CdpCommand for SetAddressesParams {
155 const METHOD: &'static str = "Autofill.setAddresses";
156 type Response = crate::EmptyReturns;
157}
158
159#[derive(Debug, Clone, Serialize, Deserialize, Default)]
160pub struct DisableParams {}
161
162impl DisableParams { pub const METHOD: &'static str = "Autofill.disable"; }
163
164impl crate::CdpCommand for DisableParams {
165 const METHOD: &'static str = "Autofill.disable";
166 type Response = crate::EmptyReturns;
167}
168
169#[derive(Debug, Clone, Serialize, Deserialize, Default)]
170pub struct EnableParams {}
171
172impl EnableParams { pub const METHOD: &'static str = "Autofill.enable"; }
173
174impl crate::CdpCommand for EnableParams {
175 const METHOD: &'static str = "Autofill.enable";
176 type Response = crate::EmptyReturns;
177}