Make the status handling in http_fetch more robust.

This commit is contained in:
Ms2ger 2016-10-20 08:13:08 +02:00
parent 1192aaa14d
commit 6af63d6af1

View file

@ -589,10 +589,13 @@ fn http_fetch<UI: 'static + UIProvider>(request: Rc<Request>,
let mut response = response.unwrap(); let mut response = response.unwrap();
// Step 5 // Step 5
match response.actual_response().status.unwrap() { match response.actual_response().status {
// Code 301, 302, 303, 307, 308 // Code 301, 302, 303, 307, 308
StatusCode::MovedPermanently | StatusCode::Found | StatusCode::SeeOther | Some(StatusCode::MovedPermanently) |
StatusCode::TemporaryRedirect | StatusCode::PermanentRedirect => { Some(StatusCode::Found) |
Some(StatusCode::SeeOther) |
Some(StatusCode::TemporaryRedirect) |
Some(StatusCode::PermanentRedirect) => {
response = match request.redirect_mode.get() { response = match request.redirect_mode.get() {
RedirectMode::Error => Response::network_error(), RedirectMode::Error => Response::network_error(),
RedirectMode::Manual => { RedirectMode::Manual => {
@ -608,7 +611,7 @@ fn http_fetch<UI: 'static + UIProvider>(request: Rc<Request>,
}, },
// Code 401 // Code 401
StatusCode::Unauthorized => { Some(StatusCode::Unauthorized) => {
// Step 1 // Step 1
// FIXME: Figure out what to do with request window objects // FIXME: Figure out what to do with request window objects
if cors_flag || !credentials { if cors_flag || !credentials {
@ -633,7 +636,7 @@ fn http_fetch<UI: 'static + UIProvider>(request: Rc<Request>,
} }
// Code 407 // Code 407
StatusCode::ProxyAuthenticationRequired => { Some(StatusCode::ProxyAuthenticationRequired) => {
// Step 1 // Step 1
// TODO: Figure out what to do with request window objects // TODO: Figure out what to do with request window objects