diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-10-11 10:45:58 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-11 10:45:58 -0400 |
commit | 723df4abcf90d626cb7232e40c9bcef449ebd334 (patch) | |
tree | db830b1c827dd0846baa0842034e5dcb89c8b7d0 /components/script/dom/response.rs | |
parent | 46b048c0a5e25579496b32e629db9009c675e3fe (diff) | |
parent | 0f1ddc6feaf87d30eeba310e370c75991bfadcff (diff) | |
download | servo-723df4abcf90d626cb7232e40c9bcef449ebd334.tar.gz servo-723df4abcf90d626cb7232e40c9bcef449ebd334.zip |
Auto merge of #24379 - PeaceRebel:dom_response_check_opaque_filter, r=jdm
Dom response check opaque filter
<!-- Please describe your changes on the following line: -->
Added setters for url_list, status, and body in `Response`. Response members are set for [Network Error](https://fetch.spec.whatwg.org/#concept-network-error), [Opaque](https://fetch.spec.whatwg.org/#concept-filtered-response-opaque) and [Opaque-redirect](https://fetch.spec.whatwg.org/#concept-filtered-response-opaque-redirect) responses.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #24372 (GitHub issue number if applicable)
<!-- Either: -->
- [x] There are tests for these changes
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- 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/24379)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/response.rs')
-rw-r--r-- | components/script/dom/response.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/components/script/dom/response.rs b/components/script/dom/response.rs index ec139bf4a9e..d618c9823e4 100644 --- a/components/script/dom/response.rs +++ b/components/script/dom/response.rs @@ -395,6 +395,7 @@ fn serialize_without_fragment(url: &ServoUrl) -> &str { impl Response { pub fn set_type(&self, new_response_type: DOMResponseType) { *self.response_type.borrow_mut() = new_response_type; + self.set_response_members_by_type(new_response_type); } pub fn set_headers(&self, option_hyper_headers: Option<Serde<HyperHeaders>>) { @@ -412,6 +413,33 @@ impl Response { *self.url.borrow_mut() = Some(final_url); } + fn set_response_members_by_type(&self, response_type: DOMResponseType) { + match response_type { + DOMResponseType::Error => { + *self.status.borrow_mut() = None; + self.set_raw_status(None); + self.set_headers(None); + *self.body.borrow_mut() = NetTraitsResponseBody::Done(vec![]); + }, + DOMResponseType::Opaque => { + *self.url_list.borrow_mut() = vec![]; + *self.status.borrow_mut() = None; + self.set_raw_status(None); + self.set_headers(None); + *self.body.borrow_mut() = NetTraitsResponseBody::Done(vec![]); + }, + DOMResponseType::Opaqueredirect => { + *self.status.borrow_mut() = None; + self.set_raw_status(None); + self.set_headers(None); + *self.body.borrow_mut() = NetTraitsResponseBody::Done(vec![]); + }, + DOMResponseType::Default => {}, + DOMResponseType::Basic => {}, + DOMResponseType::Cors => {}, + } + } + #[allow(unrooted_must_root)] pub fn finish(&self, body: Vec<u8>) { *self.body.borrow_mut() = NetTraitsResponseBody::Done(body); |