Commit Graph

24 Commits

Author SHA1 Message Date
Anthony Ramine
59dd2e1fee servo: Merge #16214 - Improve the net crate (from nox:net); r=emilio
Source-Repo: https://github.com/servo/servo
Source-Revision: c31ee6e300d9c0eb1e5671abba14f0584a910460
2017-04-03 07:47:38 -05:00
bd339
728833d126 servo: Merge #14868 - Fix loss of response type information in Fetch API (from bd339:iss14068); r=jdm
<!-- Please describe your changes on the following line: -->
Avoids mapping response types that are distinct according to [the spec](https://fetch.spec.whatwg.org/#concept-response-type) to fewer response types. Also updates test expectations to match that we now pass tests that check the response type.

---
<!-- 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 #14068

<!-- Either: -->
- [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. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: f1c82be0e61df679db25199ac3e7afc4be5d141f
2017-01-09 18:36:38 -08:00
Ms2ger
d33e39b72c servo: Merge #14831 - Rustfmt script_traits and net_traits (from servo:rustfmt-traits); r=nox
CC #8553.

Source-Repo: https://github.com/servo/servo
Source-Revision: 68ecb0484739ffacc4e76b4cbf54bcf20e5cca2b
2017-01-03 08:11:09 -08:00
Emilio Cobos Álvarez
592972be51 servo: Merge #14246 - Urlmageddon (from emilio:servo-url); r=SimonSapin
<!-- Please describe your changes on the following line: -->

Still needs a bunch of code in net to be converted in order to get more
advantage of this for images and stuff, but meanwhile this should help quite a
bit with #13778.

Still wanted to get this in.

r? @SimonSapin

Source-Repo: https://github.com/servo/servo
Source-Revision: 22aebdf5d41a3509cd6515ccf5edcdf33715a76d
2016-11-17 15:34:47 -06:00
Corey Farwell
24981cac8e servo: Merge #14156 - Update CORS naming from 'CORS' to 'Cors' (from frewsxcv:cors-capitalization); r=KiChjang
As per:

https://aturon.github.io/style/naming/README.html#general-conventions-[rfc-#430]

Acronyms should be considered one word and not all caps.

Source-Repo: https://github.com/servo/servo
Source-Revision: e3f07dfa1673950f5aad44e1be6d3667172343b6
2016-11-10 14:43:36 -06:00
Ms2ger
88de101c95 servo: Merge #14127 - Make Response::url private (from servo:response-new-url); r=nox
Source-Repo: https://github.com/servo/servo
Source-Revision: d8a0a0003252391d6130cca5f64b9738255e224a
2016-11-10 09:19:52 -06:00
Ms2ger
07fe230f77 servo: Merge #14137 - Implement Debug for Response (from servo:debug-response); r=frewsxcv
Source-Repo: https://github.com/servo/servo
Source-Revision: a203a26c1235ab7a7bf821023abaec0a240d2079
2016-11-08 22:45:19 -06:00
Ms2ger
05bd7057b7 servo: Merge #13742 - Use the fetch stack for documents (from servo:fetch-documents); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: ba2fb4e2e29125e66ed1d6a129735858604709fc
2016-11-02 03:26:42 -05:00
Keith Yeung
4d8af8d57b servo: Merge #12472 - Use fetch infrastructure to load external scripts (from KiChjang:use-fetch-in-script); r=jdm
Fixes  #9186.

Source-Repo: https://github.com/servo/servo
Source-Revision: f357afc94ac437c4323bcc4d46c2767ccef73b73
2016-09-21 18:49:33 -05:00
UK992
a6ebcb8483 servo: Merge #13205 - Tidy: Fix ordering use statements with braces (from UK992:tidy-sort); r=Wafflespeanut
This hack fixes https://github.com/servo/servo/issues/7412 and matches behavior with rustfmt.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3117787fd2a8b7748cfde1e9b8c5be3c00f2c599
2016-09-08 22:19:19 -05:00
Malisa Smith
914985a7b7 servo: Merge #13058 - Response API (from malisas:malisa-responseAPI); r=Manishearth,jdm
<!-- Please describe your changes on the following line: -->
This PR adds the [dom::Response](https://fetch.spec.whatwg.org/#response-class) implementation and addresses #11896.

The relevant passing tests` expectations have been updated.

In order to allow non-UTF-8-encoded status messages, `net_traits::response::Response`'s `raw_status` field has been changed from type [`Option<RawStatus>`](https://doc.servo.org/hyper/http/struct.RawStatus.html) to type `Option<(u16, Vec<u8>)>`. As a result, a few other files which rely on the `raw_status` field were affected and updated.

TODOs:
- The `body` and `trailer` methods. Relies on implementation of `ReadableStream` and `Promise`s.
- Similarly, replace the dummy constructor `_body: Option<USVString>` argument with `body: ResponseBodyInit`.
- Currently, whenever `r's response's header list` or `r's Headers object` are mentioned, I always modify the `headers_reflector` field (of type dom::Headers, or `r's Headers object`) and not the corresponding hyper::Headers list in the net_traits::Response field. A completely accurate interpretation of the spec might consider making both of these lists the same thing via a reference. [Discussion](https://github.com/whatwg/fetch/issues/358) was [had](https://github.com/servo/servo/pull/12884).

---
<!-- 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
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [X] There are tests for these changes OR
- [ ] These changes do not require tests because _____

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 5a5a76cc5db830d2e622d4e0924837383b64dfa2
2016-09-08 18:58:05 -05:00
Anthony Ramine
6bb66d30be servo: Merge #12828 - Update serde to 0.8 (fixes #12659) (from nox:serde); r=Ms2ger
Source-Repo: https://github.com/servo/servo
Source-Revision: 9abe9e450b54ef9151bbee1aa0bd2dedb685fa7a
2016-08-12 12:23:10 -05:00
Manish Goregaokar
01735eb080 servo: Merge #11556 - Make fetch happen (from Manishearth:make-fetch-happen); r=jdm
<!-- Please describe your changes on the following line: -->
Moves XHR over to the fetch backend.

Previous PR: https://github.com/servo/servo/pull/114

---
<!-- 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
- [ ] `./mach test-tidy` does not report any errors (Will fix later)

<!-- Either: -->
- [x] There are tests for these changes OR
- [ ] These changes do not require tests because _____

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 0c11e8340b26aa86faf9ea40aae253392b338ba3
2016-06-11 19:30:28 -05:00
Josh Matthews
5f71922341 servo: Merge #11472 - Report blank lines that follow an open brace (from jdm:wip); r=mbrubeck
This automates something that I find myself frequently commenting on in PRs.

---
<!-- 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] There are tests for these changes OR

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

Source-Repo: https://github.com/servo/servo
Source-Revision: 3ec20d9cf517c67f4d280e8958cc58c4c2b4fbb2
2016-05-27 18:14:25 -05:00
Keith Yeung
685f4fb991 servo: Merge #10189 - Implement CORS preflight fetch (from KiChjang:cors-preflight-fetch); r=jdm
Fixes #10145.

Source-Repo: https://github.com/servo/servo
Source-Revision: d21ff2fa137155e8db649c100886962300a58140
2016-04-13 20:58:25 +05:00
Nikki
daeef0e09c servo: Merge #9907 - Add Tests For Asynchronous Fetch Calls With Filtered Responses (from nikkisquared:async_tests); r=jdm
I've added two tests using async_fetch intended to create filtered responses. I caught and fixed a bug where waiting for response.body to be completed would never pass for Opaque or OpaqueRedirect, since their response.body is always `Empty`.

As always, I'd appreciate review and feedback! I don't plan to write new tests, but I will gladly patch up any gaps in the current tests.

Source-Repo: https://github.com/servo/servo
Source-Revision: 95883dcbcfe10104c7a78ac532cb9aeb4bda855f
2016-03-10 08:29:07 +05:00
Ms2ger
3cbafb3e9f servo: Merge #9923 - Make Response::new() an inherent method (from Ms2ger:response-new); r=jdm
There is no real reason to put this in an extension trait.

Source-Repo: https://github.com/servo/servo
Source-Revision: ebe7d9ebfb28d484ff0cce4e70cb8809f5867af5
2016-03-08 21:55:57 +05:00
Nikki
1634a31f45 servo: Merge #9850 - Set response.body Asynchronously In Fetch (from nikkisquared:2_async_2_furious); r=jdm
Following having finished making Fetch asynchronous, response.body should be set asynchronously, since it's the major goal of calling Fetch. So far, I've made the body wrapped in Arc<Mutex<>>, and I've wrapped a new thread around the part where it's set. I've also discovered that the fetch_async function makes step 8 of Main Fetch obsolete, and I've commented it appropriately.

I'm currently having a hard time with the thread for setting response.body, though. @jdm suggested I have the body set continually, block by block, but my implementation for that runs so slow that I can't finish running my fetch test suite in reasonable time. @KiChjang pointed out that a lot of the lag is due to how response.body currently stores everything inside a Vec. Changing the storage container seems to be both necessary and beyond the scope of the time I have to work on this.

Source-Repo: https://github.com/servo/servo
Source-Revision: fee7cb179ee7ba2f159d87af07afaf0cd99a2161
2016-03-08 04:15:25 +05:00
Nikki
7d279d0bfb servo: Merge #9753 - Make Fetch Protocol Asynchronous (from nikkisquared:async_fetch); r=jdm
I'm working on making it possible to run Fetch Asynchronously, as required for some steps, such as Main Fetch. It looks like somebody has already laid some groundwork for that, with a AsyncFetchListener trait and two async fetch functions defined, which I'm building on top of.

So far, as a sort of proof of concept, I've written a test to asynchronously retrieve a fetch response, which uses a simple function to check if the fetch response is complete or not. I'd like to be checked if I'm on the right path, to see if I need to rework anything so far, and what my next step can be.

Source-Repo: https://github.com/servo/servo
Source-Revision: 22ce878edc22360af7391694efc9e5668116d3fb
2016-03-02 01:19:29 +05:00
Nikki
1d928dfbfb servo: Merge #9525 - Test filtered responses and implement Cors Check Fetch step (from nikkisquared:test_filtered_responses); r=asajeffrey
I've been writing tests for creating filtered responses. So far I have three of the four types being made (namely, Basic, CORS, and Opaque), and just need to figure out how to make an OpaqueRedirect filtered response, since it's handled separately from the others. I will also add more tests to ensure the content of the filtered responses matches the limitations placed by the specification.

Along the way I implemented Cors Check, since it's required for the CORS filtered response. @jdm suggested I handle it in here, since it's such a small step, compared to other parts of Fetch.

Since all the tests currently pass, and I've spent a while adding the Cors Check and other pieces, I figured now would be a good time to start having it reviewed.

Source-Repo: https://github.com/servo/servo
Source-Revision: f1018b84a838ec8505f6a0bcb6e13286ce80a95c
2016-02-10 02:41:22 +05:00
Paul Rouget
5633e74066 servo: Merge #9244 - mozbrowsersecuritychange event (from paulrouget:securitychange); r=jdm
Fixes #8544

No test yet. Is there a way to mock a https connection?

Also, I wish I could use the `HTTPSState` enum instead of a `String` when calling `trigger_mozbrowser_event` (https://github.com/servo/servo/compare/master...paulrouget:securitychange?expand=1#diff-30a18e04d7e0b66aafdf192e416cad44R306) but that would require `constellation_msg.rs` to know about `HTTPSState`, which is defined in `document.rs`, which would add a dependency to `components/msg`. I could define `HTTPSState` somewhere else maybe? Or maybe it's fine to use a `String`. But then, should I use the HTTPSState strings (`"modern/deprecated/none"`) or the mozbrowser strings (`"secure/insecure/broken"`) (as it is now)

Source-Repo: https://github.com/servo/servo
Source-Revision: 3d63f09361afa80b9d5c4f6b192c9bd8936094b7
2016-02-09 12:30:29 +05:00
Nikki
1525c5483d servo: Merge #9427 - Partial implementation of Main Fetch step (from nikkisquared:implement_main_fetch); r=jdm
I started out with Step 11 of Main Fetch so I could test creating filtered responses, which broke my tests that compare the Fetch result to a message on a server. I realized that if I got the tests to work, I'd likely end up breaking them again with the next step of Main Fetch I added, so I went ahead and did as much of Main Fetch as I could figure out.

Some steps I'm sure I could implement, I just don't know how. Such as when the spec says to "wait for response", or how to implement a Runnable object (which iirc is what I need to use) to run everything after Step 8 in parallel.

The fetch tests are still not running correctly, but I sure it's because they're getting a filtered response which doesn't have the body of response. I'm not sure how to handle that, whether it means a change needed in the tests or in the Fetch code. Like always, I look forward to feedback on my work!

Source-Repo: https://github.com/servo/servo
Source-Revision: f0122efcec30594014c5db9a9647098701195532
2016-01-30 04:25:27 +05:00
Nikki
ba9a332501 servo: Merge #9195 - Replace Rc<RefCell<Response>> with Rc<Response> (from nikkisquared:rewrap_response); r=jdm
Similar to why I'm doing #9172, I'm changing `Rc<RefCell<Response>>` into `Rc<Response>` and wrapping fields in `RefCell<T>` as needed. So far I've only needed to change `url_list`, but I'm sure I'll need to update more fields in the future.

There's two lines that don't compile that I'm not going to bother trying to fix until #9172 is approved, because getting them to work now will just require more changes after merging with the changes #9172 makes to them.

Source-Repo: https://github.com/servo/servo
Source-Revision: b8186a2203cdbdcc24d77554cb53e048ef13c669
2016-01-09 01:02:45 +05:00
Keith Yeung
ff79d85724 servo: Merge #9165 - Extract Response from net_traits/lib.rs (from KiChjang:extract-response); r=Ms2ger
This puts them in a new file located at `net_traits/response.rs`.

Source-Repo: https://github.com/servo/servo
Source-Revision: 99689bc6b0531837f1af18ed4b7e4fd765595606
2016-01-06 19:47:05 +05:00