#[repr(C)]pub(crate) struct HTMLIFrameElement {
htmlelement: HTMLElement,
webview_id: Cell<Option<WebViewId>>,
browsing_context_id: Cell<Option<BrowsingContextId>>,
pipeline_id: Cell<Option<PipelineId>>,
pending_pipeline_id: Cell<Option<PipelineId>>,
about_blank_pipeline_id: Cell<Option<PipelineId>>,
sandbox: MutNullableDom<DOMTokenList>,
sandboxing_flag_set: Cell<Option<SandboxingFlagSet>>,
load_blocker: DomRefCell<Option<LoadBlocker>>,
throttled: Cell<bool>,
script_window_proxies: Rc<ScriptWindowProxies>,
pending_navigation: Cell<bool>,
}Fields§
§htmlelement: HTMLElement§webview_id: Cell<Option<WebViewId>>§browsing_context_id: Cell<Option<BrowsingContextId>>§pipeline_id: Cell<Option<PipelineId>>§pending_pipeline_id: Cell<Option<PipelineId>>§about_blank_pipeline_id: Cell<Option<PipelineId>>§sandbox: MutNullableDom<DOMTokenList>§sandboxing_flag_set: Cell<Option<SandboxingFlagSet>>§load_blocker: DomRefCell<Option<LoadBlocker>>§throttled: Cell<bool>§script_window_proxies: Rc<ScriptWindowProxies>Keeping track of whether the iframe will be navigated outside of the processing of it’s attribute(for example: form navigation). This is necessary to prevent the iframe load event steps from asynchronously running for the initial blank document while script at this point(when the flag is set) expects those to run only for the navigated documented.
Implementations§
Source§impl HTMLIFrameElement
impl HTMLIFrameElement
fn __assert_parent_type(&self)
Source§impl HTMLIFrameElement
impl HTMLIFrameElement
fn start_new_pipeline( &self, load_data: LoadData, pipeline_type: PipelineType, history_handling: NavigationHistoryBehavior, can_gc: CanGc, )
Sourcepub(crate) fn is_initial_blank_document(&self) -> bool
pub(crate) fn is_initial_blank_document(&self) -> bool
When an iframe is first inserted into the document,
an “about:blank” document is created,
and synchronously processed by the script thread.
This initial synchronous load should have no noticeable effect in script.
See the note in iframe_load_event_steps.
Sourcefn process_the_iframe_attributes(&self, mode: ProcessingMode, can_gc: CanGc)
fn process_the_iframe_attributes(&self, mode: ProcessingMode, can_gc: CanGc)
Sourcefn create_nested_browsing_context(&self, can_gc: CanGc)
fn create_nested_browsing_context(&self, can_gc: CanGc)
https://html.spec.whatwg.org/multipage/#create-a-new-child-navigable
Synchronously create a new browsing context(This is not a navigation).
The pipeline started here should remain unnoticeable to script, but this is not easy
to refactor because it appears other features have come to rely on the current behavior.
For now only the iframe load event steps are skipped in some cases for this initial document,
and we still fire load and pageshow events as part of maybe_queue_document_completion.
Also, some controversy spec-wise remains: https://github.com/whatwg/html/issues/4965
fn destroy_nested_browsing_context(&self)
pub(crate) fn update_pipeline_id( &self, new_pipeline_id: PipelineId, reason: UpdatePipelineIdReason, can_gc: CanGc, )
fn new_inherited( local_name: LocalName, prefix: Option<Prefix>, document: &Document, ) -> HTMLIFrameElement
pub(crate) fn new( local_name: LocalName, prefix: Option<Prefix>, document: &Document, proto: Option<HandleObject<'_>>, can_gc: CanGc, ) -> DomRoot<HTMLIFrameElement>
pub(crate) fn pipeline_id(&self) -> Option<PipelineId>
pub(crate) fn browsing_context_id(&self) -> Option<BrowsingContextId>
pub(crate) fn webview_id(&self) -> Option<WebViewId>
pub(crate) fn sandboxing_flag_set(&self) -> SandboxingFlagSet
pub(crate) fn set_throttled(&self, throttled: bool)
Note a pending navigation. This is used to ignore the async load event steps for the initial blank document if those haven’t run yet.
Sourcepub(crate) fn iframe_load_event_steps(
&self,
loaded_pipeline: PipelineId,
can_gc: CanGc,
)
pub(crate) fn iframe_load_event_steps( &self, loaded_pipeline: PipelineId, can_gc: CanGc, )
Sourcefn parse_sandbox_attribute(&self)
fn parse_sandbox_attribute(&self)
Parse the sandbox attribute value given the Attr. This sets the sandboxing_flag_set
property or clears it is the value isn’t specified. Notably, an unspecified sandboxing
attribute (no sandboxing) is different from an empty one (full sandboxing).
Trait Implementations§
§impl Castable for HTMLIFrameElement
impl Castable for HTMLIFrameElement
Source§impl DomObject for HTMLIFrameElement
impl DomObject for HTMLIFrameElement
Source§impl DomObjectWrap<DomTypeHolder> for HTMLIFrameElement
impl DomObjectWrap<DomTypeHolder> for HTMLIFrameElement
Source§const WRAP: unsafe fn(SafeJSContext, &GlobalScope, Option<HandleObject<'_>>, Box<Self>, CanGc) -> Root<Dom<Self>> = {script_bindings::codegen::GenericBindings::HTMLIFrameElementBinding::Wrap::<dom::bindings::codegen::DomTypeHolder::DomTypeHolder> as for<'a, 'b> unsafe fn(script_bindings::script_runtime::JSContext, &'a dom::globalscope::GlobalScope, std::option::Option<js::rust::Handle<'b, *mut js::jsapi::JSObject>>, std::boxed::Box<dom::html::htmliframeelement::HTMLIFrameElement>, script_bindings::script_runtime::CanGc) -> script_bindings::root::Root<script_bindings::root::Dom<dom::html::htmliframeelement::HTMLIFrameElement>>}
const WRAP: unsafe fn(SafeJSContext, &GlobalScope, Option<HandleObject<'_>>, Box<Self>, CanGc) -> Root<Dom<Self>> = {script_bindings::codegen::GenericBindings::HTMLIFrameElementBinding::Wrap::<dom::bindings::codegen::DomTypeHolder::DomTypeHolder> as for<'a, 'b> unsafe fn(script_bindings::script_runtime::JSContext, &'a dom::globalscope::GlobalScope, std::option::Option<js::rust::Handle<'b, *mut js::jsapi::JSObject>>, std::boxed::Box<dom::html::htmliframeelement::HTMLIFrameElement>, script_bindings::script_runtime::CanGc) -> script_bindings::root::Root<script_bindings::root::Dom<dom::html::htmliframeelement::HTMLIFrameElement>>}
Source§impl HTMLIFrameElementMethods<DomTypeHolder> for HTMLIFrameElement
impl HTMLIFrameElementMethods<DomTypeHolder> for HTMLIFrameElement
Source§fn Srcdoc(&self) -> TrustedHTMLOrString<DomTypeHolder>
fn Srcdoc(&self) -> TrustedHTMLOrString<DomTypeHolder>
Source§fn SetSrcdoc(
&self,
value: TrustedHTMLOrString<DomTypeHolder>,
can_gc: CanGc,
) -> Fallible<()>
fn SetSrcdoc( &self, value: TrustedHTMLOrString<DomTypeHolder>, can_gc: CanGc, ) -> Fallible<()>
Source§fn Sandbox(&self, can_gc: CanGc) -> DomRoot<DOMTokenList>
fn Sandbox(&self, can_gc: CanGc) -> DomRoot<DOMTokenList>
https://html.spec.whatwg.org/multipage/#dom-iframe-sandbox
The supported tokens for sandbox’s DOMTokenList are the allowed values defined in the sandbox attribute and supported by the user agent. These range of possible values is defined here: https://html.spec.whatwg.org/multipage/#attr-iframe-sandbox
Source§fn GetContentWindow(&self) -> Option<DomRoot<WindowProxy>>
fn GetContentWindow(&self) -> Option<DomRoot<WindowProxy>>
Source§fn ReferrerPolicy(&self) -> DOMString
fn ReferrerPolicy(&self) -> DOMString
fn Src(&self) -> USVString
fn SetSrc(&self, value: USVString)
fn SetReferrerPolicy(&self, value: DOMString)
fn AllowFullscreen(&self) -> bool
fn SetAllowFullscreen(&self, value: bool)
fn Width(&self) -> DOMString
fn SetWidth(&self, value: DOMString)
fn Height(&self) -> DOMString
fn SetHeight(&self, value: DOMString)
fn FrameBorder(&self) -> DOMString
fn SetFrameBorder(&self, value: DOMString)
fn SetName(&self, value: DOMString)
fn Name(&self) -> DOMString
Source§impl HasParent for HTMLIFrameElement
impl HasParent for HTMLIFrameElement
Source§fn as_parent(&self) -> &HTMLElement
fn as_parent(&self) -> &HTMLElement
This is used in a type assertion to ensure that the source and webidls agree as to what the parent type is
type Parent = HTMLElement
Source§impl IDLInterface for HTMLIFrameElement
impl IDLInterface for HTMLIFrameElement
Source§impl MallocSizeOf for HTMLIFrameElement
impl MallocSizeOf for HTMLIFrameElement
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Source§impl MutDomObject for HTMLIFrameElement
impl MutDomObject for HTMLIFrameElement
Source§impl PartialEq for HTMLIFrameElement
impl PartialEq for HTMLIFrameElement
Source§impl Traceable for HTMLIFrameElement
impl Traceable for HTMLIFrameElement
Source§impl VirtualMethods for HTMLIFrameElement
impl VirtualMethods for HTMLIFrameElement
Source§fn post_connection_steps(&self, can_gc: CanGc)
fn post_connection_steps(&self, can_gc: CanGc)
Source§fn super_type(&self) -> Option<&dyn VirtualMethods>
fn super_type(&self) -> Option<&dyn VirtualMethods>
Source§fn attribute_mutated(
&self,
attr: &Attr,
mutation: AttributeMutation<'_>,
can_gc: CanGc,
)
fn attribute_mutated( &self, attr: &Attr, mutation: AttributeMutation<'_>, can_gc: CanGc, )
Source§fn attribute_affects_presentational_hints(&self, attr: &Attr) -> bool
fn attribute_affects_presentational_hints(&self, attr: &Attr) -> bool
true if given attribute attr affects style of the
given element.Source§fn parse_plain_attribute(&self, name: &LocalName, value: DOMString) -> AttrValue
fn parse_plain_attribute(&self, name: &LocalName, value: DOMString) -> AttrValue
name
on this element.Source§fn bind_to_tree(&self, context: &BindContext<'_>, can_gc: CanGc)
fn bind_to_tree(&self, context: &BindContext<'_>, can_gc: CanGc)
Source§fn unbind_from_tree(&self, context: &UnbindContext<'_>, can_gc: CanGc)
fn unbind_from_tree(&self, context: &UnbindContext<'_>, can_gc: CanGc)
Source§fn children_changed(&self, mutation: &ChildrenMutation<'_>, can_gc: CanGc)
fn children_changed(&self, mutation: &ChildrenMutation<'_>, can_gc: CanGc)
Source§fn handle_event(&self, event: &Event, can_gc: CanGc)
fn handle_event(&self, event: &Event, can_gc: CanGc)
Source§fn adopting_steps(&self, old_doc: &Document, can_gc: CanGc)
fn adopting_steps(&self, old_doc: &Document, can_gc: CanGc)
Source§fn cloning_steps(
&self,
copy: &Node,
maybe_doc: Option<&Document>,
clone_children: CloneChildrenFlag,
can_gc: CanGc,
)
fn cloning_steps( &self, copy: &Node, maybe_doc: Option<&Document>, clone_children: CloneChildrenFlag, can_gc: CanGc, )
impl DerivedFrom<Element> for HTMLIFrameElement
impl DerivedFrom<EventTarget> for HTMLIFrameElement
impl DerivedFrom<HTMLElement> for HTMLIFrameElement
impl DerivedFrom<Node> for HTMLIFrameElement
impl Eq for HTMLIFrameElement
Auto Trait Implementations§
impl !Freeze for HTMLIFrameElement
impl !RefUnwindSafe for HTMLIFrameElement
impl !Send for HTMLIFrameElement
impl !Sync for HTMLIFrameElement
impl Unpin for HTMLIFrameElement
impl !UnwindSafe for HTMLIFrameElement
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<D, T> DomGlobalGeneric<D> for T
impl<D, T> DomGlobalGeneric<D> for T
Source§fn global_(&self, realm: InRealm<'_>) -> Root<Dom<<D as DomTypes>::GlobalScope>>where
Self: Sized,
fn global_(&self, realm: InRealm<'_>) -> Root<Dom<<D as DomTypes>::GlobalScope>>where
Self: Sized,
GlobalScope] of the realm that the DomObject was created in. If this
object is a Node, this will be different from it’s owning Document if adopted by. For
Nodes it’s almost always better to use NodeTraits::owning_global.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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