diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 21402e37209..32371abe9f5 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -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() }, } } diff --git a/components/net/tests/http_loader.rs b/components/net/tests/http_loader.rs index 0854844f135..297d6de7e5a 100644 --- a/components/net/tests/http_loader.rs +++ b/components/net/tests/http_loader.rs @@ -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(),