Commit Graph

72 Commits

Author SHA1 Message Date
Ravi Shankar
83ede2b37c servo: Merge #8523 - Listen for cancellation message during loads and redirects (from Wafflespeanut:redirects); r=jdm
fixes #8495

Source-Repo: https://github.com/servo/servo
Source-Revision: bda46179b6d349eae1b88e2b08a065905236e02d
2015-11-14 18:55:33 +05:00
Josh Matthews
9e3888b693 servo: Merge #6935 - Make SSL cert verification errors work again. Add a horrible, no-good… (from jdm:sslverify); r=Manishearth
…, very bad regression test.

Here are the list of awful things this test exploits:
- Servo can't load HTTPS content in WPT tests (#6919)
- Our web workers don't report error events to the parent worker object after the initial network load completes
- Our worker resource load don't have a same-origin check

The good news is that this test should start failing if any of those "features" change, so this should not silently break on us.

Other attempts to test this included:
- iframes (didn't work because of #6672 and #3939)
- XMLHttpRequest (I was hit by CORS, I think; maybe I could have made it work if I returned the right headers)

r? @Ms2ger

Source-Repo: https://github.com/servo/servo
Source-Revision: 0735cec3513f86d78dc2f1de58304b4ec5e85629
2015-11-13 21:30:57 +05:00
Ravi Shankar
b1d7525d43 servo: Merge #7844 - Cancelable network requests! (from Wafflespeanut:requests); r=jdm
fixes #4974

Source-Repo: https://github.com/servo/servo
Source-Revision: 4848e37e2e0da2f83b1d7f0d231d59047012ff95
2015-11-12 18:29:58 +05:00
Abhishek Kumar
d602de3d7f servo: Merge #8216 - M1502: Improve HTTP monitoring devtool support (from akumar21NCSU:master); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 45f07ec320b77ef8fa6511c9dc12598bc5d0f5e0
2015-11-05 22:31:48 +05:00
Nova Fallen
cd436d2de5 servo: Merge #8303 - Refactor code dealing with headers of requests and responses #6638 (from nfallen:6638-http_loader); r=eefriedman
Extract the code in load in http_loader.rs that specifically deals with modifying the headers for a request into a separate function. Extract the code that deals with processing the headers for a response into a separate function. This will enable use by websocket code when starting a websocket connection is refactored out of the content process.

Source-Repo: https://github.com/servo/servo
Source-Revision: bb911d772eb075d57a45a39dddd89905a0437166
2015-11-03 23:51:29 +05:00
nxnfufunezn
dab3ff8749 servo: Merge #8192 - Accept Brotli-compressed HTTP responses #8156 (from nxnfufunezn:brotli-decompressor); r=jdm
r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2e4454a42356c0ea9edf67f96922ac96e4d52900
2015-11-01 22:43:21 +05:00
Eli Friedman
77840a7fac servo: Merge #7984 - Refactor resource loaders to use send_error utility (from eefriedman:net-send-error); r=jdm
No substantial functional change.

Source-Repo: https://github.com/servo/servo
Source-Revision: f35f809938792fbad61fd517187e46c1e009cd16
2015-10-14 13:28:14 -06:00
David Raifaizen
e6306f08c5 servo: Merge #8004 - Removed user agent parameter from being unnecessarily passed (from craftytrickster:user-agent/#7968); r=jdm
https://github.com/servo/servo/issues/7968

Source-Repo: https://github.com/servo/servo
Source-Revision: bc58cd2de05b371f641051eb1038cd29e36bbb01
2015-10-13 16:20:22 -06:00
Corey Farwell
284d11cafd servo: Merge #7987 - Fix issues found by rust-clippy (from frewsxcv:clippy); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: eb7039d04d4c83800ba9d92dc251222f79b83040
2015-10-12 18:33:30 -06:00
Corey Farwell
4e10b0fe98 servo: Merge #7976 - Cleanup code that was warned by rust-clippy (from frewsxcv:clippy); r=jdm
[whitespace agnostic diff](https://github.com/servo/servo/pull/7976/files?w=1)

Source-Repo: https://github.com/servo/servo
Source-Revision: ac1b595609a08c30d6c13dfe6e7705f061bbc010
2015-10-12 04:37:42 -06:00
Rahul Sharma
c2bf4e7d65 servo: Merge #7973 - convert match to if let for location header check #7969 (from creativcoder:fix_issue_7969); r=jdm
@jdm Hi, very eager for my first pull request to Servo. Please review the changes.

Source-Repo: https://github.com/servo/servo
Source-Revision: 8dff3be956e7c4d8bc129491e1dfb5295c0027f1
2015-10-12 03:13:28 -06:00
Gökberk Yaltıraklı
b6cb2e098f servo: Merge #7971 - Use typed header API instead of set_raw in set_default_accept_encoding (from gkbrk:fix_7970); r=nox
Fixes #7970

Source-Repo: https://github.com/servo/servo
Source-Revision: 7b904ef6fb2147841366b4adf07327bc1cdbb1be
2015-10-11 03:20:14 -06:00
Prabhjyot Singh Sodhi
ce8c60fc69 servo: Merge #7497 - tests for devtools integration with network requests/responses (from psdh:devtest7473); r=jdm
Fixes #7473

Source-Repo: https://github.com/servo/servo
Source-Revision: 8027777e2409705b1d45cdd4c781e499fd5a7f0d
2015-09-25 11:35:57 -06:00
Ravi Shankar
62e8ea2732 servo: Merge #7698 - sorted the declarations in various files (from Wafflespeanut:sorting); r=frewsxcv
This is a direct extract from my abandoned PR for a lint (#7546), along with some rather clumsy modifications (only on `components/script/dom/mod.rs` and `components/style/lib.rs`), because I had to sort some of the files again to make peace with tidy, which hasn't been educated about sorting yet!

Source-Repo: https://github.com/servo/servo
Source-Revision: a7208869f2903e36f9b2f540b55b50283d7df466
2015-09-23 15:02:56 -06:00
Maciej Skrzypkowski
ca1a6a9ae5 servo: Merge #7707 - Add plugins for compositing and net crates #7699 (from mskrzypkows:compositing_net_plugins); r=jdm
Changed to_string calls to to_owned calls
where was a need.

Source-Repo: https://github.com/servo/servo
Source-Revision: d588ce8d8503bf0b340abfb13e2bd6a228cab900
2015-09-22 07:58:55 -06:00
Sam Gibson
e1e9ee181b servo: Merge #7654 - Move HSTS/CookieStorage to Arc<RwLock> from Ipc (from samfoo:hsts-cookie-arc); r=jdm
servo/servo#7421

Source-Repo: https://github.com/servo/servo
Source-Revision: 7f2d81933a6158926ff6d03acbc05f191cd5adb3
2015-09-19 02:01:06 -06:00
Aidan Hobson Sayers
6b19d9ac0e servo: Merge #7633 - Remove SslProvider, fixes #7627 (from aidanhs:aphs-remove-sslprovider); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: e107f112d87a4cac66e8aa1d5b2daf1e4bcdebc7
2015-09-14 14:57:55 -06:00
João Oliveira
ea333304bb servo: Merge #7549 - Move setting UserAgent header into http_loader::load, (from jxs:master); r=jdm
closes #7541

Source-Repo: https://github.com/servo/servo
Source-Revision: 35c30ab70df6821992769ff7a2b057cfe2f2673c
2015-09-14 08:57:42 -06:00
Eli Friedman
a3bcf79ae0 servo: Merge #7523 - Fix up some unnecessary uses of unsafe (from eefriedman:unnecessary-unsafe); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: be9a9ffda10fa2c50b13f79dabd49255f29f12f6
2015-09-09 00:05:17 -06:00
Sean McArthur
13f0336887 servo: Merge #7418 - Enable HTTP connection pooling (from jdm:httppool); r=jdm
Rebased and adjusted version of #6948. Closes #6948.

Source-Repo: https://github.com/servo/servo
Source-Revision: 366d4a83f1448e115cf998cc6c4e8c564773da65
2015-09-02 10:48:07 -06:00
Prabhjyot Singh Sodhi
ec2fc972d8 servo: Merge #7489 - removing unnecessary clones (from psdh:clearClone); r=jdm
Fixes #7485

Source-Repo: https://github.com/servo/servo
Source-Revision: 696ccf67943772c6eb496db729e3c22d5176c4a3
2015-09-01 07:02:56 -06:00
Sam Gibson
5e535fa6c6 servo: Merge #7139 - Testable net load (from samfoo:testable-net-load); r=jdm
*The goal of this PR is to get early feedback on this before I go too far down the rabbit hole. This new code path is working, and there's several tests I've written as a proof of concept. There are still some regressions that I'll be fixing in the coming days.*

I've abstracted out the request/response cycle so that it's no longer dependent on the Hyper request/response structs. Since request/response @ hyper are structs, not traits, it made mocking them for tests impossible.

Current issues/concerns:

* This relies on boxing the `HttpResponse` that gets returned from the `HttpRequester` because `HttpResponse` is unsized. I don't know if there's a more idiomatic rust-y way of doing this?
* This relies on boxing the `Read` that is now returned from `load` for the same reason.
* The devtools and resource manager channels are still passed into `load`. It might be easier to inject these as trait dependencies instead of chans as well?
* Needs more tests.

🎩

#6727

Source-Repo: https://github.com/servo/servo
Source-Revision: 7dda183022f9bee8b4bdffe8b4cf31e09b885d94
2015-08-30 20:07:40 -06:00
Josh Matthews
70e41073a5 servo: Merge #7436 - Improve debuggability of http_loader panics (from jdm:netthreadname); r=Manishearth
Source-Repo: https://github.com/servo/servo
Source-Revision: 645dd7ba03ea56f01f2e162c590ea047516320ac
2015-08-28 13:14:28 -06:00
Johann Tuffe
25ce9ab4be servo: Merge #7265 - Add alphabetical order check for use statements (from tafia:tidy-use); r=Ms2ger
close #7112

Source-Repo: https://github.com/servo/servo
Source-Revision: a5fbb2f2a6fa79755f975feff2435abb6a5dd0e9
2015-08-20 07:43:56 -06:00
João Oliveira
5bbd3b623e servo: Merge #7225 - Replace uses of for foo in bar.iter() and for foo in bar.iter_mut() (from jxs:master); r=nox
closes #7197

Source-Repo: https://github.com/servo/servo
Source-Revision: a1b3f477aa541fda4d1b6ccb02c3e56143f4d217
2015-08-15 03:03:21 -06:00
wilmoz
a8432c2ad7 servo: Merge #7140 - Remove Message suffix from NetworkEventMessage (from wilcus:master); r=jdm
https://github.com/servo/servo/issues/7129

Source-Repo: https://github.com/servo/servo
Source-Revision: 15a73614f4ae9f7b00a44aa66d899ab4a5254114
2015-08-11 01:34:47 -06:00
James Graham
8a181b2713 servo: Merge #6416 - Use hosts-replaced URL only when loading resources (from jgraham:hosts_replaced); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 8602d01af2b2081ea1e9d600abdb1ea609a65038
2015-08-05 08:01:03 -06:00
Sam Gibson
f6e09215f5 servo: Merge #6722 - Obey Strict-Transport-Security header (from samfoo:sts-headers); r=jdm
Resolves #6703.

Done:

* [x] When STS headers received, add the host to the HSTS list

Todo:

* [ ] Persist the in-memory list so that it's reloaded on the next browser boot
* [ ] Add tests to `http_loader::load` - it's pretty well completely untested right now, but it's a bit gnarly to untangle and without mocking, it's hard to deal with the dependency on making a real network request. Writing a mock request object should be doable for testing, but there's a lot going on in the function right now.

Source-Repo: https://github.com/servo/servo
Source-Revision: f1c26c59f177570a697c420308fb89d9773c7468
2015-08-02 11:14:02 -06:00
Patrick Walton
cd66568bea servo: Merge #6586 - script: Make the resource task communication use IPC channels (from pcwalton:resource-task-ipc); r=jdm
This change makes Servo use serialized messages over IPC channels for resource loading. The goal is to make it easier to make Servo multiprocess in the future. This patch does not make Servo multiprocess now; there are many other channels that need to be changed to IPC before that can happen. It does introduce a dependency on https://github.com/serde-rs/serde and https://github.com/pcwalton/ipc-channel for the first time.

At the moment, `ipc-channel` uses JSON for serialization. This is because serde does not yet have official support for bincode. When serde gains support for bincode, I'll switch to that. For now, however, the JSON encoding and decoding will constitute a significant performance regression in resource loading.

To avoid having to send boxed `AsyncResponseTarget` trait objects across process boundaries, this series of commits changes `AsyncResponseTarget` to wrap a sender only. It is then the client's responsibility to spawn a thread to proxy calls from that sender to the consumer of the resource data. This only had to be done in a few places. In the future, we may want to collapse those threads into one per process to reduce overhead. (It is impossible to continue to use `AsyncResponseTarget` as a boxed trait object across processes, regardless of how much work is done on `ipc-channel`. Vtables are fundamentally incompatible with IPC across mutually untrusting processes.)

In general, I was pretty pleased with how this turned out. The main changes are adding serialization functionality to various objects that `serde` does not know how to serialize natively—the most complicated being Hyper objects—and reworking `AsyncResponseTarget`. The overall structure of the code is unchanged, and other than `AsyncResponseTarget` no functionality was lost in moving to serialization and IPC.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 2eb122f394651232abd683fc576a5c4288bf277f
2015-07-31 16:06:36 -06:00
Patrick Walton
e83405fec0 servo: Merge #6745 - devtools: Convert the developer tools to run over IPC (from pcwalton:devtools-ipc); r=jdm
This was a large, invasive change.

r? @jdm

Source-Repo: https://github.com/servo/servo
Source-Revision: 4bc1db3fe85f2a1a04536f0f6045b53b1319f4bc
2015-07-27 11:09:38 -06:00
Sam Gibson
a39c05c1c8 servo: Merge #6490 - Implement HSTS (preload-only) (from samfoo:hsts-preload); r=jdm
Implement HSTS (preload-only) servo/servo#6105

* Downloads the HSTS preload list from the chromium repo (same as gecko), then convert it to a list appropriate for servo.
* Reads the preload list when creating a resource task, and implements STS for those domains.

Still todo:

* Read Strict-Transport-Security headers from servers and add details to the in-memory HSTS list. (note: this requires hyper or servo to implement an STS header struct. Hyper seems like the appropriate location, so I will create an issue/PR there soon). The work for this is nearly done with the exception of adding a new ControlMsg and the new header.
* Persist HSTS list to disk with known hosts (perhaps a different issue should be raised for this?)

Source-Repo: https://github.com/servo/servo
Source-Revision: ab3d6c472d409c1602c873dcdcb495a7fec9d4b0
2015-07-22 10:23:05 -06:00
Martin Robinson
2b8865b89f servo: Merge #6591 - Upgrade to rustc 1.3.0-dev (fddfd089b 2015-07-10) (from servo:rustup_2015-07-10); r=larsbergstrom
Depends on https://github.com/jgraham/webdriver-rust/pull/12.

Fixes #6020.

Source-Repo: https://github.com/servo/servo
Source-Revision: 9af229b83095f2f8cfe7b61003b85ddf781f4ea7
2015-07-14 13:40:22 -06:00
Eduard Burtescu
97ee3c496c servo: Merge #6301 - Use the correct log crate and setup env_logger in main (from eddyb:fix-logging-2); r=larsbergstrom
Fixes #6103.

Source-Repo: https://github.com/servo/servo
Source-Revision: 1587d8a301983b881b038c7e443ba6d1deb1f72f
2015-06-06 15:49:56 -05:00
Manish Goregaokar
d9657f9100 servo: Merge #6254 - Move to latest hyper everywhere, more package updates (from servo:rustup_20150601); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 20f63459ef198bf96679cbb72355917e7a774265
2015-06-02 12:53:37 -05:00
Corey Farwell
3d43073796 servo: Merge #6174 - Reduce max line length from 150 to 120 characters (from frewsxcv:cleanup-long-lines); r=SimonSapin
Part of https://github.com/servo/servo/issues/6041

Source-Repo: https://github.com/servo/servo
Source-Revision: 542519ebfd073662bc9421ac5fa0aa01ebc0d6fe
2015-05-24 18:27:26 -05:00
Simon Sapin
c76487e1bf servo: Merge #6021 - Upgrade to Hyper 0.4.0 (from SimonSapin:hyperup); r=Manishearth
r? @Manishearth

Source-Repo: https://github.com/servo/servo
Source-Revision: 8cacf20a075b3747509897599c37662721d18d1c
2015-05-12 12:42:49 -05:00
Himaja
b4daf62fd9 servo: Merge #5947 - Extend the developer tools support (from jdm:devtools); r=jdm
Implement HTTP request/response notifications per https://github.com/servo/servo/wiki/More-developer-tools-student-project .

Rebased from #5920.

Source-Repo: https://github.com/servo/servo
Source-Revision: ab589da1f464ed00b0105bc4531690da0118ea5b
2015-05-05 11:52:44 -05:00
Simon Sapin
b72bb5e7d5 servo: Merge #5935 - Upgrade Rust (from servo:rustup_2015-04-25); r=Ms2ger
r? everybody

Source-Repo: https://github.com/servo/servo
Source-Revision: 49aed6555dbc008c1a378c5cbb303f5467232b6b
2015-05-05 09:11:30 -05:00
Glenn Watson
d383783742 servo: Merge #5898 - Handle gzip decompression failure (encountered during jquery test suite work) without panic (from glennw:corrupt-gz); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 738f006afe36a06c8ed4f668904c76ba84e9f1af
2015-04-29 20:03:38 -05:00
Brandon DeRosier
15c52c90f8 servo: Merge #5424 - Add Accept header to HTTP loader (from bdero:bdero/accept-header); r=jdm
The value of the header is: `text/html;q=0.9,*/*;q=0.8`

Closes #5399

Source-Repo: https://github.com/servo/servo
Source-Revision: 21c38d0de8e82e29d187929535a73bfd297538b8
2015-04-26 22:13:30 -05:00
Ms2ger
c7955e722b servo: Merge #5847 - Avoid as_slice() / at_mut_slice() (from Ms2ger:slice); r=SimonSapin
Source-Repo: https://github.com/servo/servo
Source-Revision: 1389be37823fccf4108f4e79d0a3a793f0bbe93e
2015-04-26 05:30:28 -05:00
Marcus Klaas
f327dd7955 servo: Merge #5742 - Replace usage of ResponseSenders by LoadConsumer (from marcusklaas:issue-5718); r=jdm
This closes issue https://github.com/servo/servo/issues/5718.

Source-Repo: https://github.com/servo/servo
Source-Revision: f164cc253eb876d82ab7c52268751db250ef8f8f
2015-04-19 10:10:57 -05:00
Josh Matthews
3e5cee10f5 servo: Merge #5156 - Support opt-in async network events (from jdm:asyncnet); r=pcwalton,Manishearth
This implements a framework for opting in to receiving network events asynchronously. It also converts XMLHttpRequest to use them, and paves the way for better support for synchronous XHR using on-demand, targeted event loops instead of spinning the global event loop. This gives us complete feature parity with the existing XHR implementation, using fewer threads than before in the async case.

Source-Repo: https://github.com/servo/servo
Source-Revision: 3151497d498b001b4a783dce0595615c6fc40936
2015-04-16 11:33:06 -05:00
Corey Farwell
a0f726ff70 servo: Merge #5677 - Update WHATWG links to use HTTPS (from frewsxcv:https); r=Ms2ger
Extracted this out of #5649

This commit was created with the following commands:

```
find . -iname "*.webidl" -type f -print0 | xargs -0 sed -i '' 's/http:\(.*\)whatwg.org/https:\1whatwg.org/g'
```

```
find . -iname "*.rs" -type f -print0 | xargs -0 sed -i '' 's/http:\(.*\)whatwg.org/https:\1whatwg.org/g'
```

Source-Repo: https://github.com/servo/servo
Source-Revision: 4997d3a112354a407365fede1ab1944834a2e13c
2015-04-14 02:57:41 -05:00
Josh Matthews
92f2b44d8b servo: Merge #5568 - Remove int_uint from net (from jdm:net_uint); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: cad27a9d25390cda965c591f180a46061a2c19e9
2015-04-08 01:47:56 -05:00
Josh Matthews
ee7d78d6bb servo: Merge #5005 - Implement MIME sniffing (from jdm:mime-sniffing); r=jdm
This rebases and integrates #4209, removing the sniffer task (turns out it wasn't a great idea), and adds a `--sniff-mime-types` command line flag to enable sniffing for file:// and http:// resources. Tested against a random picture file on my harddrive. The actual MIME sniffing implementation can be extracted into a separate library separately.

Source-Repo: https://github.com/servo/servo
Source-Revision: c7e210f24c97be1057a652b3644332e7043bfeac
2015-04-07 12:48:06 -05:00
Manish Goregaokar
2674bab6a8 servo: Merge #5465 - Split out shared networking code into net_traits crate (from gilles-leblanc:issue-4476-b); r=jdm
Fixes #4476

Source-Repo: https://github.com/servo/servo
Source-Revision: d707d1b78e3393a1ed164af8ec855bd0ff119e55
2015-04-03 13:00:46 -06:00
Matt McCoy
80951f486a servo: Merge #5299 - Add HTTP compression (from mattnenterprise:http_compression); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: dbd16932e67c63a778362f71be028132279d5e91
2015-04-01 22:15:37 -06:00
Corey Farwell
28a0660573 servo: Merge #5312 - Cleanup 'view-source:' conditional (from frewsxcv:cleanup-view-source); r=jdm
Fixes #5304

Source-Repo: https://github.com/servo/servo
Source-Revision: 0c3615ced1c4b648e63ad8c33ea0885c45ce3fb1
2015-03-23 15:42:48 -06:00
Ms2ger
761d1d93b7 servo: Merge #5303 - Update some code that's feature-gated under core (from Ms2ger:core); r=jdm
Source-Repo: https://github.com/servo/servo
Source-Revision: 43f3f6c897916aea75773f74060ec84a338834d0
2015-03-21 12:57:46 -06:00