Return a network error Response from http_network_fetch when obtain_response fails.

This commit is contained in:
Ms2ger 2016-10-20 08:13:19 +02:00
parent 784c45a306
commit a66f186866

View file

@ -28,8 +28,7 @@ use net_traits::{FetchTaskTarget, FetchMetadata, NetworkError};
use net_traits::request::{CacheMode, CredentialsMode, Destination}; use net_traits::request::{CacheMode, CredentialsMode, Destination};
use net_traits::request::{RedirectMode, Referrer, Request, RequestMode, ResponseTainting}; use net_traits::request::{RedirectMode, Referrer, Request, RequestMode, ResponseTainting};
use net_traits::request::{Type, Origin, Window}; use net_traits::request::{Type, Origin, Window};
use net_traits::response::{HttpsState, TerminationReason}; use net_traits::response::{HttpsState, Response, ResponseBody, ResponseType};
use net_traits::response::{Response, ResponseBody, ResponseType};
use resource_thread::CancellationListener; use resource_thread::CancellationListener;
use std::borrow::Cow; use std::borrow::Cow;
use std::collections::HashSet; use std::collections::HashSet;
@ -1099,8 +1098,14 @@ fn http_network_fetch(request: Rc<Request>,
} }
}); });
}, },
Err(_) => { Err(error) => {
response.termination_reason = Some(TerminationReason::Fatal); let error = match error.error {
LoadErrorType::ConnectionAborted { .. } => unreachable!(),
LoadErrorType::Ssl { reason } => NetworkError::SslValidation(error.url, reason),
LoadErrorType::Cancelled => NetworkError::LoadCancelled,
e => NetworkError::Internal(e.description().to_owned())
};
return Response::network_error(error);
} }
}; };