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 )
fn append_dynamic_module_handler( &self, owner: ModuleOwner, module_identity: ModuleIdentity, dynamic_module: RootedTraceableBox<DynamicModule> )
source§impl ModuleTree
impl ModuleTree
sourcefn compile_module_script(
&self,
global: &GlobalScope,
owner: ModuleOwner,
module_script_text: Rc<DOMString>,
url: ServoUrl,
options: ScriptFetchOptions
) -> Result<ModuleObject, RethrowError>
fn compile_module_script( &self, global: &GlobalScope, owner: ModuleOwner, module_script_text: Rc<DOMString>, url: ServoUrl, options: ScriptFetchOptions ) -> Result<ModuleObject, RethrowError>
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>
pub fn execute_module( &self, global: &GlobalScope, module_record: HandleObject, eval_result: MutableHandleValue ) -> Result<(), RethrowError>
pub fn report_error(&self, global: &GlobalScope)
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
)
fn fetch_module_descendants( &self, owner: &ModuleOwner, destination: Destination, options: &ScriptFetchOptions, parent_identity: ModuleIdentity )
Trait Implementations§
Auto Trait Implementations§
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> 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>where
F: FnOnce(&Self) -> bool,
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 moresource§impl<T> MaybeBoxed<Box<T, Global>> for T
impl<T> MaybeBoxed<Box<T, Global>> for T
source§fn maybe_boxed(self) -> Box<T, Global>
fn maybe_boxed(self) -> Box<T, Global>
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