use crate::data::download::{
ChromeDownloadId, ChromeDownloadPromptReason, ChromeDownloadPromptResult,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiPermissionType {
Geolocation,
Notifications,
AudioCapture,
VideoCapture,
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiFormResubmissionReason {
Reload,
BackForward,
Other,
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct PromptUiId(u64);
impl PromptUiId {
pub const fn new(value: u64) -> Self {
Self(value)
}
pub const fn get(self) -> u64 {
self.0
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum PromptUiKind {
PermissionPrompt {
permission: PromptUiPermissionType,
permission_key: Option<String>,
},
DownloadPrompt {
download_id: ChromeDownloadId,
file_name: String,
total_bytes: Option<u64>,
suggested_path: Option<String>,
reason: ChromeDownloadPromptReason,
},
ExtensionInstallPrompt {
extension_id: String,
extension_name: String,
permission_names: Vec<String>,
},
ExtensionUninstallPrompt {
extension_id: String,
extension_name: String,
triggering_extension_name: Option<String>,
can_report_abuse: bool,
},
PrintPreviewDialog,
FormResubmissionPrompt {
reason: PromptUiFormResubmissionReason,
target_url: Option<String>,
},
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum PromptUiResponse {
PermissionPrompt {
allow: bool,
},
DownloadPrompt {
allow: bool,
destination_path: Option<String>,
},
ExtensionInstallPrompt {
proceed: bool,
},
ExtensionUninstallPrompt {
proceed: bool,
report_abuse: bool,
},
PrintPreviewDialog {
proceed: bool,
},
FormResubmissionPrompt {
proceed: bool,
},
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiExtensionInstallResult {
Accepted,
AcceptedWithWithheldPermissions,
UserCanceled,
Aborted,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiExtensionUninstallResult {
Accepted,
UserCanceled,
Aborted,
Failed,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiResolutionResult {
Allowed,
Denied,
Aborted,
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiDialogResult {
Proceeded,
Canceled,
Aborted,
Unknown,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum PromptUiResolution {
PermissionPrompt {
permission: PromptUiPermissionType,
permission_key: Option<String>,
result: PromptUiResolutionResult,
},
DownloadPrompt {
download_id: ChromeDownloadId,
destination_path: Option<String>,
result: ChromeDownloadPromptResult,
},
ExtensionInstallPrompt {
extension_id: String,
result: PromptUiExtensionInstallResult,
detail: Option<String>,
},
ExtensionUninstallPrompt {
extension_id: String,
result: PromptUiExtensionUninstallResult,
detail: Option<String>,
report_abuse: bool,
},
PrintPreviewDialog {
result: PromptUiDialogResult,
},
FormResubmissionPrompt {
reason: PromptUiFormResubmissionReason,
target_url: Option<String>,
result: PromptUiResolutionResult,
},
Unknown,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum PromptUiCloseReason {
UserCanceled,
HostForced,
SystemDismissed,
Unknown,
}