mirror of
https://github.com/servo/servo.git
synced 2025-06-18 21:34:30 +00:00
Update to latest Rust.
This commit is contained in:
parent
8b47221ff8
commit
94202661c0
100 changed files with 439 additions and 379 deletions
|
@ -10,7 +10,7 @@ use std::comm::Port;
|
|||
use std::task;
|
||||
use newcss::stylesheet::Stylesheet;
|
||||
use newcss::util::DataStream;
|
||||
use servo_net::resource_task::{Load, LoadResponse, Payload, Done, ResourceTask};
|
||||
use servo_net::resource_task::{Load, LoadResponse, Payload, Done, ResourceTask, ProgressMsg};
|
||||
use extra::url::Url;
|
||||
|
||||
/// Where a style sheet comes from.
|
||||
|
@ -41,7 +41,7 @@ pub fn spawn_css_parser(provenance: StylesheetProvenance,
|
|||
return result_port;
|
||||
}
|
||||
|
||||
fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) -> DataStream {
|
||||
fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) -> @mut DataStream {
|
||||
match provenance {
|
||||
UrlProvenance(url) => {
|
||||
debug!("cssparse: loading style sheet at %s", url.to_str());
|
||||
|
@ -55,26 +55,44 @@ fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) ->
|
|||
}
|
||||
}
|
||||
|
||||
fn resource_port_to_data_stream(input_port: Port<LoadResponse>) -> DataStream {
|
||||
fn resource_port_to_data_stream(input_port: Port<LoadResponse>) -> @mut DataStream {
|
||||
let progress_port = input_port.recv().progress_port;
|
||||
return || {
|
||||
match progress_port.recv() {
|
||||
Payload(data) => Some(data),
|
||||
Done(*) => None
|
||||
struct ResourcePortDataStream {
|
||||
progress_port: Port<ProgressMsg>,
|
||||
};
|
||||
impl DataStream for ResourcePortDataStream {
|
||||
fn read(&mut self) -> Option<~[u8]> {
|
||||
match self.progress_port.recv() {
|
||||
Payload(data) => Some(data),
|
||||
Done(*) => None
|
||||
}
|
||||
}
|
||||
}
|
||||
let stream = @mut ResourcePortDataStream {
|
||||
progress_port: progress_port,
|
||||
};
|
||||
stream as @mut DataStream
|
||||
}
|
||||
|
||||
fn data_to_data_stream(data: ~str) -> DataStream {
|
||||
fn data_to_data_stream(data: ~str) -> @mut DataStream {
|
||||
let data_cell = Cell::new(data);
|
||||
return || {
|
||||
if data_cell.is_empty() {
|
||||
None
|
||||
} else {
|
||||
// FIXME: Blech, a copy.
|
||||
let data = data_cell.take();
|
||||
Some(data.as_bytes().to_owned())
|
||||
struct DataDataStream {
|
||||
data_cell: Cell<~str>,
|
||||
};
|
||||
impl DataStream for DataDataStream {
|
||||
fn read(&mut self) -> Option<~[u8]> {
|
||||
if self.data_cell.is_empty() {
|
||||
None
|
||||
} else {
|
||||
// FIXME: Blech, a copy.
|
||||
let data = self.data_cell.take();
|
||||
Some(data.as_bytes().to_owned())
|
||||
}
|
||||
}
|
||||
}
|
||||
let stream = @mut DataDataStream {
|
||||
data_cell: data_cell,
|
||||
};
|
||||
stream as @mut DataStream
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ use servo_net::resource_task::{Load, Payload, Done, ResourceTask, load_whole_res
|
|||
use servo_util::tree::{TreeNodeRef, ElementLike};
|
||||
use servo_util::url::make_url;
|
||||
use extra::url::Url;
|
||||
use extra::future::{Future, from_port};
|
||||
use extra::future::Future;
|
||||
use geom::size::Size2D;
|
||||
|
||||
macro_rules! handle_element(
|
||||
|
@ -431,7 +431,7 @@ pub fn parse_html(cx: *JSContext,
|
|||
|
||||
// Size future
|
||||
let (port, chan) = comm::oneshot();
|
||||
let size_future = from_port(port);
|
||||
let size_future = Future::from_port(port);
|
||||
|
||||
// Subpage Id
|
||||
let subpage_id = next_subpage_id.take();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue