pub struct IFrameManager { /* private fields */ }Expand description
Manages IFrame lifecycle, including re-invocation and PipelineId generation
Tracks which IFrames have been invoked, assigns unique DOM IDs to nested IFrames, and determines when IFrames need to be re-invoked (e.g., when the container bounds expand or the user scrolls near an edge).
Implementations§
Source§impl IFrameManager
impl IFrameManager
Sourcepub fn begin_frame(&mut self)
pub fn begin_frame(&mut self)
Called at the start of each frame (currently a no-op)
Sourcepub fn get_or_create_nested_dom_id(
&mut self,
dom_id: DomId,
node_id: NodeId,
) -> DomId
pub fn get_or_create_nested_dom_id( &mut self, dom_id: DomId, node_id: NodeId, ) -> DomId
Gets or creates a unique nested DOM ID for an IFrame
Returns the existing DOM ID if the IFrame was previously registered, otherwise allocates a new unique ID and initializes the IFrame state.
Sourcepub fn get_nested_dom_id(&self, dom_id: DomId, node_id: NodeId) -> Option<DomId>
pub fn get_nested_dom_id(&self, dom_id: DomId, node_id: NodeId) -> Option<DomId>
Gets the nested DOM ID for an IFrame if it exists
Sourcepub fn get_or_create_pipeline_id(
&mut self,
dom_id: DomId,
node_id: NodeId,
) -> PipelineId
pub fn get_or_create_pipeline_id( &mut self, dom_id: DomId, node_id: NodeId, ) -> PipelineId
Gets or creates a WebRender PipelineId for an IFrame
PipelineIds are used by WebRender to identify distinct rendering contexts.
Sourcepub fn was_iframe_invoked(&self, dom_id: DomId, node_id: NodeId) -> bool
pub fn was_iframe_invoked(&self, dom_id: DomId, node_id: NodeId) -> bool
Returns whether the IFrame has ever been invoked
Sourcepub fn update_iframe_info(
&mut self,
dom_id: DomId,
node_id: NodeId,
scroll_size: LogicalSize,
virtual_scroll_size: LogicalSize,
) -> Option<()>
pub fn update_iframe_info( &mut self, dom_id: DomId, node_id: NodeId, scroll_size: LogicalSize, virtual_scroll_size: LogicalSize, ) -> Option<()>
Updates the IFrame’s content size information
Called after the IFrame callback returns to record the actual content dimensions. If the new size is larger than previously recorded, clears the expansion flag to allow BoundsExpanded re-invocation.
Sourcepub fn mark_invoked(
&mut self,
dom_id: DomId,
node_id: NodeId,
reason: IFrameCallbackReason,
) -> Option<()>
pub fn mark_invoked( &mut self, dom_id: DomId, node_id: NodeId, reason: IFrameCallbackReason, ) -> Option<()>
Marks an IFrame as invoked for a specific reason
Updates internal state flags based on the callback reason to prevent duplicate callbacks for the same trigger condition.
Sourcepub fn force_reinvoke(&mut self, dom_id: DomId, node_id: NodeId) -> Option<()>
pub fn force_reinvoke(&mut self, dom_id: DomId, node_id: NodeId) -> Option<()>
Force an IFrame to be re-invoked on the next layout pass
Clears all invocation flags, causing check_reinvoke() to return InitialRender. Used by trigger_iframe_rerender() to manually refresh IFrame content.
Sourcepub fn check_reinvoke(
&mut self,
dom_id: DomId,
node_id: NodeId,
scroll_manager: &ScrollManager,
layout_bounds: LogicalRect,
) -> Option<IFrameCallbackReason>
pub fn check_reinvoke( &mut self, dom_id: DomId, node_id: NodeId, scroll_manager: &ScrollManager, layout_bounds: LogicalRect, ) -> Option<IFrameCallbackReason>
Checks whether an IFrame needs to be re-invoked and returns the reason
Returns Some(reason) if the IFrame callback should be invoked:
InitialRender: IFrame has never been invokedBoundsExpanded: Container grew larger than contentEdgeScrolled: User scrolled near an edge (for lazy loading)
Returns None if no re-invocation is needed.
Trait Implementations§
Source§impl Clone for IFrameManager
impl Clone for IFrameManager
Source§fn clone(&self) -> IFrameManager
fn clone(&self) -> IFrameManager
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IFrameManager
impl Debug for IFrameManager
Source§impl Default for IFrameManager
impl Default for IFrameManager
Source§fn default() -> IFrameManager
fn default() -> IFrameManager
Auto Trait Implementations§
impl Freeze for IFrameManager
impl RefUnwindSafe for IFrameManager
impl Send for IFrameManager
impl Sync for IFrameManager
impl Unpin for IFrameManager
impl UnwindSafe for IFrameManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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