diff options
author | Manish Goregaokar <manishsmail@gmail.com> | 2014-08-26 19:07:45 +0530 |
---|---|---|
committer | Manish Goregaokar <manishsmail@gmail.com> | 2014-08-26 19:07:45 +0530 |
commit | 64f05116fc9e4a261a6b40d13ab7667db7fc0592 (patch) | |
tree | 8ed6b1ad84f89ac11de6bc27e035d717a6fd73c6 /src/components/script/html/hubbub_html_parser.rs | |
parent | a0b0f7cb2e8178ae91e0a439acdbc8dc14a56ec0 (diff) | |
parent | 22ed3d620d097fad1e4e7e82745f19800ca0b0e9 (diff) | |
download | servo-64f05116fc9e4a261a6b40d13ab7667db7fc0592.tar.gz servo-64f05116fc9e4a261a6b40d13ab7667db7fc0592.zip |
Merge pull request #3131 from Manishearth/image
Load bare images within an HTML document (#3108); r=Ms2ger
Diffstat (limited to 'src/components/script/html/hubbub_html_parser.rs')
-rw-r--r-- | src/components/script/html/hubbub_html_parser.rs | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/components/script/html/hubbub_html_parser.rs b/src/components/script/html/hubbub_html_parser.rs index ea34398e39e..482d4a7ab7b 100644 --- a/src/components/script/html/hubbub_html_parser.rs +++ b/src/components/script/html/hubbub_html_parser.rs @@ -582,19 +582,24 @@ pub fn parse_html(page: &Page, }; parser.set_tree_handler(&mut tree_handler); debug!("set tree handler"); - debug!("loaded page"); - loop { - match load_response.progress_port.recv() { - Payload(data) => { - debug!("received data"); - parser.parse_chunk(data.as_slice()); - } - Done(Err(err)) => { - fail!("Failed to load page URL {:s}, error: {:s}", url.serialize(), err); - } - Done(..) => { - break; + match load_response.metadata.content_type { + Some((ref t, _)) if t.as_slice().eq_ignore_ascii_case("image") => { + let page = format!("<html><body><img src='{:s}' /></body></html>", base_url.serialize()); + parser.parse_chunk(page.into_bytes().as_slice()); + }, + _ => loop { + match load_response.progress_port.recv() { + Payload(data) => { + debug!("received data"); + parser.parse_chunk(data.as_slice()); + } + Done(Err(err)) => { + fail!("Failed to load page URL {:s}, error: {:s}", url.serialize(), err); + } + Done(..) => { + break; + } } } } |