Skip to main content

WebViewCommand

Enum WebViewCommand 

pub enum WebViewCommand {
Show 72 variants DevTools { request_id: u32, method: String, params: Value, session: Option<String>, }, Credentials(CredentialRequest), ImportServiceSession(ServiceSessionRequest), SetSiteExceptions(Vec<String>), RequestSiteStatus { request_id: u32, origin: String, }, SiteAction { request_id: u32, origin: String, generation: u64, action: String, }, Navigate(String), ScopedNavigation { request_id: u32, command: NavigationCommand, }, CancelScopedNavigation { request_id: u32, }, RequestNavigationHistory { request_id: u32, direction: NavigationDirection, }, NavigateToHistoryEntry { request_id: u32, id: u32, }, GoBack, GoForward, Reload, StopLoading, ExitFullscreen, SetAudioMuted(bool), Find { id: u32, text: String, forward: bool, next: bool, }, StopFinding, ContextMenuAction { id: u32, command: u32, }, AnswerPageDialog { id: u32, accept: bool, text: Option<String>, }, SetZoomLevel(f64), ReportDocumentSize(bool), CopySelection { request_id: u32, }, AnswerClipboardRead { request_id: u32, text: Option<String>, }, Resize { width: u32, height: u32, scale_factor: f32, }, MouseMove { x: f32, y: f32, }, MouseButton { button: MouseButton, down: bool, x: f32, y: f32, }, Scroll { dx: f32, dy: f32, x: f32, y: f32, }, Key { key: KeyInput, down: bool, modifiers: KeyModifiers, code: Option<&'static str>, }, ImeComposition { text: String, cursor: Option<(usize, usize)>, }, ImeCommit(String), ImeCancel, ImeFinish, SetFocused(bool), SetContentFilter(Option<Arc<String>>), SetNativeFilterRules { rules: Arc<String>, enabled: Option<bool>, }, SetContentFilters { version: u64, chunks: Arc<Vec<Arc<String>>>, }, SetUserScripts(Arc<Vec<String>>), SetBlockingScripts(Arc<Vec<String>>), RequestMediaElement { request_id: u64, }, RequestMediaElementById { request_id: u64, element_id: String, }, Page { request_id: u32, request: PageRequest, }, CancelPage, PaintCapture { request_id: u32, }, PaintResource { request_id: u32, url: String, }, ClearWebsiteData, SetClearOnExit(bool), ShowDeveloperTools, PermissionDecision { id: u32, allow: bool, }, PermissionDismissed { id: u32, }, ExtensionAccess { id: String, permissions: Vec<String>, hosts: Vec<String>, scriptable: Vec<String>, framed: Vec<String>, token: Option<String>, commands: Option<Value>, }, ExtensionGrants { id: String, optional: ExtensionPermissionSet, granted: ExtensionPermissionSet, }, ExtensionPermissionDecision { request: u32, allow: bool, }, ExtensionForget { id: String, }, ExtensionIdentity { id: String, }, ExtensionPanel { action: Option<String>, }, ExtensionSignInPanel { id: String, flow: u32, }, ExtensionClick { id: String, }, ExtensionMenuChoice { id: String, key: String, }, ExtensionNotificationChosen { id: String, notification: String, button: Option<u8>, }, ExtensionOmnibox { id: String, input: OmniboxInput, }, ExtensionOpenSidePanel { id: String, }, ExtensionSidePanelPage { id: String, }, ExtensionCommandKey { key: KeyInput, modifiers: KeyModifiers, }, DownloadDecision { id: u32, allow: bool, }, CancelNativeDownload { id: u32, }, RetryDownload { id: u32, }, CancelAllDownloads, StartDownload { uri: String, }, SetDownloadDestination { id: String, path: String, }, CancelDownload { id: String, },
}

Variants§

§

DevTools

A DevTools command for extension management: the engine allows only the Extensions domain and what reading an extension’s service worker needs. The reply is a WebViewEvent::DevToolsResult with the same request_id. session addresses an attached service-worker target.

Fields

§request_id: u32
§method: String
§params: Value
§session: Option<String>
§

Credentials(CredentialRequest)

§

ImportServiceSession(ServiceSessionRequest)

§

SetSiteExceptions(Vec<String>)

§

RequestSiteStatus

Fields

§request_id: u32
§origin: String
§

SiteAction

Fields

§request_id: u32
§origin: String
§generation: u64
§action: String
§

Navigate(String)

Load the given (already normalised) URL.

§

ScopedNavigation

Transport representation only: use WebViewEngine::navigate_owned to observe admission before relying on an owned outcome.

Fields

§request_id: u32
§

CancelScopedNavigation

Fields

§request_id: u32
§

RequestNavigationHistory

Fields

§request_id: u32
§

NavigateToHistoryEntry

Fields

§request_id: u32
§id: u32
§

GoBack

§

GoForward

§

Reload

§

StopLoading

§

ExitFullscreen

Ask the native browser host to leave document/video fullscreen.

§

SetAudioMuted(bool)

Mute or restore native page audio without installing an audio capture handler.

§

Find

Fields

§id: u32
§text: String
§forward: bool
§next: bool
§

StopFinding

§

ContextMenuAction

Fields

§id: u32
§command: u32
§

AnswerPageDialog

Answer the page’s question id: OK (or Leave) when accept, else Cancel (or Stay), with a prompt’s text.

Fields

§id: u32
§accept: bool
§

SetZoomLevel(f64)

§

ReportDocumentSize(bool)

Report the document’s size and scroll as WebViewEvent::DocumentSize whenever they change, or stop. Off until asked: an embedder that sizes the view to its content asks (a mail reader scrolling as one page). An engine that cannot measure never reports.

§

CopySelection

Read the page’s selection as text, answered by one WebViewEvent::SelectionText with the same id, for the embedder to put on the system clipboard. An engine that cannot read it never answers.

Fields

§request_id: u32
§

AnswerClipboardRead

The system clipboard’s text, answering WebViewEvent::ClipboardRead with the same id: None when it holds no text or could not be read, which leaves the page the engine’s own.

Fields

§request_id: u32
§

Resize

Viewport size in physical pixels plus the display scale factor.

Fields

§width: u32
§height: u32
§scale_factor: f32
§

MouseMove

Fields

§

MouseButton

Fields

§down: bool
§

Scroll

Scroll by (dx, dy) physical pixels at pointer position (x, y).

Fields

§dx: f32
§dy: f32
§

Key

Fields

§down: bool
§modifiers: KeyModifiers
§code: Option<&'static str>

The key’s place on the keyboard, as a DOM KeyboardEvent.code (“KeyZ”, “Digit1”), whatever the layout prints on it. A page’s shortcuts keep working on a layout whose letters are not Latin (Ctrl+С on a Russian layout copies), and its code is the key pressed. None when the sender does not know it.

§

ImeComposition

The input method’s text being composed at the page’s caret, in place of any composed before. cursor is the composition’s own caret or selection, as byte offsets into text.

Fields

§text: String
§cursor: Option<(usize, usize)>
§

ImeCommit(String)

Text the input method committed: it takes the composition’s place, or goes in at the caret when nothing is being composed.

§

ImeCancel

The input method withdrew its composition: the composed text leaves the page.

§

ImeFinish

The composition ends as it stands: its text stays in the page.

§

SetFocused(bool)

Keyboard focus entered / left the page surface.

§

SetContentFilter(Option<Arc<String>>)

Compiled WebKit content-blocker JSON (None clears the filter). Backends without native content filtering ignore this.

§

SetNativeFilterRules

Source filter rules for engines with native matching. An empty source preserves current rules. None preserves the enabled state, so an asynchronous list refresh cannot undo a user’s disable action.

Fields

§rules: Arc<String>
§enabled: Option<bool>
§

SetContentFilters

Several compiled content-blocker JSON blobs, split because the full filter-list rule set exceeds WebKit’s per-filter cap. An empty chunks clears all filters.

version hashes the source filter lists (not the compiled JSON, since compiler rule ordering isn’t stable across runs); the engine caches each compiled filter under version+index so an unchanged rule set loads from disk instead of recompiling (~280k rules costs several seconds).

Fields

§version: u64
§chunks: Arc<Vec<Arc<String>>>
§

SetUserScripts(Arc<Vec<String>>)

Scriptlet-style blocking the declarative content filter can’t express (e.g. skipping YouTube video ads). Run at document-start in all frames.

§

SetBlockingScripts(Arc<Vec<String>>)

Native blocker supplements, guarded by the top-level site policy.

§

RequestMediaElement

Find the most useful visible HTML video in the current page. The result is delivered asynchronously as WebViewEvent::MediaElement or WebViewEvent::MediaElementUnavailable. Browser chrome uses the returned viewport geometry to create a live, element-sized PiP rather than mirroring the whole page.

Fields

§request_id: u64
§

RequestMediaElementById

Re-resolve a previously selected media element by its stable page-local identity. Active PiP uses this without silently switching videos.

Fields

§request_id: u64
§element_id: String
§

Page

Read or operate the current page’s content. Exactly one WebViewEvent::PageResult with the same id answers it; engines without page automation answer PageFailure::unavailable.

Fields

§request_id: u32
§request: PageRequest
§

CancelPage

Stop the page action that is running. An action nobody waits for any more must not hold the page: the tab answers it as settled with an unknown outcome rather than running the next action behind it. No request id is carried: a tab runs one page action at a time, so the action that is running is the one to stop.

§

PaintCapture

Capture the page’s layout for the paint stream: every box and text line the engine laid out (see tilo_paint_stream::snapshot). Exactly one WebViewEvent::PaintSnapshot with the same id answers it.

Fields

§request_id: u32
§

PaintResource

The bytes of a resource the page already loaded, read from the engine’s cache. One WebViewEvent::PaintResource answers it.

Fields

§request_id: u32
§

ClearWebsiteData

Clear all persistent website data (cookies, caches, storage, service workers). Backends without a data store ignore this.

§

SetClearOnExit(bool)

§

ShowDeveloperTools

§

PermissionDecision

Fields

§id: u32
§allow: bool
§

PermissionDismissed

The person set a permission question aside (Escape, a click elsewhere) without answering: the site may ask again, as when a prompt in Chrome is dismissed. An engine that cannot tell this from no takes it as no.

Fields

§id: u32
§

ExtensionAccess

What an installed extension may do with the Browser’s tabs: its API permissions and the sites it may read and script. The engine answers the extension’s tab APIs within them.

Fields

§permissions: Vec<String>
§hosts: Vec<String>

Its host permissions: the sites the tab APIs let it read and script.

§scriptable: Vec<String>

Where its declared content scripts run, which, as in Chrome, gives no access to the tab APIs.

§framed: Vec<String>

Where they run in a page’s frames too (all_frames).

§token: Option<String>

What its service worker shows the engine to be known as its.

§commands: Option<Value>

Its keyboard shortcuts: the manifest’s commands object, whose suggested keys the engine gives and runs.

§

ExtensionGrants

What an extension may ask for later (its manifest’s optional_permissions and optional_host_permissions), and what of it the person granted: the engine answers chrome.permissions within them, and its tab APIs within what was granted too.

§

ExtensionPermissionDecision

The person answered an extension’s request for more access (WebViewEvent::ExtensionPermissionRequest).

Fields

§request: u32
§allow: bool
§

ExtensionForget

An extension that left the profile: it is told nothing more.

Fields

§

ExtensionIdentity

The Browser’s own extension, which tells the engine which tab a page is among the ids extensions know tabs by.

Fields

§

ExtensionPanel

This tab shows an extension’s popup or settings page over the page used last: to extensions it is no tab, and that page is its window. action names the extension whose toolbar button opened it, which may then script that page, as in Chrome.

Fields

§action: Option<String>
§

ExtensionSignInPanel

This tab shows the page of sign-in flow of extension id (WebViewEvent::ExtensionSignIn), over the page used last or out of sight: to extensions it is no tab, and its closing turns the sign-in down.

Fields

§flow: u32
§

ExtensionClick

The person clicked an extension’s toolbar button over this page: the extension hears of it (action.onClicked) and may script the page, or its side panel opens or closes when it asked for that.

Fields

§

ExtensionMenuChoice

The person chose the item key of extension id’s toolbar button menu over this page: the extension hears of it (contextMenus.onClicked).

Fields

§

ExtensionNotificationChosen

The person chose the notification notification of the extension id: its body, or the button at button. The extension hears of it and of the notification closing.

Fields

§notification: String
§button: Option<u8>
§

ExtensionOmnibox

The person typed after the extension’s keyword in this page’s address: the extension hears of it (chrome.omnibox), and Enter lets it act on the page as a click on its button would.

Fields

§

ExtensionOpenSidePanel

The person opened an extension’s side panel beside this page: the engine answers with WebViewEvent::ExtensionSidePanel once the extension says which of its pages it shows here, if any.

Fields

§

ExtensionSidePanelPage

This tab shows extension id’s side panel beside the page used last: to extensions it is no tab and that page is its window, and the extension hears of the panel opening and closing (sidePanel.onOpened, sidePanel.onClosed).

Fields

§

ExtensionCommandKey

The person pressed one of extensions’ keyboard shortcuts (WebViewEvent::ExtensionShortcuts) while the Browser’s own field had the keyboard: the extension’s command runs over this tab’s page, and the page sees nothing of the key.

Fields

§modifiers: KeyModifiers
§

DownloadDecision

Fields

§id: u32
§allow: bool
§

CancelNativeDownload

Fields

§id: u32
§

RetryDownload

Retry a user-selected network GET without navigating the visible page.

Fields

§id: u32
§

CancelAllDownloads

Stop admitting downloads and cancel every pending or active transfer.

§

StartDownload

Start a user-requested download of an absolute HTTP(S) URL.

Fields

§

SetDownloadDestination

Finish WebKit’s asynchronous destination decision with the exact absolute path granted by the desktop file portal.

Fields

§path: String
§

CancelDownload

Cancel an awaiting or active download by its engine-issued stable id.

Fields

Trait Implementations§

§

impl Clone for WebViewCommand

§

fn clone(&self) -> WebViewCommand

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for WebViewCommand

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl PartialEq for WebViewCommand

§

fn eq(&self, other: &WebViewCommand) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for WebViewCommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> AnyEq for T
where T: Any + PartialEq,

§

fn equals(&self, other: &(dyn Any + 'static)) -> bool

§

fn as_any(&self) -> &(dyn Any + 'static)

§

impl<T> AsAny for T
where T: 'static,

§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSend for T
where T: Any + Send,

§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Send + Sync>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T, S> SimdFrom<T, S> for T
where S: Simd,

§

fn simd_from(_simd: S, value: T) -> T

§

impl<F, T, S> SimdInto<T, S> for F
where T: SimdFrom<F, S>, S: Simd,

§

fn simd_into(self, simd: S) -> T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

impl<T> CommonTraits for T
where T: AsAny + Any + Debug + WasmNotSendSync,

§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> Fruit for T
where T: Send + Downcast,

§

impl<T> MaybeSendSync for T
where T: Send + Sync + ?Sized,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,