diff options
author | Josh Matthews <josh@joshmatthews.net> | 2016-04-13 10:39:16 +0200 |
---|---|---|
committer | Ms2ger <Ms2ger@gmail.com> | 2016-04-13 12:07:05 +0200 |
commit | 90454c279d3ff3226f5758709d72f0a7d47f63f6 (patch) | |
tree | 7ff91f30b406455baffa2184f504b93483c54d5a /components/script/dom/document.rs | |
parent | fa42b452a0287fbdbec8cb709c08a9becfbe37eb (diff) | |
download | servo-90454c279d3ff3226f5758709d72f0a7d47f63f6.tar.gz servo-90454c279d3ff3226f5758709d72f0a7d47f63f6.zip |
Use origin when manipulating cookies.
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r-- | components/script/dom/document.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 76e33565e63..723e461df30 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2519,10 +2519,11 @@ impl DocumentMethods for Document { return Ok(DOMString::new()); } - let url = self.url(); - if !is_scheme_host_port_tuple(&url) { + if !self.origin.is_scheme_host_port_tuple() { return Err(Error::Security); } + + let url = self.url(); let (tx, rx) = ipc::channel().unwrap(); let _ = self.window.resource_thread().send(GetCookiesForUrl((*url).clone(), tx, NonHTTP)); let cookies = rx.recv().unwrap(); @@ -2535,10 +2536,11 @@ impl DocumentMethods for Document { return Ok(()); } - let url = self.url(); - if !is_scheme_host_port_tuple(url) { + if !self.origin.is_scheme_host_port_tuple() { return Err(Error::Security); } + + let url = self.url(); let _ = self.window .resource_thread() .send(SetCookiesForUrl((*url).clone(), String::from(cookie), NonHTTP)); @@ -2742,10 +2744,6 @@ impl DocumentMethods for Document { } } -fn is_scheme_host_port_tuple(url: &Url) -> bool { - url.host().is_some() && url.port_or_default().is_some() -} - fn update_with_current_time_ms(marker: &Cell<u64>) { if marker.get() == Default::default() { let time = time::get_time(); |