mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Empty methods are not allowed
This commit is contained in:
parent
30827bab4d
commit
86594a752c
2 changed files with 7 additions and 1 deletions
|
@ -47,6 +47,9 @@ impl ByteString {
|
||||||
|
|
||||||
pub fn is_token(&self) -> bool {
|
pub fn is_token(&self) -> bool {
|
||||||
let ByteString(ref vec) = *self;
|
let ByteString(ref vec) = *self;
|
||||||
|
if vec.len() == 0 {
|
||||||
|
return false; // A token must be at least a single character
|
||||||
|
}
|
||||||
vec.iter().all(|&x| {
|
vec.iter().all(|&x| {
|
||||||
// http://tools.ietf.org/html/rfc2616#section-2.2
|
// http://tools.ietf.org/html/rfc2616#section-2.2
|
||||||
match x {
|
match x {
|
||||||
|
@ -55,6 +58,7 @@ impl ByteString {
|
||||||
44 | 59 | 58 | 92 | 34 |
|
44 | 59 | 58 | 92 | 34 |
|
||||||
47 | 91 | 93 | 63 | 61 |
|
47 | 91 | 93 | 63 | 61 |
|
||||||
123 | 125 | 32 => false, // separators
|
123 | 125 | 32 => false, // separators
|
||||||
|
x if x > 127 => false, // non-CHARs
|
||||||
_ => true
|
_ => true
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -301,7 +301,7 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> {
|
||||||
};
|
};
|
||||||
// XXXManishearth Do some handling of username/passwords
|
// XXXManishearth Do some handling of username/passwords
|
||||||
if self.sync {
|
if self.sync {
|
||||||
// FIXME: This should only happen if the global environmet is a document environment
|
// FIXME: This should only happen if the global environment is a document environment
|
||||||
if self.timeout != 0 || self.with_credentials || self.response_type != _empty {
|
if self.timeout != 0 || self.with_credentials || self.response_type != _empty {
|
||||||
return Err(InvalidAccess)
|
return Err(InvalidAccess)
|
||||||
}
|
}
|
||||||
|
@ -320,6 +320,8 @@ impl<'a> XMLHttpRequestMethods<'a> for JSRef<'a, XMLHttpRequest> {
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
|
// This includes cases where as_str() returns None, and when is_token() returns false,
|
||||||
|
// both of which indicate invalid extension method names
|
||||||
_ => Err(Syntax), // Step 3
|
_ => Err(Syntax), // Step 3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue