net: Suppress default ports in Origin header.

This commit is contained in:
Josh Matthews 2018-12-03 01:45:04 -05:00
parent bf564cae5d
commit 27c25116d3
2 changed files with 7 additions and 8 deletions

View file

@ -793,7 +793,11 @@ fn try_immutable_origin_to_hyper_origin(url_origin: &ImmutableOrigin) -> Option<
match *url_origin {
ImmutableOrigin::Opaque(_) => Some(HyperOrigin::NULL),
ImmutableOrigin::Tuple(ref scheme, ref host, ref port) => {
HyperOrigin::try_from_parts(&scheme, &host.to_string(), Some(port.clone())).ok()
let port = match (scheme.as_ref(), port) {
("http", 80) | ("https", 443) => None,
_ => Some(*port),
};
HyperOrigin::try_from_parts(&scheme, &host.to_string(), port).ok()
},
}
}

View file

@ -1450,13 +1450,8 @@ fn test_origin_set() {
);
let origin_url = ServoUrl::parse("http://example.com").unwrap();
// XXX: Not sure about the Some(80) here. origin_url.origin() returns 80 for the port but origin_url returns None.
origin = Origin::try_from_parts(
origin_url.scheme(),
origin_url.host_str().unwrap(),
Some(80),
)
.unwrap();
origin =
Origin::try_from_parts(origin_url.scheme(), origin_url.host_str().unwrap(), None).unwrap();
// Test Origin header is set on Get request with CORS mode
let mut request = Request::from_init(RequestInit {
url: url.clone(),