Skip to main content

ConstellationWebView

Struct ConstellationWebView 

Source
pub(crate) struct ConstellationWebView {
Show 15 fields webview_id: WebViewId, pub active_top_level_pipeline_id: Option<PipelineId>, pub active_top_level_pipeline_epoch: Epoch, pub pending_changes: Vec<SessionHistoryChange>, pub focused_browsing_context_id: BrowsingContextId, pub hovered_browsing_context_id: Option<BrowsingContextId>, pub last_mouse_move_point: Point2D<f32, CSSPixel>, pub session_history: JointSessionHistory, pub session_history_traversal_request_queue: VecDeque<SessionHistoryTraversalRequest>, pub ongoing_history_traversal_request: Option<OngoingHistoryTraversalRequest>, pending_viewport_details: HashMap<BrowsingContextId, ViewportDetails>, pub user_content_manager_id: Option<UserContentManagerId>, theme: Theme, pub accessibility_active: bool, screenshot_readiness_requests: Vec<ScreenshotReadinessRequest>,
}
Expand description

The Constellation’s view of a WebView in the embedding layer. This tracks all of the Constellation state for this WebView.

Fields§

§webview_id: WebViewId§active_top_level_pipeline_id: Option<PipelineId>

The PipelineId of the currently active pipeline at the top level of this WebView.

§active_top_level_pipeline_epoch: Epoch

A counter for changes to Self::active_top_level_pipeline_id.

§pending_changes: Vec<SessionHistoryChange>

When a navigation is performed, we do not immediately update the session history, instead we ask the event loop to begin loading the new document, and do not update the browsing context until the document is active. Between starting the load and it activating, we store a SessionHistoryChange object for the navigation in progress.

§focused_browsing_context_id: BrowsingContextId

The currently focused browsing context in this webview for key events. The focused pipeline is the current entry of the focused browsing context.

§hovered_browsing_context_id: Option<BrowsingContextId>

The BrowsingContextId of the currently hovered browsing context, to use for knowing which frame is currently receiving cursor events.

§last_mouse_move_point: Point2D<f32, CSSPixel>

The last mouse move point in the coordinate space of the Pipeline that it happened int.

§session_history: JointSessionHistory

The joint session history for this webview.

§session_history_traversal_request_queue: VecDeque<SessionHistoryTraversalRequest>

https://html.spec.whatwg.org/multipage/#tn-session-history-traversal-queue

A queue of traversals that should be applied sequentially. The next item from the queue is applied once Self::ongoing_history_traversal_request has finished.

§ongoing_history_traversal_request: Option<OngoingHistoryTraversalRequest>

The currently running session history traversal. This will be completed once all Pipelines in a traversal become active or their load fails for some other reason.

§pending_viewport_details: HashMap<BrowsingContextId, ViewportDetails>

Pending viewport changes for browsing contexts that are not yet known to the constellation.

§user_content_manager_id: Option<UserContentManagerId>

The UserContentManagerId for all pipelines in this WebView. This is Some if the embedder has set a UserContentManager using the WebViewBuilder API and it is None otherwise.

§theme: Theme

The Theme that this ConstellationWebView uses. This is communicated to all ScriptThreads so that they know how to render the contents of a particular `WebView.

§accessibility_active: bool

Whether accessibility is active for this webview.

Set by crate::Constellation::set_accessibility_active(), and forwarded to the webview’s active pipelines (of those that represent documents) at any given moment via ScriptThreadMessage::SetAccessibilityActive in set_accessibility_active() and crate::Constellation::set_frame_tree_for_webview().

§screenshot_readiness_requests: Vec<ScreenshotReadinessRequest>

Pending screenshot readiness requests. These are collected until the screenshot is ready to take place, at which point the Constellation informs the renderer that it can start the process of taking the screenshot.

Implementations§

Source§

impl ConstellationWebView

Source

pub(crate) fn new( webview_id: WebViewId, focused_browsing_context_id: BrowsingContextId, user_content_manager_id: Option<UserContentManagerId>, ) -> Self

Source

pub(crate) fn set_theme(&mut self, new_theme: Theme) -> bool

Set the Theme on this ConstellationWebView returning true if the theme changed.

Source

pub(crate) fn theme(&self) -> Theme

Get the Theme of this ConstellationWebView.

Source

fn target_pipeline_id_for_input_event( &self, event: &ConstellationInputEvent, browsing_contexts: &FxHashMap<BrowsingContextId, BrowsingContext>, ) -> Option<PipelineId>

Source

pub(crate) fn forward_input_event( &mut self, event: ConstellationInputEvent, pipelines: &FxHashMap<PipelineId, Pipeline>, browsing_contexts: &FxHashMap<BrowsingContextId, BrowsingContext>, ) -> bool

Forward the InputEvent to this ConstellationWebView. Returns false if the event could not be forwarded or true otherwise.

Source

pub(crate) fn close_browsing_context( &mut self, browsing_context_id: BrowsingContextId, )

Source

pub(crate) fn maybe_finish_ongoing_session_history_traversal_request( &mut self, ) -> Option<SessionHistoryTraversalRequest>

If there is an ongoing history traversal request that is waiting on documents to reload, check to see if none of its pipelines are awaiting activation. If that’s the case unset the ongoing request and return it.

Source

pub(crate) fn has_pending_change(&self) -> bool

Source

pub(crate) fn pipeline_is_pending(&self, pipeline_id: PipelineId) -> bool

Source

pub(crate) fn add_pending_change(&mut self, change: SessionHistoryChange)

Source

pub(crate) fn remove_pending_change_for_pipeline( &mut self, pipeline_id: PipelineId, ) -> Option<SessionHistoryChange>

Source

pub(crate) fn handle_screenshot_readiness_request( &mut self, browsing_contexts: &FxHashMap<BrowsingContextId, BrowsingContext>, pipelines: &FxHashMap<PipelineId, Pipeline>, )

Source

pub(crate) fn send_screenshot_readiness_requests_to_pipelines( &mut self, browsing_contexts: &FxHashMap<BrowsingContextId, BrowsingContext>, pipelines: &FxHashMap<PipelineId, Pipeline>, )

Source

pub(crate) fn handle_screenshot_readiness_response( &mut self, updated_pipeline_id: PipelineId, response: ScreenshotReadinessResponse, paint_proxy: &PaintProxy, )

Source

pub(crate) fn add_viewport_details( &mut self, browsing_context_id: BrowsingContextId, viewport_details: ViewportDetails, )

Source

pub(crate) fn take_pending_viewport_details( &mut self, browsing_context_id: &BrowsingContextId, ) -> Option<ViewportDetails>

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
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> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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
Source§

impl<T> MaybeBoxed<Box<T>> for T

Source§

fn maybe_boxed(self) -> Box<T>

Convert
Source§

impl<T> MaybeBoxed<T> for T

Source§

fn maybe_boxed(self) -> T

Convert
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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

Source§

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

Source§

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

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.
Source§

impl<T> Upcast<T> for T

Source§

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

Source§

impl<T> WithSubscriber for T

Source§

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
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

Source§

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

Source§

impl<T> MaybeSendSync for T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

impl<T> WasmNotSendSync for T

Source§

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