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>
https://html.spec.whatwg.org/multipage/#creating-a-module-script Step 7-11.
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>
https://html.spec.whatwg.org/multipage/#fetch-the-descendants-of-and-link-a-module-script Step 5-2.
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>)
https://html.spec.whatwg.org/multipage/#finding-the-first-parse-error
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
)
https://html.spec.whatwg.org/multipage/#fetch-the-descendants-of-a-module-script
sourcefn advance_finished_and_link(&self, global: &GlobalScope)
fn advance_finished_and_link(&self, global: &GlobalScope)
https://html.spec.whatwg.org/multipage/#fetch-the-descendants-of-and-link-a-module-script step 4-7.