diff options
author | Ms2ger <Ms2ger@gmail.com> | 2016-07-15 17:00:44 +0200 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2016-07-16 12:24:34 +0200 |
commit | 48962004678e5abc9b31eaf4625cfd1965b9d056 (patch) | |
tree | 2da3fbdbc5d562a96ee1622186ba27a5272f214d /components/script/dom/htmlscriptelement.rs | |
parent | 180569f65f38cad5cb95092b52ef68ab587712f2 (diff) | |
download | servo-48962004678e5abc9b31eaf4625cfd1965b9d056.tar.gz servo-48962004678e5abc9b31eaf4625cfd1965b9d056.zip |
Pull HTMLScriptElement::load inside-out.
Diffstat (limited to 'components/script/dom/htmlscriptelement.rs')
-rw-r--r-- | components/script/dom/htmlscriptelement.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index 5f38747bfe2..8160400eb35 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -61,7 +61,7 @@ pub struct HTMLScriptElement { parser_document: JS<Document>, /// The source this script was loaded from - load: DOMRefCell<Option<ScriptOrigin>>, + load: DOMRefCell<Option<Result<ScriptOrigin, NetworkError>>>, } impl HTMLScriptElement { @@ -113,7 +113,7 @@ static SCRIPT_JS_MIMES: StaticStringVec = &[ #[derive(HeapSizeOf, JSTraceable)] pub enum ScriptOrigin { Internal(DOMString, Url), - External(Result<(String, Url), NetworkError>), + External(String, Url), } /// The context required for asynchronously loading an external script source. @@ -172,14 +172,14 @@ impl AsyncResponseListener for ScriptContext { // Step 7. let source_text = encoding.decode(&self.data, DecoderTrap::Replace).unwrap(); - (source_text, metadata.final_url) + ScriptOrigin::External(source_text, metadata.final_url) }); // Step 9. // https://html.spec.whatwg.org/multipage/#prepare-a-script // Step 18.6 (When the chosen algorithm asynchronously completes). let elem = self.elem.root(); - *elem.load.borrow_mut() = Some(ScriptOrigin::External(load)); + *elem.load.borrow_mut() = Some(load); elem.ready_to_be_parser_executed.set(true); let document = document_from_node(elem.r()); @@ -374,13 +374,13 @@ impl HTMLScriptElement { // TODO: check for script nesting levels. doc.get_script_blocking_stylesheets_count() > 0 { doc.set_pending_parsing_blocking_script(Some(self)); - *self.load.borrow_mut() = Some(ScriptOrigin::Internal(text, base_url)); + *self.load.borrow_mut() = Some(Ok(ScriptOrigin::Internal(text, base_url))); self.ready_to_be_parser_executed.set(true); // Step 20.f: otherwise. } else { assert!(!text.is_empty()); self.ready_to_be_parser_executed.set(true); - *self.load.borrow_mut() = Some(ScriptOrigin::Internal(text, base_url)); + *self.load.borrow_mut() = Some(Ok(ScriptOrigin::Internal(text, base_url))); self.execute(); return NextParserState::Continue; } @@ -411,18 +411,18 @@ impl HTMLScriptElement { let load = self.load.borrow_mut().take().unwrap(); let (source, external, url) = match load { // Step 2. - ScriptOrigin::External(Err(e)) => { + Err(e) => { warn!("error loading script {:?}", e); self.dispatch_error_event(); return; } - ScriptOrigin::External(Ok((text, url))) => { + Ok(ScriptOrigin::External(text, url)) => { debug!("loading external script, url = {}", url); (DOMString::from(text), true, url) }, - ScriptOrigin::Internal(text, url) => { + Ok(ScriptOrigin::Internal(text, url)) => { (text, false, url) } }; |