use std::future::Future;
use serde_json::{Value, json};
use crate::Result;
use crate::cdp::ChromiumTab;
use crate::envkit::EnvBackend;
pub type ChromiumEnvDumper = crate::envkit::EnvDumper<ChromiumTab>;
pub type ChromiumEnvProbe = crate::envkit::EnvProbe<ChromiumTab>;
impl EnvBackend for ChromiumTab {
fn add_init_script(&self, script: &str) -> impl Future<Output = Result<()>> {
let src = script.to_string();
async move {
self.core
.send(
"Page.addScriptToEvaluateOnNewDocument",
json!({ "source": src }),
)
.await?;
let _ = ChromiumTab::run_js(self, &src).await;
Ok(())
}
}
fn run_js(&self, expr: &str) -> impl Future<Output = Result<Value>> {
ChromiumTab::run_js(self, expr)
}
}