Skip to main content

Engine

Trait Engine 

Source
pub trait Engine {
Show 22 methods // Required methods fn open(&mut self, url: &str) -> EngineResult<PageHandle>; fn close(&mut self, page: PageHandle) -> EngineResult<()>; fn snapshot(&mut self, page: PageHandle) -> EngineResult<Tree>; fn act( &mut self, page: PageHandle, target: ActTarget, action: Action, ) -> EngineResult<()>; fn wait( &mut self, page: PageHandle, cond: WaitCondition, budget: Duration, ) -> EngineResult<()>; fn capture( &mut self, page: PageHandle, scope: CaptureScope, ) -> EngineResult<PathBuf>; fn layout( &mut self, page: PageHandle, refs: &[Ref], ) -> EngineResult<Vec<LayoutBox>>; fn set_viewport( &mut self, page: PageHandle, viewport: Viewport, ) -> EngineResult<()>; fn save_auth(&mut self, page: PageHandle) -> EngineResult<AuthBlob>; fn load_auth( &mut self, page: PageHandle, blob: &AuthBlob, ) -> EngineResult<()>; fn capabilities(&self) -> EngineCapabilities; // Provided methods fn console_entries( &mut self, _page: PageHandle, ) -> EngineResult<Vec<ConsoleEntry>> { ... } fn network_entries( &mut self, _page: PageHandle, ) -> EngineResult<Vec<NetworkEntry>> { ... } fn request_detail( &mut self, _page: PageHandle, _seq: u64, ) -> EngineResult<Option<RequestDetail>> { ... } fn eval_js( &mut self, _page: PageHandle, _expr: &str, ) -> EngineResult<EvalResult> { ... } fn storage( &mut self, _page: PageHandle, _scope: StorageScope, ) -> EngineResult<Vec<StorageEntry>> { ... } fn cookie_events( &mut self, _page: PageHandle, ) -> EngineResult<Vec<CookieEvent>> { ... } fn cursor_op( &mut self, _page: PageHandle, _op: CursorOp, _mode: InputMode, ) -> EngineResult<()> { ... } fn scripts(&mut self, _page: PageHandle) -> EngineResult<Vec<ScriptEntry>> { ... } fn script_source( &mut self, _page: PageHandle, _seq: u64, ) -> EngineResult<Option<ScriptSource>> { ... } fn dom( &mut self, _page: PageHandle, _r: Ref, _extra_props: &[String], ) -> EngineResult<Option<DomDetail>> { ... } fn performance( &mut self, _page: PageHandle, ) -> EngineResult<PerformanceMetrics> { ... }
}
Expand description

The browser engine, as the daemon sees it.

All methods are synchronous from the daemon’s perspective. The runtime layer dispatches calls onto a dedicated thread that owns the platform run loop; implementations should assume they are running on that thread.

Required Methods§

Source

fn open(&mut self, url: &str) -> EngineResult<PageHandle>

Open a fresh page navigated to url.

Source

fn close(&mut self, page: PageHandle) -> EngineResult<()>

Close a page. Idempotent — closing a closed page is a no-op.

Source

fn snapshot(&mut self, page: PageHandle) -> EngineResult<Tree>

Snapshot the a11y tree at page.

Source

fn act( &mut self, page: PageHandle, target: ActTarget, action: Action, ) -> EngineResult<()>

Perform action on target at page.

Source

fn wait( &mut self, page: PageHandle, cond: WaitCondition, budget: Duration, ) -> EngineResult<()>

Wait for cond at page until satisfied or budget elapses.

Source

fn capture( &mut self, page: PageHandle, scope: CaptureScope, ) -> EngineResult<PathBuf>

Take a screenshot. Returns the path on disk where the image was written.

Source

fn layout( &mut self, page: PageHandle, refs: &[Ref], ) -> EngineResult<Vec<LayoutBox>>

Compute layout boxes for refs at page.

Source

fn set_viewport( &mut self, page: PageHandle, viewport: Viewport, ) -> EngineResult<()>

Set the viewport at page. Triggers a re-baseline for the next snapshot.

Source

fn save_auth(&mut self, page: PageHandle) -> EngineResult<AuthBlob>

Snapshot cookies/storage for page as an opaque AuthBlob.

Source

fn load_auth(&mut self, page: PageHandle, blob: &AuthBlob) -> EngineResult<()>

Apply a previously saved AuthBlob to page.

Source

fn capabilities(&self) -> EngineCapabilities

Capabilities the daemon should advertise for this engine.

Provided Methods§

Source

fn console_entries( &mut self, _page: PageHandle, ) -> EngineResult<Vec<ConsoleEntry>>

Snapshot the always-captured console ring buffer for page. Default impl returns empty (engines without console capture).

Source

fn network_entries( &mut self, _page: PageHandle, ) -> EngineResult<Vec<NetworkEntry>>

Snapshot the always-captured network ring buffer for page. Default impl returns empty (engines without network capture).

Source

fn request_detail( &mut self, _page: PageHandle, _seq: u64, ) -> EngineResult<Option<RequestDetail>>

Look up the full detail (headers + bodies) for a single captured network request. Returns None if the seq isn’t in the buffer. Default impl returns None.

Source

fn eval_js( &mut self, _page: PageHandle, _expr: &str, ) -> EngineResult<EvalResult>

Evaluate expr in main world. Default impl returns EvalResult::Thrown { kind: "NotImplemented", ... }.

Source

fn storage( &mut self, _page: PageHandle, _scope: StorageScope, ) -> EngineResult<Vec<StorageEntry>>

List storage entries for the requested scope.

Source

fn cookie_events(&mut self, _page: PageHandle) -> EngineResult<Vec<CookieEvent>>

List cookie store ADD/REMOVE events observed since the page opened. Engines without a cookie-changed observer (Windows, the stub) return an empty vec or ENGINE_UNSUPPORTED via their capability flag.

Source

fn cursor_op( &mut self, _page: PageHandle, _op: CursorOp, _mode: InputMode, ) -> EngineResult<()>

Coordinate-addressed cursor operation. Backends that don’t implement native input dispatch fall through to the default ENGINE_UNSUPPORTED here; agents see ! ENGINE_UNSUPPORTED on the wire and can switch to ref-based vs act instead.

Source

fn scripts(&mut self, _page: PageHandle) -> EngineResult<Vec<ScriptEntry>>

List scripts loaded by the page.

Source

fn script_source( &mut self, _page: PageHandle, _seq: u64, ) -> EngineResult<Option<ScriptSource>>

Source of one script by seq. Returns None if the seq isn’t in the script registry.

Source

fn dom( &mut self, _page: PageHandle, _r: Ref, _extra_props: &[String], ) -> EngineResult<Option<DomDetail>>

Outer HTML + computed styles for a ref. Caller-requested computed properties land in extra_props; the engine merges them with its default property set. Returns None for unknown refs.

Source

fn performance(&mut self, _page: PageHandle) -> EngineResult<PerformanceMetrics>

Web Vitals + heap + DOM stats. Returns zero-filled defaults if the engine can’t measure them.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§