Skip to content

Interface: WebFrame ​

Defined in: packages/sdk/src/webview-service.ts:95

A live connection to an embedded frame's content, returned by WebviewService.attach. Dispose it (or let ctx.subscriptions dispose it) when your panel unmounts.

Extends ​

Properties ​

url ​

ts
readonly url: string | null;

Defined in: packages/sdk/src/webview-service.ts:97

The frame's current URL, updated on every onNavigate event. null before the first load.


onNavigate ​

ts
onNavigate: Event<WebviewNavigateEvent>;

Defined in: packages/sdk/src/webview-service.ts:99

Subscribe to in-frame navigation — the only way to track SPA route changes and full loads alike. See WebviewNavType.


onBlocked ​

ts
onBlocked: Event<void>;

Defined in: packages/sdk/src/webview-service.ts:108

Fires when a navigation lands on what looks like a frame-blocked page — sites sending X-Frame-Options / frame-ancestors don't error, WebKit (and other engines) just commit an empty document at the target URL, so this is a heuristic (empty title + no body content after load), not a definitive diagnosis. Treat it as "this page probably won't work embedded — offer to open it in a browser instead."

Methods ​

dispose() ​

ts
dispose(): void;

Defined in: packages/sdk/src/types.ts:64

Returns ​

void

Inherited from ​

Disposable.dispose


back() ​

ts
back(): void;

Defined in: packages/sdk/src/webview-service.ts:110

Navigate the frame back in its history, if possible.

Returns ​

void


forward() ​

ts
forward(): void;

Defined in: packages/sdk/src/webview-service.ts:112

Navigate the frame forward in its history, if possible.

Returns ​

void


reload() ​

ts
reload(): void;

Defined in: packages/sdk/src/webview-service.ts:114

Reload the frame's current page.

Returns ​

void


exec() ​

ts
exec<T>(code): Promise<T>;

Defined in: packages/sdk/src/webview-service.ts:123

Run JavaScript inside the frame and resolve with its result. A single expression's value is returned (e.g. "document.title", "location.href", "document.querySelectorAll('a').length") — matching how a devtools console evaluates. Multi-statement code runs but only returns a value if it ends in an explicit return-compatible form. The result must be structured-clone-safe (no DOM nodes, functions, etc.).

Type Parameters ​

T ​

T = unknown

Parameters ​

code ​

string

Returns ​

Promise<T>


pickElement() ​

ts
pickElement(): Promise<PickedElement | null>;

Defined in: packages/sdk/src/webview-service.ts:130

Enter interactive element-pick mode: the user hovers to highlight and clicks to select, or presses Escape to cancel. Resolves with the picked element, or null if cancelled. No timeout — this is inherently user-paced.

Returns ​

Promise<PickedElement | null>


cancelPick() ​

ts
cancelPick(): void;

Defined in: packages/sdk/src/webview-service.ts:137

Cancel an in-flight pickElement call — exits pick mode in the frame and resolves the pending pickElement() promise with null. A no-op if no pick is active (including if it already ended, e.g. via Escape or a click).

Returns ​

void


capture() ​

ts
capture(): Promise<Blob>;

Defined in: packages/sdk/src/webview-service.ts:139

A native PNG snapshot of the frame's current visible viewport.

Returns ​

Promise<Blob>


captureRect() ​

ts
captureRect(rect): Promise<Blob>;

Defined in: packages/sdk/src/webview-service.ts:141

A native PNG snapshot of a frame-relative sub-rect — e.g. a PickedElement.rect or a marquee selection.

Parameters ​

rect ​

WebviewRect

Returns ​

Promise<Blob>


captureFullPage() ​

ts
captureFullPage(): Promise<Blob>;

Defined in: packages/sdk/src/webview-service.ts:143

A native PNG snapshot of the frame's entire scrollable document, stitched from scrolled captures. Scroll position is restored afterward.

Returns ​

Promise<Blob>