aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/html/hubbub_html_parser.rs
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2014-08-26 19:07:45 +0530
committerManish Goregaokar <manishsmail@gmail.com>2014-08-26 19:07:45 +0530
commit64f05116fc9e4a261a6b40d13ab7667db7fc0592 (patch)
tree8ed6b1ad84f89ac11de6bc27e035d717a6fd73c6 /src/components/script/html/hubbub_html_parser.rs
parenta0b0f7cb2e8178ae91e0a439acdbc8dc14a56ec0 (diff)
parent22ed3d620d097fad1e4e7e82745f19800ca0b0e9 (diff)
downloadservo-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.rs29
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;
+ }
}
}
}