mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Update hyper to 0.12
This commit is contained in:
parent
95bfaa0a77
commit
024b40b39d
122 changed files with 3835 additions and 3448 deletions
|
@ -35,9 +35,8 @@ use html5ever::{Attribute, ExpandedName, LocalName, QualName};
|
|||
use html5ever::buffer_queue::BufferQueue;
|
||||
use html5ever::tendril::{StrTendril, ByteTendril, IncompleteUtf8};
|
||||
use html5ever::tree_builder::{NodeOrText, TreeSink, NextParserState, QuirksMode, ElementFlags};
|
||||
use hyper::header::ContentType;
|
||||
use hyper::mime::{Mime, SubLevel, TopLevel};
|
||||
use hyper_serde::Serde;
|
||||
use mime::{self, Mime};
|
||||
use msg::constellation_msg::PipelineId;
|
||||
use net_traits::{FetchMetadata, FetchResponseListener, Metadata, NetworkError};
|
||||
use network_listener::PreInvoke;
|
||||
|
@ -697,10 +696,11 @@ impl FetchResponseListener for ParserContext {
|
|||
},
|
||||
Err(_) => None,
|
||||
};
|
||||
let content_type = metadata
|
||||
let content_type: Option<Mime> = metadata
|
||||
.clone()
|
||||
.and_then(|meta| meta.content_type)
|
||||
.map(Serde::into_inner);
|
||||
.map(Serde::into_inner)
|
||||
.map(Into::into);
|
||||
let parser = match ScriptThread::page_headers_available(&self.id, metadata) {
|
||||
Some(parser) => parser,
|
||||
None => return,
|
||||
|
@ -712,7 +712,7 @@ impl FetchResponseListener for ParserContext {
|
|||
self.parser = Some(Trusted::new(&*parser));
|
||||
|
||||
match content_type {
|
||||
Some(ContentType(Mime(TopLevel::Image, _, _))) => {
|
||||
Some(ref mime) if mime.type_() == mime::IMAGE => {
|
||||
self.is_synthesized_document = true;
|
||||
let page = "<html><body></body></html>".into();
|
||||
parser.push_string_input_chunk(page);
|
||||
|
@ -725,14 +725,14 @@ impl FetchResponseListener for ParserContext {
|
|||
doc_body.AppendChild(&DomRoot::upcast::<Node>(img)).expect("Appending failed");
|
||||
|
||||
},
|
||||
Some(ContentType(Mime(TopLevel::Text, SubLevel::Plain, _))) => {
|
||||
Some(ref mime) if mime.type_() == mime::TEXT && mime.subtype() == mime::PLAIN => {
|
||||
// https://html.spec.whatwg.org/multipage/#read-text
|
||||
let page = "<pre>\n".into();
|
||||
parser.push_string_input_chunk(page);
|
||||
parser.parse_sync();
|
||||
parser.tokenizer.borrow_mut().set_plaintext_state();
|
||||
},
|
||||
Some(ContentType(Mime(TopLevel::Text, SubLevel::Html, _))) => {
|
||||
Some(ref mime) if mime.type_() == mime::TEXT && mime.subtype() == mime::HTML => {
|
||||
// Handle text/html
|
||||
if let Some(reason) = ssl_error {
|
||||
self.is_synthesized_document = true;
|
||||
|
@ -749,15 +749,18 @@ impl FetchResponseListener for ParserContext {
|
|||
parser.parse_sync();
|
||||
}
|
||||
},
|
||||
Some(ContentType(Mime(TopLevel::Text, SubLevel::Xml, _))) | // Handle text/xml, application/xml
|
||||
Some(ContentType(Mime(TopLevel::Application, SubLevel::Xml, _))) => {},
|
||||
Some(ContentType(Mime(TopLevel::Application, SubLevel::Ext(ref sub), _)))
|
||||
if sub.as_str() == "xhtml+xml".to_owned() => {}, // Handle xhtml (application/xhtml+xml)
|
||||
Some(ContentType(Mime(toplevel, sublevel, _))) => {
|
||||
// Handle text/xml, application/xml
|
||||
Some(ref mime) if (mime.type_() == mime::TEXT && mime.subtype() == mime::XML) ||
|
||||
(mime.type_() == mime::APPLICATION && mime.subtype() == mime::XML) => {},
|
||||
Some(ref mime) if mime.type_() == mime::APPLICATION &&
|
||||
mime.subtype().as_str() == "xhtml" &&
|
||||
mime.suffix() == Some(mime::XML)
|
||||
=> {}, // Handle xhtml (application/xhtml+xml)
|
||||
Some(ref mime) => {
|
||||
// Show warning page for unknown mime types.
|
||||
let page = format!("<html><body><p>Unknown content type ({}/{}).</p></body></html>",
|
||||
toplevel.as_str(),
|
||||
sublevel.as_str());
|
||||
mime.type_().as_str(),
|
||||
mime.subtype().as_str());
|
||||
self.is_synthesized_document = true;
|
||||
parser.push_string_input_chunk(page);
|
||||
parser.parse_sync();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue