aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/cors.rs
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2015-04-23 00:14:02 +0200
committerJosh Matthews <josh@joshmatthews.net>2015-05-05 10:07:34 -0400
commitef8edd4e87aeb3cc71dfd9da2f69437080f5410e (patch)
tree9146cdd7126ead59c57cacbaa04eda0f16761f65 /components/script/cors.rs
parent7b87085c1880c60aa3be5b3ec4572a0d93fd5537 (diff)
downloadservo-ef8edd4e87aeb3cc71dfd9da2f69437080f5410e.tar.gz
servo-ef8edd4e87aeb3cc71dfd9da2f69437080f5410e.zip
Upgrade to rustc 551a74dddd84cf01440ee84148ebd18bc68bd7c8.
Diffstat (limited to 'components/script/cors.rs')
-rw-r--r--components/script/cors.rs9
1 files changed, 5 insertions, 4 deletions
diff --git a/components/script/cors.rs b/components/script/cors.rs
index a4044a52568..cd7d0828564 100644
--- a/components/script/cors.rs
+++ b/components/script/cors.rs
@@ -30,6 +30,7 @@ use hyper::header::{ContentType, Host};
use hyper::method::Method;
use hyper::status::StatusClass::Success;
+use unicase::UniCase;
use url::{SchemeData, Url};
use util::task::spawn_named;
@@ -185,10 +186,10 @@ impl CORSRequest {
// Step 5 - 7
let mut header_names = vec!();
for header in self.headers.iter() {
- header_names.push(header.name().to_ascii_lowercase());
+ header_names.push(header.name().to_owned());
}
header_names.sort();
- preflight.headers.set(AccessControlRequestHeaders(header_names));
+ preflight.headers.set(AccessControlRequestHeaders(header_names.into_iter().map(UniCase).collect()));
// Step 8 unnecessary, we don't use the request body
// Step 9, 10 unnecessary, we're writing our own fetch code
@@ -446,8 +447,8 @@ fn is_simple_method(m: &Method) -> bool {
pub fn allow_cross_origin_request(req: &CORSRequest, headers: &Headers) -> bool {
//FIXME(seanmonstar): use req.headers.get::<AccessControlAllowOrigin>()
match headers.get() {
- Some(&AccessControlAllowOrigin::AllowStar) => true, // Not always true, depends on credentials mode
- Some(&AccessControlAllowOrigin::AllowOrigin(ref url)) =>
+ Some(&AccessControlAllowOrigin::Any) => true, // Not always true, depends on credentials mode
+ Some(&AccessControlAllowOrigin::Value(ref url)) =>
url.scheme == req.origin.scheme &&
url.host() == req.origin.host() &&
url.port() == req.origin.port(),