aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/html/cssparse.rs
diff options
context:
space:
mode:
authorbors-servo <release+servo@mozilla.com>2013-09-24 12:45:44 -0700
committerbors-servo <release+servo@mozilla.com>2013-09-24 12:45:44 -0700
commitb7d186dec2de90707b8e0fc09551e543a0744282 (patch)
treef020d8c538daf5c4173c3b2e7626fe4eea723a6c /src/components/script/html/cssparse.rs
parent401176b72d9ac9e4493ca27fca5aa5450500a333 (diff)
parent1c6de361b735a80034edb719d997e6c8b6cd8fef (diff)
downloadservo-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.rs17
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
}
}