mirror of
https://github.com/servo/servo.git
synced 2025-06-28 11:03:39 +01:00
Associate ResourceTask with UrlProvenance
This commit is contained in:
parent
0b1c8bf8d6
commit
8bfb5f8b6f
2 changed files with 8 additions and 12 deletions
|
@ -14,23 +14,21 @@ use url::Url;
|
|||
|
||||
/// Where a style sheet comes from.
|
||||
pub enum StylesheetProvenance {
|
||||
UrlProvenance(Url),
|
||||
UrlProvenance(Url, ResourceTask),
|
||||
InlineProvenance(Url, ~str),
|
||||
}
|
||||
|
||||
// Parses the style data and returns the stylesheet
|
||||
pub fn parse_inline_css(url: Url, data: ~str) -> Stylesheet {
|
||||
let resource_task = ResourceTask(); // Resource task is not used for inline parsing
|
||||
parse_css(InlineProvenance(url, data), resource_task)
|
||||
parse_css(InlineProvenance(url, data))
|
||||
}
|
||||
|
||||
fn parse_css(provenance: StylesheetProvenance,
|
||||
resource_task: ResourceTask) -> Stylesheet {
|
||||
fn parse_css(provenance: StylesheetProvenance) -> Stylesheet {
|
||||
// TODO: Get the actual value. http://dev.w3.org/csswg/css-syntax/#environment-encoding
|
||||
let environment_encoding = UTF_8 as EncodingRef;
|
||||
|
||||
match provenance {
|
||||
UrlProvenance(url) => {
|
||||
UrlProvenance(url, resource_task) => {
|
||||
debug!("cssparse: loading style sheet at {:s}", url.to_str());
|
||||
let (input_chan, input_port) = channel();
|
||||
resource_task.send(Load(url, input_chan));
|
||||
|
@ -50,13 +48,11 @@ fn parse_css(provenance: StylesheetProvenance,
|
|||
}
|
||||
}
|
||||
|
||||
pub fn spawn_css_parser(provenance: StylesheetProvenance,
|
||||
resource_task: ResourceTask)
|
||||
-> Receiver<Stylesheet> {
|
||||
pub fn spawn_css_parser(provenance: StylesheetProvenance) -> Receiver<Stylesheet> {
|
||||
let (result_chan, result_port) = channel();
|
||||
|
||||
spawn_named("cssparser", proc() {
|
||||
result_chan.send(parse_css(provenance, resource_task));
|
||||
result_chan.send(parse_css(provenance));
|
||||
});
|
||||
|
||||
return result_port;
|
||||
|
|
|
@ -111,7 +111,7 @@ fn css_link_listener(to_parent: Sender<HtmlDiscoveryMessage>,
|
|||
loop {
|
||||
match from_parent.recv_opt() {
|
||||
Some(CSSTaskNewFile(provenance)) => {
|
||||
result_vec.push(spawn_css_parser(provenance, resource_task.clone()));
|
||||
result_vec.push(spawn_css_parser(provenance));
|
||||
}
|
||||
Some(CSSTaskExit) | None => {
|
||||
break;
|
||||
|
@ -357,7 +357,7 @@ pub fn parse_html(page: &Page,
|
|||
}) => {
|
||||
debug!("found CSS stylesheet: {:s}", href.get().value_ref());
|
||||
let url = parse_url(href.get().value_ref(), Some(url2.clone()));
|
||||
css_chan2.send(CSSTaskNewFile(UrlProvenance(url)));
|
||||
css_chan2.send(CSSTaskNewFile(UrlProvenance(url, resource_task.clone())));
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue