mirror of
https://github.com/servo/servo.git
synced 2025-08-11 08:25:32 +01:00
Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d.
This commit is contained in:
parent
b8900782b0
commit
466faac2a5
223 changed files with 4414 additions and 4105 deletions
|
@ -25,3 +25,6 @@ git = "https://github.com/servo/rust-stb-image"
|
|||
|
||||
[dependencies.url]
|
||||
git = "https://github.com/servo/rust-url"
|
||||
|
||||
[dependencies.time]
|
||||
git = "https://github.com/rust-lang/time"
|
||||
|
|
|
@ -2,14 +2,16 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use resource_task::{TargetedLoadResponse, Metadata, Done, LoadData, start_sending, ResponseSenders};
|
||||
use resource_task::{TargetedLoadResponse, Metadata, LoadData, start_sending, ResponseSenders};
|
||||
use resource_task::ProgressMsg::Done;
|
||||
use file_loader;
|
||||
|
||||
use std::io::fs::PathExtensions;
|
||||
use url::Url;
|
||||
use hyper::http::RawStatus;
|
||||
use servo_util::resource_files::resources_dir_path;
|
||||
|
||||
use std::io::fs::PathExtensions;
|
||||
use std::str::Slice;
|
||||
|
||||
pub fn factory(mut load_data: LoadData, start_chan: Sender<TargetedLoadResponse>) {
|
||||
let senders = ResponseSenders {
|
||||
|
@ -23,7 +25,7 @@ pub fn factory(mut load_data: LoadData, start_chan: Sender<TargetedLoadResponse>
|
|||
content_type: Some(("text".to_string(), "html".to_string())),
|
||||
charset: Some("utf-8".to_string()),
|
||||
headers: None,
|
||||
status: Some(RawStatus(200, "OK".into_string()))
|
||||
status: Some(RawStatus(200, Slice("OK")))
|
||||
});
|
||||
chan.send(Done(Ok(())));
|
||||
return
|
||||
|
|
|
@ -2,12 +2,13 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use resource_task::{Done, Payload, Metadata, LoadData, TargetedLoadResponse, start_sending, ResponseSenders};
|
||||
use resource_task::{Metadata, LoadData, TargetedLoadResponse, start_sending, ResponseSenders};
|
||||
use resource_task::ProgressMsg::{Payload, Done};
|
||||
|
||||
use serialize::base64::FromBase64;
|
||||
|
||||
use hyper::mime::Mime;
|
||||
use url::{percent_decode, NonRelativeSchemeData};
|
||||
use url::{percent_decode, SchemeData};
|
||||
|
||||
|
||||
pub fn factory(load_data: LoadData, start_chan: Sender<TargetedLoadResponse>) {
|
||||
|
@ -31,7 +32,7 @@ fn load(load_data: LoadData, start_chan: Sender<TargetedLoadResponse>) {
|
|||
|
||||
// Split out content type and data.
|
||||
let mut scheme_data = match url.scheme_data {
|
||||
NonRelativeSchemeData(scheme_data) => scheme_data,
|
||||
SchemeData::NonRelative(scheme_data) => scheme_data,
|
||||
_ => panic!("Expected a non-relative scheme URL.")
|
||||
};
|
||||
match url.query {
|
||||
|
|
|
@ -9,6 +9,9 @@
|
|||
//! This library will eventually become the core of the Fetch crate
|
||||
//! with CORSRequest being expanded into FetchRequest (etc)
|
||||
|
||||
use self::CORSCacheTaskMsg::*;
|
||||
use self::HeaderOrMethod::*;
|
||||
|
||||
use hyper::method::Method;
|
||||
use std::ascii::AsciiExt;
|
||||
use std::comm::{Sender, Receiver, channel};
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use self::ContextFrameType::*;
|
||||
use self::CredentialsMode::*;
|
||||
use self::Referer::*;
|
||||
use self::RequestMode::*;
|
||||
use self::ResponseTainting::*;
|
||||
|
||||
use url::Url;
|
||||
use hyper::method::{Get, Method};
|
||||
use hyper::mime::{Mime, Text, Html, Charset, Utf8};
|
||||
|
|
|
@ -2,6 +2,9 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use self::ResponseBody::*;
|
||||
use self::ResponseType::*;
|
||||
|
||||
use url::Url;
|
||||
use hyper::status::StatusCode;
|
||||
use hyper::status::Ok as StatusOk;
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use resource_task::{ProgressMsg, Metadata, Payload, Done, LoadData, start_sending, TargetedLoadResponse, ResponseSenders};
|
||||
use resource_task::{ProgressMsg, Metadata, LoadData, start_sending, TargetedLoadResponse, ResponseSenders};
|
||||
use resource_task::ProgressMsg::{Payload, Done};
|
||||
|
||||
use std::io;
|
||||
use std::io::File;
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use resource_task::{Metadata, Payload, Done, TargetedLoadResponse, LoadData, start_sending_opt, ResponseSenders};
|
||||
use resource_task::{Metadata, TargetedLoadResponse, LoadData, start_sending_opt, ResponseSenders};
|
||||
use resource_task::ProgressMsg::{Payload, Done};
|
||||
|
||||
use log;
|
||||
use std::collections::HashSet;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use image::base::Image;
|
||||
use image_cache_task::{ImageReady, ImageNotReady, ImageFailed};
|
||||
use image_cache_task::ImageResponseMsg::*;
|
||||
use local_image_cache::LocalImageCache;
|
||||
|
||||
use geom::size::Size2D;
|
||||
|
|
|
@ -2,9 +2,15 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use self::AfterPrefetch::*;
|
||||
use self::ImageResponseMsg::*;
|
||||
use self::ImageState::*;
|
||||
use self::Msg::*;
|
||||
|
||||
use image::base::{Image, load_from_memory};
|
||||
use resource_task;
|
||||
use resource_task::{LoadData, ResourceTask};
|
||||
use resource_task::ProgressMsg::{Payload, Done};
|
||||
|
||||
use servo_util::task::spawn_named;
|
||||
use servo_util::taskpool::TaskPool;
|
||||
|
@ -443,20 +449,20 @@ impl ImageCacheTask {
|
|||
|
||||
fn load_image_data(url: Url, resource_task: ResourceTask) -> Result<Vec<u8>, ()> {
|
||||
let (response_chan, response_port) = channel();
|
||||
resource_task.send(resource_task::Load(LoadData::new(url, response_chan)));
|
||||
resource_task.send(resource_task::ControlMsg::Load(LoadData::new(url, response_chan)));
|
||||
|
||||
let mut image_data = vec!();
|
||||
|
||||
let progress_port = response_port.recv().progress_port;
|
||||
loop {
|
||||
match progress_port.recv() {
|
||||
resource_task::Payload(data) => {
|
||||
Payload(data) => {
|
||||
image_data.push_all(data.as_slice());
|
||||
}
|
||||
resource_task::Done(result::Ok(..)) => {
|
||||
Done(result::Ok(..)) => {
|
||||
return Ok(image_data);
|
||||
}
|
||||
resource_task::Done(result::Err(..)) => {
|
||||
Done(result::Err(..)) => {
|
||||
return Err(());
|
||||
}
|
||||
}
|
||||
|
@ -479,9 +485,12 @@ pub fn spawn_listener<A: Send>(f: proc(Receiver<A>):Send) -> Sender<A> {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use super::ImageResponseMsg::*;
|
||||
use super::Msg::*;
|
||||
|
||||
use resource_task;
|
||||
use resource_task::{ResourceTask, Metadata, start_sending, ResponseSenders};
|
||||
use resource_task::ProgressMsg::{Payload, Done};
|
||||
use sniffer_task;
|
||||
use image::base::test_image_bin;
|
||||
use servo_util::taskpool::TaskPool;
|
||||
|
@ -500,31 +509,31 @@ mod tests {
|
|||
impl Closure for JustSendOK {
|
||||
fn invoke(&self, response: Sender<resource_task::ProgressMsg>) {
|
||||
self.url_requested_chan.send(());
|
||||
response.send(resource_task::Done(Ok(())));
|
||||
response.send(Done(Ok(())));
|
||||
}
|
||||
}
|
||||
|
||||
struct SendTestImage;
|
||||
impl Closure for SendTestImage {
|
||||
fn invoke(&self, response: Sender<resource_task::ProgressMsg>) {
|
||||
response.send(resource_task::Payload(test_image_bin()));
|
||||
response.send(resource_task::Done(Ok(())));
|
||||
response.send(Payload(test_image_bin()));
|
||||
response.send(Done(Ok(())));
|
||||
}
|
||||
}
|
||||
|
||||
struct SendBogusImage;
|
||||
impl Closure for SendBogusImage {
|
||||
fn invoke(&self, response: Sender<resource_task::ProgressMsg>) {
|
||||
response.send(resource_task::Payload(vec!()));
|
||||
response.send(resource_task::Done(Ok(())));
|
||||
response.send(Payload(vec!()));
|
||||
response.send(Done(Ok(())));
|
||||
}
|
||||
}
|
||||
|
||||
struct SendTestImageErr;
|
||||
impl Closure for SendTestImageErr {
|
||||
fn invoke(&self, response: Sender<resource_task::ProgressMsg>) {
|
||||
response.send(resource_task::Payload(test_image_bin()));
|
||||
response.send(resource_task::Done(Err("".to_string())));
|
||||
response.send(Payload(test_image_bin()));
|
||||
response.send(Done(Err("".to_string())));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -536,8 +545,8 @@ mod tests {
|
|||
// Don't send the data until after the client requests
|
||||
// the image
|
||||
self.wait_port.recv();
|
||||
response.send(resource_task::Payload(test_image_bin()));
|
||||
response.send(resource_task::Done(Ok(())));
|
||||
response.send(Payload(test_image_bin()));
|
||||
response.send(Done(Ok(())));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -549,8 +558,8 @@ mod tests {
|
|||
// Don't send the data until after the client requests
|
||||
// the image
|
||||
self.wait_port.recv();
|
||||
response.send(resource_task::Payload(test_image_bin()));
|
||||
response.send(resource_task::Done(Err("".to_string())));
|
||||
response.send(Payload(test_image_bin()));
|
||||
response.send(Done(Err("".to_string())));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -558,7 +567,7 @@ mod tests {
|
|||
spawn_listener(proc(port: Receiver<resource_task::ControlMsg>) {
|
||||
loop {
|
||||
match port.recv() {
|
||||
resource_task::Load(response) => {
|
||||
resource_task::ControlMsg::Load(response) => {
|
||||
let sniffer_task = sniffer_task::new_sniffer_task();
|
||||
let senders = ResponseSenders {
|
||||
immediate_consumer: sniffer_task,
|
||||
|
@ -568,7 +577,7 @@ mod tests {
|
|||
Url::parse("file:///fake").unwrap()));
|
||||
on_load.invoke(chan);
|
||||
}
|
||||
resource_task::Exit => break
|
||||
resource_task::ControlMsg::Exit => break
|
||||
}
|
||||
}
|
||||
})
|
||||
|
@ -581,7 +590,7 @@ mod tests {
|
|||
let image_cache_task = ImageCacheTask::new(mock_resource_task.clone(), TaskPool::new(4));
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -609,7 +618,7 @@ mod tests {
|
|||
image_cache_task.send(Prefetch(url));
|
||||
url_requested.recv();
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -625,7 +634,7 @@ mod tests {
|
|||
image_cache_task.send(Prefetch(url));
|
||||
url_requested.recv();
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
match url_requested.try_recv() {
|
||||
Err(_) => (),
|
||||
Ok(_) => panic!(),
|
||||
|
@ -648,7 +657,7 @@ mod tests {
|
|||
assert!(response_port.recv() == ImageNotReady);
|
||||
wait_chan.send(());
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -674,7 +683,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -702,7 +711,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -714,7 +723,7 @@ mod tests {
|
|||
let mock_resource_task = spawn_listener(proc(port: Receiver<resource_task::ControlMsg>) {
|
||||
loop {
|
||||
match port.recv() {
|
||||
resource_task::Load(response) => {
|
||||
resource_task::ControlMsg::Load(response) => {
|
||||
let sniffer_task = sniffer_task::new_sniffer_task();
|
||||
let senders = ResponseSenders {
|
||||
immediate_consumer: sniffer_task,
|
||||
|
@ -722,11 +731,11 @@ mod tests {
|
|||
};
|
||||
let chan = start_sending(senders, Metadata::default(
|
||||
Url::parse("file:///fake").unwrap()));
|
||||
chan.send(resource_task::Payload(test_image_bin()));
|
||||
chan.send(resource_task::Done(Ok(())));
|
||||
chan.send(Payload(test_image_bin()));
|
||||
chan.send(Done(Ok(())));
|
||||
image_bin_sent_chan.send(());
|
||||
}
|
||||
resource_task::Exit => {
|
||||
resource_task::ControlMsg::Exit => {
|
||||
resource_task_exited_chan.send(());
|
||||
break
|
||||
}
|
||||
|
@ -745,7 +754,7 @@ mod tests {
|
|||
image_cache_task.send(Prefetch(url.clone()));
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
|
||||
resource_task_exited.recv();
|
||||
|
||||
|
@ -766,7 +775,7 @@ mod tests {
|
|||
let mock_resource_task = spawn_listener(proc(port: Receiver<resource_task::ControlMsg>) {
|
||||
loop {
|
||||
match port.recv() {
|
||||
resource_task::Load(response) => {
|
||||
resource_task::ControlMsg::Load(response) => {
|
||||
let sniffer_task = sniffer_task::new_sniffer_task();
|
||||
let senders = ResponseSenders {
|
||||
immediate_consumer: sniffer_task,
|
||||
|
@ -774,11 +783,11 @@ mod tests {
|
|||
};
|
||||
let chan = start_sending(senders, Metadata::default(
|
||||
Url::parse("file:///fake").unwrap()));
|
||||
chan.send(resource_task::Payload(test_image_bin()));
|
||||
chan.send(resource_task::Done(Err("".to_string())));
|
||||
chan.send(Payload(test_image_bin()));
|
||||
chan.send(Done(Err("".to_string())));
|
||||
image_bin_sent_chan.send(());
|
||||
}
|
||||
resource_task::Exit => {
|
||||
resource_task::ControlMsg::Exit => {
|
||||
resource_task_exited_chan.send(());
|
||||
break
|
||||
}
|
||||
|
@ -799,7 +808,7 @@ mod tests {
|
|||
image_cache_task.send(Decode(url.clone()));
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
|
||||
resource_task_exited.recv();
|
||||
|
||||
|
@ -834,7 +843,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -868,7 +877,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -896,7 +905,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -922,7 +931,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -948,7 +957,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -974,7 +983,7 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -995,6 +1004,6 @@ mod tests {
|
|||
}
|
||||
|
||||
image_cache_task.exit();
|
||||
mock_resource_task.send(resource_task::Exit);
|
||||
mock_resource_task.send(resource_task::ControlMsg::Exit);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,8 +8,9 @@ extra message traffic, it also avoids waiting on the same image
|
|||
multiple times and thus triggering reflows multiple times.
|
||||
*/
|
||||
|
||||
use image_cache_task::{Decode, GetImage, ImageCacheTask, ImageFailed, ImageNotReady, ImageReady};
|
||||
use image_cache_task::{ImageResponseMsg, Prefetch, WaitForImage};
|
||||
use image_cache_task::{ImageCacheTask, ImageResponseMsg};
|
||||
use image_cache_task::ImageResponseMsg::*;
|
||||
use image_cache_task::Msg::*;
|
||||
|
||||
use std::comm::{Receiver, channel};
|
||||
use std::collections::HashMap;
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
//! A task that takes a URL and streams back the binary data.
|
||||
|
||||
use self::ControlMsg::*;
|
||||
use self::ProgressMsg::*;
|
||||
|
||||
use about_loader;
|
||||
use data_loader;
|
||||
use file_loader;
|
||||
|
@ -11,16 +14,17 @@ use http_loader;
|
|||
use sniffer_task;
|
||||
use sniffer_task::SnifferTask;
|
||||
|
||||
use std::comm::{channel, Receiver, Sender};
|
||||
use hyper::mime::{Mime, Charset};
|
||||
use hyper::header::Headers;
|
||||
use servo_util::task::spawn_named;
|
||||
|
||||
use hyper::header::common::UserAgent;
|
||||
use hyper::header::Headers;
|
||||
use hyper::http::RawStatus;
|
||||
use hyper::method::{Method, Get};
|
||||
use hyper::mime::{Mime, Charset};
|
||||
use url::Url;
|
||||
|
||||
use hyper::http::RawStatus;
|
||||
|
||||
use servo_util::task::spawn_named;
|
||||
use std::comm::{channel, Receiver, Sender};
|
||||
use std::str::Slice;
|
||||
|
||||
pub enum ControlMsg {
|
||||
/// Request the data associated with a particular URL
|
||||
|
@ -85,7 +89,7 @@ impl Metadata {
|
|||
content_type: None,
|
||||
charset: None,
|
||||
headers: None,
|
||||
status: Some(RawStatus(200, "OK".into_string())) // http://fetch.spec.whatwg.org/#concept-response-status-message
|
||||
status: Some(RawStatus(200, Slice("OK"))) // http://fetch.spec.whatwg.org/#concept-response-status-message
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
use self::StorageTaskMsg::*;
|
||||
|
||||
use std::comm::{channel, Receiver, Sender};
|
||||
use std::collections::HashMap;
|
||||
use std::collections::TreeMap;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue