aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/parse/html.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/script/parse/html.rs')
-rw-r--r--components/script/parse/html.rs30
1 files changed, 17 insertions, 13 deletions
diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs
index c4417459f96..836eac6dfba 100644
--- a/components/script/parse/html.rs
+++ b/components/script/parse/html.rs
@@ -180,6 +180,22 @@ pub fn parse_html(document: JSRef<Document>,
task_state::enter(IN_HTML_PARSER);
}
+ fn parse_progress(parser: &JSRef<ServoHTMLParser>, url: &Url, load_response: &LoadResponse) {
+ for msg in load_response.progress_port.iter() {
+ match msg {
+ ProgressMsg::Payload(data) => {
+ // FIXME: use Vec<u8> (html5ever #34)
+ let data = UTF_8.decode(data.as_slice(), DecoderTrap::Replace).unwrap();
+ parser.parse_chunk(data);
+ }
+ ProgressMsg::Done(Err(err)) => {
+ panic!("Failed to load page URL {}, error: {}", url.serialize(), err);
+ }
+ ProgressMsg::Done(Ok(())) => break,
+ }
+ }
+ };
+
match input {
HTMLInput::InputString(s) => {
parser.parse_chunk(s);
@@ -205,19 +221,7 @@ pub fn parse_html(document: JSRef<Document>,
parse_progress(&parser, url, &load_response);
},
_ => {
- for msg in load_response.progress_port.iter() {
- match msg {
- ProgressMsg::Payload(data) => {
- // FIXME: use Vec<u8> (html5ever #34)
- let data = UTF_8.decode(data.as_slice(), DecoderTrap::Replace).unwrap();
- parser.parse_chunk(data);
- }
- ProgressMsg::Done(Err(err)) => {
- panic!("Failed to load page URL {}, error: {}", url.serialize(), err);
- }
- ProgressMsg::Done(Ok(())) => break,
- }
- }
+ parse_progress(&parser, url, &load_response);
}
}
}