diff --git a/components/net/fetch/methods.rs b/components/net/fetch/methods.rs index fe04acc35c33..ec9b4444e987 100644 --- a/components/net/fetch/methods.rs +++ b/components/net/fetch/methods.rs @@ -17,7 +17,7 @@ use hyper::mime::{Mime, SubLevel, TopLevel}; use hyper::status::StatusCode; use mime_guess::guess_mime_type; use net_traits::{FetchTaskTarget, NetworkError, ReferrerPolicy}; -use net_traits::request::{RedirectMode, Referrer, Request, RequestMode, ResponseTainting}; +use net_traits::request::{Referrer, Request, RequestMode, ResponseTainting}; use net_traits::request::{Type, Origin, Window}; use net_traits::response::{Response, ResponseBody, ResponseType}; use std::borrow::Cow; @@ -240,7 +240,6 @@ pub fn main_fetch(request: Rc, (!is_simple_method(&request.method.borrow()) || request.headers.borrow().iter().any(|h| !is_simple_header(&h)))) { request.response_tainting.set(ResponseTainting::CorsTainting); - request.redirect_mode.set(RedirectMode::Error); let response = http_fetch(request.clone(), cache, true, true, false, target, done_chan, context); if response.is_network_error() { diff --git a/components/net/http_loader.rs b/components/net/http_loader.rs index 9ffc95b86204..750a94c56364 100644 --- a/components/net/http_loader.rs +++ b/components/net/http_loader.rs @@ -746,11 +746,7 @@ fn http_redirect_fetch(request: Rc, request.redirect_count.set(request.redirect_count.get() + 1); // Step 7 - let same_origin = if let Origin::Origin(ref origin) = *request.origin.borrow() { - *origin == request.current_url().origin() - } else { - false - }; + let same_origin = location_url.origin()== request.current_url().origin(); let has_credentials = has_credentials(&location_url); if request.mode == RequestMode::CorsMode && !same_origin && has_credentials { diff --git a/tests/wpt/metadata/cors/redirect-preflight.htm.ini b/tests/wpt/metadata/cors/redirect-preflight.htm.ini new file mode 100644 index 000000000000..9520556f8032 --- /dev/null +++ b/tests/wpt/metadata/cors/redirect-preflight.htm.ini @@ -0,0 +1,17 @@ +[redirect-preflight.htm] + type: testharness + [Disallow redirect 301 after succesful (200) preflight] + expected: FAIL + + [Disallow redirect 302 after succesful (200) preflight] + expected: FAIL + + [Disallow redirect 303 after succesful (200) preflight] + expected: FAIL + + [Disallow redirect 307 after succesful (200) preflight] + expected: FAIL + + [Disallow redirect 308 after succesful (200) preflight] + expected: FAIL + diff --git a/tests/wpt/metadata/cors/redirect-userinfo.htm.ini b/tests/wpt/metadata/cors/redirect-userinfo.htm.ini deleted file mode 100644 index c09a4c753b09..000000000000 --- a/tests/wpt/metadata/cors/redirect-userinfo.htm.ini +++ /dev/null @@ -1,5 +0,0 @@ -[redirect-userinfo.htm] - type: testharness - [Allow redirect with userinfo (//@)] - expected: FAIL - diff --git a/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini b/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini index 6861c6e524fd..3983756582e5 100644 --- a/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini +++ b/tests/wpt/metadata/eventsource/eventsource-cross-origin.htm.ini @@ -1,9 +1,5 @@ [eventsource-cross-origin.htm] type: testharness - expected: TIMEOUT - [EventSource: cross-origin redirect use] - expected: TIMEOUT - [EventSource: cross-origin allow-origin: http://example.org should fail] expected: FAIL diff --git a/tests/wpt/metadata/fetch/api/request/request-init-001.sub.html.ini b/tests/wpt/metadata/fetch/api/request/request-init-001.sub.html.ini index d1b426ce775b..506298a39a92 100644 --- a/tests/wpt/metadata/fetch/api/request/request-init-001.sub.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-init-001.sub.html.ini @@ -8,3 +8,4 @@ [Check referrerPolicy init value of same-origin and associated getter] expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-structure.html.ini b/tests/wpt/metadata/fetch/api/request/request-structure.html.ini index d31604e3fcbf..aa3c47b9ad47 100644 --- a/tests/wpt/metadata/fetch/api/request/request-structure.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-structure.html.ini @@ -2,3 +2,4 @@ type: testharness [Request has arrayBuffer method] expected: FAIL + diff --git a/tests/wpt/mozilla/meta/css/viewport_meta.html.ini b/tests/wpt/mozilla/meta/css/viewport_meta.html.ini index b737c1dcb740..e21ca57b3604 100644 --- a/tests/wpt/mozilla/meta/css/viewport_meta.html.ini +++ b/tests/wpt/mozilla/meta/css/viewport_meta.html.ini @@ -1 +1,3 @@ prefs: [layout.viewport.enabled:true] +[viewport_meta.html] + type: reftest diff --git a/tests/wpt/mozilla/meta/css/viewport_rule.html.ini b/tests/wpt/mozilla/meta/css/viewport_rule.html.ini index b737c1dcb740..a015a2452bf9 100644 --- a/tests/wpt/mozilla/meta/css/viewport_rule.html.ini +++ b/tests/wpt/mozilla/meta/css/viewport_rule.html.ini @@ -1 +1,3 @@ prefs: [layout.viewport.enabled:true] +[viewport_rule.html] + type: reftest