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:63

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>