use serde::{Serialize, Deserialize};
pub type BrowserContextID = String;
pub type WindowID = 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 Bounds {
#[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>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PermissionType {
#[default]
Ar,
AudioCapture,
AutomaticFullscreen,
BackgroundFetch,
BackgroundSync,
CameraPanTiltZoom,
CapturedSurfaceControl,
ClipboardReadWrite,
ClipboardSanitizedWrite,
DisplayCapture,
DurableStorage,
Geolocation,
HandTracking,
IdleDetection,
KeyboardLock,
LocalFonts,
LocalNetwork,
LocalNetworkAccess,
LoopbackNetwork,
Midi,
MidiSysex,
Nfc,
Notifications,
PaymentHandler,
PeriodicBackgroundSync,
PointerLock,
ProtectedMediaIdentifier,
Sensors,
SmartCard,
SpeakerSelection,
StorageAccess,
TopLevelStorageAccess,
VideoCapture,
Vr,
WakeLockScreen,
WakeLockSystem,
WebAppInstallation,
WebPrinting,
WindowManagement,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PermissionSetting {
#[default]
Granted,
Denied,
Prompt,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct PermissionDescriptor {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub sysex: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub userVisibleOnly: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowWithoutSanitization: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowWithoutGesture: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub panTiltZoom: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum BrowserCommandId {
#[default]
OpenTabSearch,
CloseTabSearch,
OpenGlic,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Bucket {
pub low: i64,
pub high: i64,
pub count: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Histogram {
pub name: String,
pub sum: i64,
pub count: u64,
pub buckets: Vec<Bucket>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum PrivacySandboxAPI {
#[default]
BiddingAndAuctionServices,
TrustedKeyValue,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetPermissionParams {
pub permission: PermissionDescriptor,
pub setting: PermissionSetting,
#[serde(skip_serializing_if = "Option::is_none")]
pub origin: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub embeddedOrigin: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<BrowserContextID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GrantPermissionsParams {
pub permissions: Vec<PermissionType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub origin: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<BrowserContextID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ResetPermissionsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<BrowserContextID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDownloadBehaviorParams {
pub behavior: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub downloadPath: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eventsEnabled: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CancelDownloadParams {
pub guid: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<BrowserContextID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetVersionReturns {
pub protocolVersion: String,
pub product: String,
pub revision: String,
pub userAgent: String,
pub jsVersion: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetBrowserCommandLineReturns {
pub arguments: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub query: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub delta: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramsReturns {
pub histograms: Vec<Histogram>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramParams {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub delta: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetHistogramReturns {
pub histogram: Histogram,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowBoundsParams {
pub windowId: WindowID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowBoundsReturns {
pub bounds: Bounds,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowForTargetParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<crate::target::TargetID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetWindowForTargetReturns {
pub windowId: WindowID,
pub bounds: Bounds,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetWindowBoundsParams {
pub windowId: WindowID,
pub bounds: Bounds,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetContentsSizeParams {
pub windowId: WindowID,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDockTileParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub badgeLabel: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExecuteBrowserCommandParams {
pub commandId: BrowserCommandId,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddPrivacySandboxEnrollmentOverrideParams {
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AddPrivacySandboxCoordinatorKeyConfigParams {
pub api: PrivacySandboxAPI,
pub coordinatorOrigin: String,
pub keyConfig: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<BrowserContextID>,
}