Redirect document loads manually

This commit is contained in:
Nikhil Shagrithaya 2017-02-01 13:45:35 +05:30
parent 779edd7c4a
commit 541baafe1c
17 changed files with 376 additions and 52 deletions

View file

@ -674,14 +674,14 @@ pub fn http_fetch(request: &mut Request,
}
/// [HTTP redirect fetch](https://fetch.spec.whatwg.org#http-redirect-fetch)
fn http_redirect_fetch(request: &mut Request,
cache: &mut CorsCache,
response: Response,
cors_flag: bool,
target: Target,
done_chan: &mut DoneChannel,
context: &FetchContext)
-> Response {
pub fn http_redirect_fetch(request: &mut Request,
cache: &mut CorsCache,
response: Response,
cors_flag: bool,
target: Target,
done_chan: &mut DoneChannel,
context: &FetchContext)
-> Response {
// Step 1
assert!(response.return_internal);
@ -749,8 +749,10 @@ fn http_redirect_fetch(request: &mut Request,
// Step 12
// TODO implement referrer policy
let recursive_flag = request.redirect_mode != RedirectMode::Manual;
// Step 13
main_fetch(request, cache, cors_flag, true, target, done_chan, context)
main_fetch(request, cache, cors_flag, recursive_flag, target, done_chan, context)
}
fn try_immutable_origin_to_hyper_origin(url_origin: &ImmutableOrigin) -> Option<HyperOrigin> {
@ -1108,6 +1110,7 @@ fn http_network_fetch(request: &Request,
res.response.status_raw().1.as_bytes().to_vec()));
response.headers = res.response.headers.clone();
response.referrer = request.referrer.to_url().cloned();
response.referrer_policy = request.referrer_policy.clone();
let res_body = response.body.clone();