Skip to main content

cbf_chrome/data/
lifecycle.rs

1//! Chrome-specific lifecycle types, including backend stop/error info and before-unload trigger reasons.
2
3use cbf::{data::dialog::BeforeUnloadReason, error::BackendErrorInfo, event::BackendStopReason};
4
5pub type ChromeBackendErrorInfo = BackendErrorInfo;
6pub type ChromeBackendStopReason = BackendStopReason;
7
8#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9pub enum ChromeBeforeUnloadReason {
10    Unknown,
11    CloseBrowsingContext,
12    Navigate,
13    Reload,
14    WindowClose,
15}
16
17impl From<ChromeBeforeUnloadReason> for BeforeUnloadReason {
18    fn from(value: ChromeBeforeUnloadReason) -> Self {
19        match value {
20            ChromeBeforeUnloadReason::Unknown => Self::Unknown,
21            ChromeBeforeUnloadReason::CloseBrowsingContext => Self::CloseBrowsingContext,
22            ChromeBeforeUnloadReason::Navigate => Self::Navigate,
23            ChromeBeforeUnloadReason::Reload => Self::Reload,
24            ChromeBeforeUnloadReason::WindowClose => Self::WindowClose,
25        }
26    }
27}
28
29impl From<BeforeUnloadReason> for ChromeBeforeUnloadReason {
30    fn from(value: BeforeUnloadReason) -> Self {
31        match value {
32            BeforeUnloadReason::Unknown => Self::Unknown,
33            BeforeUnloadReason::CloseBrowsingContext => Self::CloseBrowsingContext,
34            BeforeUnloadReason::Navigate => Self::Navigate,
35            BeforeUnloadReason::Reload => Self::Reload,
36            BeforeUnloadReason::WindowClose => Self::WindowClose,
37        }
38    }
39}