diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index f78949d924c..040629bf672 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -33,7 +33,7 @@ use string_cache::QualName; pub enum HTMLInput { InputString(String), - InputUrl(Url), + InputUrl(Url, LoadResponse), } trait SinkHelpers { @@ -163,8 +163,7 @@ impl<'a> TreeSink for servohtmlparser::Sink { pub fn parse_html(document: JSRef, input: HTMLInput, - base_url: Url, - load_response: Option) { + base_url: Url) { let parser = ServoHTMLParser::new(Some(base_url.clone()), document).root(); let parser: JSRef = *parser; @@ -174,8 +173,7 @@ pub fn parse_html(document: JSRef, InputString(s) => { parser.parse_chunk(s); } - InputUrl(url) => { - let load_response = load_response.unwrap(); + InputUrl(url, load_response) => { match load_response.metadata.content_type { Some((ref t, _)) if t.as_slice().eq_ignore_ascii_case("image") => { let page = format!("", base_url.serialize()); diff --git a/components/script/script_task.rs b/components/script/script_task.rs index da043150b53..02c30e52a42 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -744,7 +744,7 @@ impl ScriptTask { }); } - let (parser_input, base_url, load_response) = if !is_javascript { + let (parser_input, base_url) = if !is_javascript { // Wait for the LoadResponse so that the parser knows the final URL. let (input_chan, input_port) = channel(); self.resource_task.send(Load(NetLoadData { @@ -773,15 +773,15 @@ impl ScriptTask { *page.mut_url() = Some((base_url.clone(), true)); } - (InputUrl(url.clone()), base_url, Some(load_response)) + (InputUrl(url.clone(), load_response), base_url) } else { let evalstr = load_data.url.non_relative_scheme_data().unwrap(); let jsval = window.evaluate_js_with_result(evalstr); let strval = FromJSValConvertible::from_jsval(self.get_cx(), jsval, Empty); - (InputString(strval.unwrap_or("".to_string())), doc_url, None) + (InputString(strval.unwrap_or("".to_string())), doc_url) }; - parse_html(*document, parser_input, base_url, load_response); + parse_html(*document, parser_input, base_url); url = page.get_url().clone(); document.set_ready_state(DocumentReadyStateValues::Interactive);