Update rustc to revision 3dcd2157403163789aaf21a9ab3c4d30a7c6494d.

This commit is contained in:
Ms2ger 2014-12-17 10:42:52 +01:00 committed by Josh Matthews
parent b8900782b0
commit 466faac2a5
223 changed files with 4414 additions and 4105 deletions

View file

@ -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"

View file

@ -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

View file

@ -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 {

View file

@ -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};

View file

@ -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};

View file

@ -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;

View 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::{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;

View 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;

View file

@ -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;

View file

@ -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);
}
}

View file

@ -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;

View file

@ -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
}
}

View file

@ -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;