Auto merge of #14083 - rnestler:fix_14018, r=jdm

Add redirect_mode to RequestInit

This adds support for non-follow redirect modes for `RequestInit`.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #14018 (github issue number if applicable).
- [x] There are tests for these changes

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14083)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-11-09 18:13:06 -06:00 committed by GitHub
commit 58baf3ebb6
4 changed files with 5 additions and 31 deletions

View file

@ -81,7 +81,7 @@ pub enum CacheMode {
}
/// [Redirect mode](https://fetch.spec.whatwg.org/#concept-request-redirect-mode)
#[derive(Copy, Clone, PartialEq, HeapSizeOf)]
#[derive(Copy, Clone, PartialEq, Serialize, Deserialize, HeapSizeOf)]
pub enum RedirectMode {
Follow,
Error,
@ -137,6 +137,7 @@ pub struct RequestInit {
pub referrer_url: Option<Url>,
pub referrer_policy: Option<ReferrerPolicy>,
pub pipeline_id: Option<PipelineId>,
pub redirect_mode: RedirectMode,
}
impl Default for RequestInit {
@ -158,6 +159,7 @@ impl Default for RequestInit {
referrer_url: None,
referrer_policy: None,
pipeline_id: None,
redirect_mode: RedirectMode::Follow,
}
}
}
@ -266,6 +268,7 @@ impl Request {
};
req.referrer_policy.set(init.referrer_policy);
req.pipeline_id.set(init.pipeline_id);
req.redirect_mode.set(init.redirect_mode);
req
}

View file

@ -61,6 +61,7 @@ fn request_init_from_request(request: NetTraitsRequest) -> NetTraitsRequestInit
referrer_url: from_referrer_to_referrer_url(&request),
referrer_policy: request.referrer_policy.get(),
pipeline_id: request.pipeline_id.get(),
redirect_mode: request.redirect_mode.get(),
}
}

View file

@ -1,32 +1,17 @@
[redirect-mode-worker.html]
type: testharness
[Redirect 301 in "error" mode ]
expected: FAIL
[Redirect 301 in "manual" mode ]
expected: FAIL
[Redirect 302 in "error" mode ]
expected: FAIL
[Redirect 302 in "manual" mode ]
expected: FAIL
[Redirect 303 in "error" mode ]
expected: FAIL
[Redirect 303 in "manual" mode ]
expected: FAIL
[Redirect 307 in "error" mode ]
expected: FAIL
[Redirect 307 in "manual" mode ]
expected: FAIL
[Redirect 308 in "error" mode ]
expected: FAIL
[Redirect 308 in "manual" mode ]
expected: FAIL

View file

@ -1,32 +1,17 @@
[redirect-mode.html]
type: testharness
[Redirect 301 in "error" mode ]
expected: FAIL
[Redirect 301 in "manual" mode ]
expected: FAIL
[Redirect 302 in "error" mode ]
expected: FAIL
[Redirect 302 in "manual" mode ]
expected: FAIL
[Redirect 303 in "error" mode ]
expected: FAIL
[Redirect 303 in "manual" mode ]
expected: FAIL
[Redirect 307 in "error" mode ]
expected: FAIL
[Redirect 307 in "manual" mode ]
expected: FAIL
[Redirect 308 in "error" mode ]
expected: FAIL
[Redirect 308 in "manual" mode ]
expected: FAIL