diff options
author | bors-servo <release+servo@mozilla.com> | 2013-09-24 12:45:44 -0700 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2013-09-24 12:45:44 -0700 |
commit | b7d186dec2de90707b8e0fc09551e543a0744282 (patch) | |
tree | f020d8c538daf5c4173c3b2e7626fe4eea723a6c /src/components/script/html/cssparse.rs | |
parent | 401176b72d9ac9e4493ca27fca5aa5450500a333 (diff) | |
parent | 1c6de361b735a80034edb719d997e6c8b6cd8fef (diff) | |
download | servo-b7d186dec2de90707b8e0fc09551e543a0744282.tar.gz servo-b7d186dec2de90707b8e0fc09551e543a0744282.zip |
auto merge of #977 : kmcallister/servo/redirect, r=jdm
Diffstat (limited to 'src/components/script/html/cssparse.rs')
-rw-r--r-- | src/components/script/html/cssparse.rs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/components/script/html/cssparse.rs b/src/components/script/html/cssparse.rs index 6d9d0d18a5a..9111f517c12 100644 --- a/src/components/script/html/cssparse.rs +++ b/src/components/script/html/cssparse.rs @@ -10,7 +10,7 @@ use std::comm::Port; use std::task; use newcss::stylesheet::Stylesheet; use newcss::util::DataStream; -use servo_net::resource_task::{ResourceTask, ProgressMsg, Load, Payload, Done}; +use servo_net::resource_task::{ResourceTask, ProgressMsg, Load, Payload, Done, UrlChange}; use extra::url::Url; /// Where a style sheet comes from. @@ -57,10 +57,19 @@ fn data_stream(provenance: StylesheetProvenance, resource_task: ResourceTask) -> fn resource_port_to_data_stream(input_port: Port<ProgressMsg>) -> DataStream { return || { - match input_port.recv() { - Payload(data) => Some(data), - Done(*) => None + // Can't just 'return' the value since we're inside a lambda + let mut result = None; + loop { + match input_port.recv() { + UrlChange(*) => (), // don't care that URL changed + Payload(data) => { + result = Some(data); + break; + } + Done(*) => break + } } + result } } |