Struct script::script_module::ModuleTree
source · pub struct ModuleTree {
url: ServoUrl,
text: DomRefCell<Rc<DOMString>>,
record: DomRefCell<Option<ModuleObject>>,
status: DomRefCell<ModuleStatus>,
parent_identities: DomRefCell<IndexSet<ModuleIdentity>>,
descendant_urls: DomRefCell<IndexSet<ServoUrl>>,
incomplete_fetch_urls: DomRefCell<IndexSet<ServoUrl>>,
visited_urls: DomRefCell<HashSet<ServoUrl>>,
rethrow_error: DomRefCell<Option<RethrowError>>,
network_error: DomRefCell<Option<NetworkError>>,
promise: DomRefCell<Option<Rc<Promise>>>,
external: bool,
}
Fields§
§url: ServoUrl
§text: DomRefCell<Rc<DOMString>>
§record: DomRefCell<Option<ModuleObject>>
§status: DomRefCell<ModuleStatus>
§parent_identities: DomRefCell<IndexSet<ModuleIdentity>>
§descendant_urls: DomRefCell<IndexSet<ServoUrl>>
§incomplete_fetch_urls: DomRefCell<IndexSet<ServoUrl>>
§visited_urls: DomRefCell<HashSet<ServoUrl>>
§rethrow_error: DomRefCell<Option<RethrowError>>
§network_error: DomRefCell<Option<NetworkError>>
§promise: DomRefCell<Option<Rc<Promise>>>
§external: bool
Implementations§
source§impl ModuleTree
impl ModuleTree
pub fn new( url: ServoUrl, external: bool, visited_urls: HashSet<ServoUrl>, ) -> Self
pub fn get_status(&self) -> ModuleStatus
pub fn set_status(&self, status: ModuleStatus)
pub fn get_record(&self) -> &DomRefCell<Option<ModuleObject>>
pub fn set_record(&self, record: ModuleObject)
pub fn get_rethrow_error(&self) -> &DomRefCell<Option<RethrowError>>
pub fn set_rethrow_error(&self, rethrow_error: RethrowError)
pub fn get_network_error(&self) -> &DomRefCell<Option<NetworkError>>
pub fn set_network_error(&self, network_error: NetworkError)
pub fn get_text(&self) -> &DomRefCell<Rc<DOMString>>
pub fn set_text(&self, module_text: Rc<DOMString>)
pub fn get_incomplete_fetch_urls(&self) -> &DomRefCell<IndexSet<ServoUrl>>
pub fn get_descendant_urls(&self) -> &DomRefCell<IndexSet<ServoUrl>>
pub fn get_parent_urls(&self) -> IndexSet<ServoUrl>
pub fn insert_parent_identity(&self, parent_identity: ModuleIdentity)
pub fn insert_incomplete_fetch_url(&self, dependency: &ServoUrl)
pub fn remove_incomplete_fetch_url(&self, dependency: &ServoUrl)
sourcefn recursive_check_descendants(
module_tree: &ModuleTree,
module_map: &HashMap<ServoUrl, Rc<ModuleTree>>,
discovered_urls: &mut HashSet<ServoUrl>,
) -> bool
fn recursive_check_descendants( module_tree: &ModuleTree, module_map: &HashMap<ServoUrl, Rc<ModuleTree>>, discovered_urls: &mut HashSet<ServoUrl>, ) -> bool
recursively checks if all of the transitive descendants are in the FetchingDescendants or later status
fn has_all_ready_descendants(&self, global: &GlobalScope) -> bool
fn append_handler( &self, owner: ModuleOwner, module_identity: ModuleIdentity, fetch_options: ScriptFetchOptions, can_gc: CanGc, )
fn append_dynamic_module_handler( &self, owner: ModuleOwner, module_identity: ModuleIdentity, dynamic_module: RootedTraceableBox<DynamicModule>, can_gc: CanGc, )
source§impl ModuleTree
impl ModuleTree
sourcefn compile_module_script(
&self,
global: &GlobalScope,
owner: ModuleOwner,
module_script_text: Rc<DOMString>,
url: &ServoUrl,
options: ScriptFetchOptions,
module_script: RustMutableHandleObject<'_>,
inline: bool,
_can_gc: CanGc,
) -> Result<(), RethrowError>
fn compile_module_script( &self, global: &GlobalScope, owner: ModuleOwner, module_script_text: Rc<DOMString>, url: &ServoUrl, options: ScriptFetchOptions, module_script: RustMutableHandleObject<'_>, inline: bool, _can_gc: CanGc, ) -> Result<(), RethrowError>
https://html.spec.whatwg.org/multipage/#creating-a-module-script Step 7-11. Although the CanGc argument appears unused, it represents the GC operations that can occur as part of compiling a script.
sourcepub fn instantiate_module_tree(
&self,
global: &GlobalScope,
module_record: HandleObject,
) -> Result<(), RethrowError>
pub fn instantiate_module_tree( &self, global: &GlobalScope, module_record: HandleObject, ) -> Result<(), RethrowError>
sourcepub fn execute_module(
&self,
global: &GlobalScope,
module_record: HandleObject,
eval_result: MutableHandleValue,
_can_gc: CanGc,
) -> Result<(), RethrowError>
pub fn execute_module( &self, global: &GlobalScope, module_record: HandleObject, eval_result: MutableHandleValue, _can_gc: CanGc, ) -> Result<(), RethrowError>
Execute the provided module, storing the evaluation return value in the provided mutable handle. Although the CanGc appears unused, it represents the GC operations possible when evluating arbitrary JS.
pub fn report_error(&self, global: &GlobalScope, can_gc: CanGc)
fn resolve_requested_module_specifiers( &self, global: &GlobalScope, module_object: HandleObject, base_url: &ServoUrl, ) -> Result<IndexSet<ServoUrl>, RethrowError>
sourcefn resolve_module_specifier(
cx: *mut JSContext,
url: &ServoUrl,
specifier: RawHandle<*mut JSString>,
) -> Result<ServoUrl, UrlParseError>
fn resolve_module_specifier( cx: *mut JSContext, url: &ServoUrl, specifier: RawHandle<*mut JSString>, ) -> Result<ServoUrl, UrlParseError>
The following module specifiers are allowed by the spec:
- a valid absolute URL
- a valid relative URL that starts with “/”, “./” or “../”
Bareword module specifiers are currently disallowed as these may be given special meanings in the future. https://html.spec.whatwg.org/multipage/#resolve-a-module-specifier
sourcefn find_first_parse_error(
&self,
global: &GlobalScope,
discovered_urls: &mut HashSet<ServoUrl>,
) -> (Option<NetworkError>, Option<RethrowError>)
fn find_first_parse_error( &self, global: &GlobalScope, discovered_urls: &mut HashSet<ServoUrl>, ) -> (Option<NetworkError>, Option<RethrowError>)
sourcefn fetch_module_descendants(
&self,
owner: &ModuleOwner,
destination: Destination,
options: &ScriptFetchOptions,
parent_identity: ModuleIdentity,
can_gc: CanGc,
)
fn fetch_module_descendants( &self, owner: &ModuleOwner, destination: Destination, options: &ScriptFetchOptions, parent_identity: ModuleIdentity, can_gc: CanGc, )
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ModuleTree
impl !RefUnwindSafe for ModuleTree
impl !Send for ModuleTree
impl !Sync for ModuleTree
impl Unpin for ModuleTree
impl !UnwindSafe for ModuleTree
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
Mutably borrows from an owned value. Read more
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>
Creates a filterable data provider with the given name for debugging. Read more
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>
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 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>
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 moresource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert