Commit graph

360 commits

Author SHA1 Message Date
Connor Brewster
bfd7b950ad Add ImmutableOrigin to allow for serializing origins 2017-02-22 11:11:59 -06:00
Anthony Ramine
63c4490e73 Kill the plugins crate and its clippy support
Sometimes clippy gets outdated by months, and its current support setup
means that each Servo component need to opt into it by depending on
the plugins crate manually, and not all components do that.
2017-02-21 11:50:36 +01:00
Anthony Ramine
fe3f4ff0c2 Update serde to 0.9 (fixes #15325) 2017-02-18 21:09:46 +01:00
Anthony Ramine
85e2648ffc Update ipc-channel to 0.6.3 2017-02-16 12:04:32 +01:00
bors-servo
f1c82be0e6 Auto merge of #14868 - bd339:iss14068, r=jdm
Fix loss of response type information in Fetch API

<!-- 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. -->

<!-- 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/14868)
<!-- Reviewable:end -->
2017-01-09 18:36:38 -08:00
bd339
0f1eb13e33 Don't lose information in Fetch API
Also update test expectations.
2017-01-09 14:52:14 +01:00
mrnayak
a3026499f4 Implement Subresource Integrity
Implemented response validation part of
https://w3c.github.io/webappsec-subresource-integrity/.
Implemented step eighteen of the main fetch. If a request has integrity
metadata, then following steps are performed
*Wait for response body
*If the response does not have a termination reason and response does not
match request’s integrity metadata, set response to a
network error.# Please enter the commit message for your changes. Lines starting
2017-01-08 08:52:18 +05:30
Matt Brubeck
f6e7179e9a Fix an unused variable warning in net_tests 2016-12-30 17:24:10 -08:00
Raghav
6a14349eb1 Refactor HSTSList to use HashMap
Refactored HSTSList to use HashMap, where the key of HashMap is the base
domain. Every time when we check if a host is secure, we find the base
domain of the host and get a vector of HSTS entries associated with the
base domain.

While this will not give O(1) look up time, we would have a smaller list
to iterate for every lookup. I have added one unit test to validate
HashMap changes.
2016-12-30 22:00:03 +05:30
Raghav
6020b4c15c Implement HSTS fetch step
Implemented step nine of the main fetch. If current URL scheme is 'HTTP'
and current URL's host is domain and if current URL's host matched with
Known
HSTS Host Domain Name Matching results in either a superdomain match with
an asserted includeSubDomains directive or a congruent match then we
change request scheme to 'https'. This change has been made in method.rs

A test case to validate this has been added in fetch.rs. For asserting
https scheme, a https localhost was required. For this purpose I have
created a self-signed certificate and refactored fetch-context and
connector.rs to programmatically trust this certificate for running this
test case.
2016-12-29 12:55:31 +05:30
bors-servo
de7d73adb0 Auto merge of #14623 - DominoTree:master, r=emilio
<!-- Please describe your changes on the following line: -->
Add check for bad ports to http_fetch(), return NetworkError::Internal if bad port/schema combination is seen.

Test added

---
<!-- 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 #14514 (github issue number if applicable).

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

<!-- 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/14623)
<!-- Reviewable:end -->
2016-12-24 03:41:14 -08:00
Keith Yeung
16f1947e24 Add unit tests 2016-12-22 11:29:30 -08:00
Nick Price
a56a7baa9a Implement port-based blocking 2016-12-21 09:43:39 -05:00
Ms2ger
217f44b67a Make the fetch target non-optional. 2016-12-15 10:49:04 +01:00
Ms2ger
6f2606cdee Introduce fetch_with_cors_cache() API for tests. 2016-12-15 10:46:04 +01:00
Ms2ger
306905a631 Use the asynchronous fetching code for fetch_with_context(). 2016-12-15 10:45:40 +01:00
Ms2ger
a5efc01b5f Use the asynchronous fetching code in unit tests.
This is the only code that is used in Servo proper, so it's a more useful
thing to test.
2016-12-15 10:45:15 +01:00
Ms2ger
c03cd45258 Replace fetch_async() by a new fetch() function.
fetch() returns immediately after processing EOF, at the latest, so not
spinning up a thread should not cause noticeable delays. OTOH, it might
reduce the contention for cores, and reduce the overall time needed.
2016-12-15 10:44:00 +01:00
Ms2ger
9d9f048b3b Introduce fetch_with_context() to reduce repetition. 2016-12-15 10:25:58 +01:00
Ms2ger
8d34ef109d Qualify the fetch() calls in unit tests. 2016-12-15 10:25:27 +01:00
Alan Jeffrey
9be4fd56ce Removed util. 2016-12-14 18:04:37 -06:00
Raghav
c1518adba8 Redesign CookieStorage and Implement Leave Secure Cookie Alone
CookieStorage has been refactored to use HashMap with base domain as the
key. Values of hashmap is vector of cookies.
CookieStorage now has max_per_host which restricts maximum cookies that
can be added per base domain.
Cookie eviction doesnot take place if max_per_host is not reached.
Cookie eviction logic implemented here does following steps
1) Evict all expired cookies
2) Remove oldest accessed non-secure cookie If any
3) When no non-secure cookie exist, remove oldest accessed secure cookie
if new cookie being added is secure. Else ignore new cookie
2016-12-04 16:29:38 -05:00
Ms2ger
761524c01b Remove some unused arguments.
The change to the unit test is necessary because the resource thread is not
resilient against either of these Senders being dropped while the resource
thread is running. Before this change, it held clones of those senders itself
(public_setup_chan_clone, private_setup_chan_clone).
2016-11-24 11:46:33 +01:00
Ms2ger
7913f3adaf Remove the unused CancellationListener arguments in filemanager_thread. 2016-11-24 11:46:30 +01:00
Ms2ger
ce24edc2b3 Remove a test for the CoreResourceMsg::Cancel message. 2016-11-24 11:46:23 +01:00
Ms2ger
2dc73d8789 Rewrite test_redirect_from_x_to_x_provides_x_with_cookie_from_first_response. 2016-11-23 22:35:33 +01:00
Ms2ger
f4f125852a Remove references to https from http_loader unit tests. 2016-11-23 22:34:39 +01:00
Ms2ger
adc78c7cbe Remove a test for view-source.
This scheme is not currently supported in fetch (#14308).
2016-11-23 22:34:38 +01:00
Ms2ger
621ca6190a Translate a test for ftp URLs to fetch. 2016-11-23 22:34:36 +01:00
Ms2ger
fc26aaf807 Translate a unit test for bogus schemes to fetch. 2016-11-23 22:34:34 +01:00
Ms2ger
ce89fcf335 Rewrite test_cookies_blocked. 2016-11-23 22:34:33 +01:00
Ms2ger
2fa032109f Rewrite test_content_blocked. 2016-11-23 22:34:32 +01:00
Ms2ger
b4178c7eaf Split test_content_blocked for readability. 2016-11-23 22:34:31 +01:00
Ms2ger
3da075ca73 Remove test for CustomResponseMediator.
The fetch stack does not yet support this at all (#14306).
2016-11-23 22:34:30 +01:00
Ms2ger
64d176d851 Remove referrer policy unit tests.
This code should be covered sufficiently by wpt tests.
2016-11-23 22:34:28 +01:00
Ms2ger
a8f7f3c1db Rewrite test_auth_ui_needs_www_auth. 2016-11-23 22:34:27 +01:00
Ms2ger
4c34e9aa89 Remove test_auth_ui_sets_header_on_401.
The fetch stack does not yet support asking the user for credentials (#14305).
2016-11-23 22:34:26 +01:00
Ms2ger
9f23949628 Rewrite test_if_auth_creds_not_in_url_but_in_cache_it_sets_it. 2016-11-23 22:34:25 +01:00
Ms2ger
27d90fb6a8 Rewrite test_load_follows_a_redirect. 2016-11-23 22:34:20 +01:00
Ms2ger
04ffeea3c5 Rewrite test_redirect_from_x_to_y_provides_y_cookies_from_y. 2016-11-23 17:51:04 +01:00
Ms2ger
ae1340bf50 Pass the UIProvider to FileManager::handle() as needed. 2016-11-21 10:37:26 +01:00
Ms2ger
f672bf9eab Factor out FileManager::promote_memory(). 2016-11-21 10:37:25 +01:00
Emilio Cobos Álvarez
913c874cb5
Urlmageddon: Use refcounted urls more often. 2016-11-17 18:34:23 +01:00
Ms2ger
56dd6417e6 Remove the network.http.redirection-limit preference.
The Fetch standard defines this value as twenty; there is no good reason to
allow changing that at runtime.
2016-11-14 14:44:08 +01:00
bors-servo
a2689f2a0e Auto merge of #14163 - servo:fetch-unit-http, r=metajack
Rewrite some http unit tests with fetch.

<!-- 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/14163)
<!-- Reviewable:end -->
2016-11-12 00:01:10 -06:00
bors-servo
e3f07dfa16 Auto merge of #14156 - frewsxcv:cors-capitalization, r=KiChjang
Update CORS naming from 'CORS' to 'Cors'.

As per:

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

Acronyms should be considered one word and not all caps.

<!-- 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/14156)
<!-- Reviewable:end -->
2016-11-10 14:43:36 -06:00
Ms2ger
15b55c3231 Make Response::url private. 2016-11-10 13:18:43 +01:00
Ms2ger
65602de403 Add a successful test for a redirect loop. 2016-11-10 13:13:31 +01:00
Ms2ger
581c6dfe1b Rewrite test_load_errors_when_there_a_redirect_loop. 2016-11-10 12:57:19 +01:00
Ms2ger
bced313c47 Rewrite test_load_sets_default_accept_encoding_to_gzip_and_deflate. 2016-11-10 11:34:48 +01:00