use crate::tools::browser::executor::BrowserError;
pub trait NavigationExt {
fn back(&self) -> impl std::future::Future<Output = Result<(), BrowserError>> + Send;
fn forward(&self) -> impl std::future::Future<Output = Result<(), BrowserError>> + Send;
fn reload(&self) -> impl std::future::Future<Output = Result<(), BrowserError>> + Send;
}
impl NavigationExt for super::super::BrowserClient {
async fn back(&self) -> Result<(), BrowserError> {
let output = self.executor().execute(&["back"]).await?;
if output.success {
Ok(())
} else {
Err(BrowserError::Other(format!(
"Failed to navigate back: {}",
output.stderr
)))
}
}
async fn forward(&self) -> Result<(), BrowserError> {
let output = self.executor().execute(&["forward"]).await?;
if output.success {
Ok(())
} else {
Err(BrowserError::Other(format!(
"Failed to navigate forward: {}",
output.stderr
)))
}
}
async fn reload(&self) -> Result<(), BrowserError> {
let output = self.executor().execute(&["reload"]).await?;
if output.success {
Ok(())
} else {
Err(BrowserError::Other(format!(
"Failed to reload page: {}",
output.stderr
)))
}
}
}