Add Http3 support
Categories
(Core :: Networking: HTTP, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox72 | --- | fixed |
People
(Reporter: dragana, Assigned: dragana)
References
(Blocks 1 open bug)
Details
(Whiteboard: [necko-triaged])
Attachments
(13 files, 3 obsolete files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
We will add http3 support behind a pref.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 1•5 years ago
|
||
Updated•5 years ago
|
Assignee | ||
Comment 2•5 years ago
|
||
Assignee | ||
Comment 3•5 years ago
|
||
Updated•5 years ago
|
Assignee | ||
Comment 4•5 years ago
|
||
Assignee | ||
Comment 5•5 years ago
|
||
Assignee | ||
Comment 6•5 years ago
|
||
Assignee | ||
Comment 7•5 years ago
|
||
Assignee | ||
Comment 8•5 years ago
|
||
Assignee | ||
Comment 9•5 years ago
|
||
Assignee | ||
Comment 10•5 years ago
|
||
Assignee | ||
Comment 11•5 years ago
|
||
Assignee | ||
Comment 12•5 years ago
|
||
Assignee | ||
Comment 13•5 years ago
|
||
Assignee | ||
Comment 14•5 years ago
|
||
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Assignee | ||
Comment 15•5 years ago
|
||
Assignee | ||
Comment 16•5 years ago
|
||
Updated•5 years ago
|
Assignee | ||
Comment 17•5 years ago
|
||
Assignee | ||
Comment 18•5 years ago
|
||
Patch D47228 neqo-crypto/build.rs changes. will be integrated into neqo and review there.
Therefore I am not added reviews for "Part 6 - Import neqo" yet
Updated•5 years ago
|
Comment 19•5 years ago
|
||
Dragana: I don't know anything about Http3. Can you clarify why you have asked me to review? I guess it's somehow related to the fact that this is mostly Rust code, but I'd like a clearer understanding of what kind of review you want me to do, especially given how much code there is here.
Assignee | ||
Comment 20•5 years ago
|
||
(In reply to Nicholas Nethercote [:njn] from comment #19)
Dragana: I don't know anything about Http3. Can you clarify why you have asked me to review? I guess it's somehow related to the fact that this is mostly Rust code, but I'd like a clearer understanding of what kind of review you want me to do, especially given how much code there is here.
Http3 is implemented in rust. The neqo repo is https://github.com/mozilla/neqo.The neqo code is reviewed on its own so you do not need to review it here.
Patch "Part 6 - Import neqo" copies the neqo repo into gecko(necko). It uses update.sh script for that and it applies gecko.patch. It also updates README_MOZILLA. floydnj suggested to do it this way. For this patch I would like you only to review how we import neqo, (i.e. files update.sh, gecko.patch and README_MOZILLA) and if the procedure corresponds to how we import rust code.
Patch "Part 7- Add neqo-necko API" is the rust-c++ interface for neqo. I would like you to review this one. Necko developers do not have a lot of experience with rust-c++ interfaces. NeqoHttp3Conn is only used by Http3Session (Http3Session is added in patch "Part 9 - Add Http3Session/Http3Stream. r=mayhemer"). Only Http3Session creates it, accesses it and it is destroyed when Http3Session is destroyed. Http3Session only connects neqo to specifics of necko. I am happy to give you more details. I will also share with you a doc that I wrote about how neqo-necko should work. The doc is written more for a necko developer (some necko details are not explain, but I am happy to answer any questions).
"Part 8 - Add new vendored crates required by neqo and neqo_glue." this changes are made by running "mach vendor rust".
About "Part 13 - Add extra-bindgen-flags": neqo-crypto uses nss/nspr, the same nss firefox uses, and neqo-crypto/build.rs needs extra-bindgen-flags to properly compile. I was told that using such a file is the preferred way to configure rust compiler.
Comment 21•5 years ago
|
||
I have very little experience with importaing and vendoring Rust code into mozilla-central, bindgen, and such things. heycam has kindly offered to take a look, so I will forward the reviews to him, except for part 13 which feels more appropriate for glandium.
Comment 22•5 years ago
•
|
||
Dragana, I don't wish to second guess Nathan's suggestion, but can you explain why we should vendor in the code using an update script like this, as opposed to adding them as dependencies to the neqo_glue crate, and vendoring them in with mach vendor rust
? Is it that you will soon be moving towards having the mozilla-central copy of the code be the authoritative source (at which point you'll remove update.sh)?
Assignee | ||
Comment 23•5 years ago
|
||
(In reply to Nicholas Nethercote [:njn] from comment #21)
I have very little experience with importaing and vendoring Rust code into mozilla-central, bindgen, and such things. heycam has kindly offered to take a look, so I will forward the reviews to him, except for part 13 which feels more appropriate for glandium.
Thanks!
Assignee | ||
Comment 24•5 years ago
|
||
(In reply to Cameron McCormack (:heycam) from comment #22)
Dragana, I don't wish to second guess Nathan's suggestion, but can you explain why we should vendor in the code using an update script like this, as opposed to adding them as dependencies to the neqo_glue crate, and vendoring them in with
mach vendor rust
? Is it that you will soon be moving towards having the mozilla-central copy of the code be the authoritative source (at which point you'll remove update.sh)?
Nathan and I did not discussed this for very long.
There are other code that is pulled in in this way, e.g. https://searchfox.org/mozilla-central/source/media/audioipc
Thinking of it, I do not see reason why we should not be able to vendor it using mach vendor rust
. At the beginning when I first wanted to make these patches neqo was changing too fast and we were not good in making releases, so it was hard to keep up with two repos (mozilla-cental and neqo) therefore I pulled it in. We are still not doing well making neqo releases but that is only a question of coordination.
There are no plans in the near future, if ever, to make the mozilla-central copy of the code be the authoritative source. The plan was to handle it as nss code, a separate branch that is pulled in from time to time. Probably the rust version of this is to use mach vendor rust
or are there advantages of using update.sh (I am new to rust :), my apologies for dummy questions)?
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 26•5 years ago
|
||
Pushed by rmaries@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/e6ff3db0a421 Part 0 - Make necko recognize Http3. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/c28174eaccbe Part 1 - Make Dashboard knows http3.r=mayhemer https://hg.mozilla.org/integration/autoland/rev/58ca75a25253 Part 2 - Add NS_ERROR_NET_HTTP3_PROTOCOL_ERROR error. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/21b721e37d39 Part 3 - Add Http3 to nsHttpConnectionInfo. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/f09b9a4ba633 Part 4 - Add AltSvc support for Http3. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/6b6b75fbec7f Part 5 - Add Http3 prefs. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/6b80553abc74 Part 6 - Add neqo-necko API. r=mayhemer,heycam https://hg.mozilla.org/integration/autoland/rev/63b7f1ff1714 Part 7 - Add new vendored crates required by neqo and neqo_glue. r=heycam https://hg.mozilla.org/integration/autoland/rev/496ec0c5a60f Part 8 - Add Http3Session/Http3Stream. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/97ff4a06c2da Part 9 - Make Http3 connection and include http3 in nsHttpConnectionMgr. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/c5d8950b4a4b Part 10 - Implement a posibility to use alt-svc on transaction restart in some cases. r=mayhemer mayhemer https://hg.mozilla.org/integration/autoland/rev/a5df33ec7393 Part 11 - Missing includes. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/3a458217248d Part 12 - Add extra-bindgen-flags r=glandium
Comment 27•5 years ago
•
|
||
Backed out for failing xpcshell at test_anonymous-coalescing.js
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=273808866&repo=autoland&lineNumber=6758
Backout: https://hg.mozilla.org/integration/autoland/rev/1efec06dae2fc6c25b4f0ca1365c01e4b470023f
Assignee | ||
Comment 28•5 years ago
|
||
(In reply to Andreea Pavel [:apavel] from comment #27)
Backed out for failing xpcshell at test_anonymous-coalescing.js
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=273808866&repo=autoland&lineNumber=6758
Backout: https://hg.mozilla.org/integration/autoland/rev/1efec06dae2fc6c25b4f0ca1365c01e4b470023f
Thank you for the report. An sorry for the trouble.
The problem is that the test is racy. I will add one more patch to fix the test.
Assignee | ||
Comment 29•5 years ago
|
||
Here is a try run with the patch from bug 1592927.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=8b0108792aa8c6ea15559100943bc0eba2d2da90&selectedJob=273875374
We can land this code as soon as the other patch lands.
Comment 30•5 years ago
|
||
Before relanding please take a look at the large increase in static constructors (bug 1593217) that was seen while this patch was briefly on autoland.
Comment 31•5 years ago
|
||
(In reply to :dmajor from comment #30)
Before relanding please take a look at the large increase in static constructors (bug 1593217) that was seen while this patch was briefly on autoland.
Comment 32•5 years ago
|
||
Pushed by csabou@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7a44e34eda1e Part 0 - Make necko recognize Http3. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/037fb8be69b0 Part 1 - Make Dashboard knows http3.r=mayhemer https://hg.mozilla.org/integration/autoland/rev/100e9706f5a3 Part 2 - Add NS_ERROR_NET_HTTP3_PROTOCOL_ERROR error. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/b4fdc4c7aa66 Part 3 - Add Http3 to nsHttpConnectionInfo. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/2fd4b5760b2b Part 4 - Add AltSvc support for Http3. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/325ef0639258 Part 5 - Add Http3 prefs. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/d4a5badae723 Part 6 - Add neqo-necko API. r=mayhemer,heycam https://hg.mozilla.org/integration/autoland/rev/2801613e5d2d Part 7 - Add new vendored crates required by neqo and neqo_glue. r=heycam https://hg.mozilla.org/integration/autoland/rev/0bf045553a40 Part 8 - Add Http3Session/Http3Stream. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/fb1ae3b0bd49 Part 9 - Make Http3 connection and include http3 in nsHttpConnectionMgr. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/dbbba0e989d4 Part 10 - Implement a posibility to use alt-svc on transaction restart in some cases. r=mayhemer mayhemer https://hg.mozilla.org/integration/autoland/rev/2e0b0af37fe9 Part 11 - Missing includes. r=mayhemer https://hg.mozilla.org/integration/autoland/rev/0f08e0fe8956 Part 12 - Add extra-bindgen-flags r=glandium
Assignee | ||
Comment 33•5 years ago
|
||
(In reply to :dmajor from comment #30)
Before relanding please take a look at the large increase in static constructors (bug 1593217) that was seen while this patch was briefly on autoland.
I will take a look. The comment #23 i not me, I did not try to reland it.
Comment 34•5 years ago
|
||
FWIW froydnj made a suggestion about the constructors on the Phabricator review.
Comment 35•5 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/7a44e34eda1e
https://hg.mozilla.org/mozilla-central/rev/037fb8be69b0
https://hg.mozilla.org/mozilla-central/rev/100e9706f5a3
https://hg.mozilla.org/mozilla-central/rev/b4fdc4c7aa66
https://hg.mozilla.org/mozilla-central/rev/2fd4b5760b2b
https://hg.mozilla.org/mozilla-central/rev/325ef0639258
https://hg.mozilla.org/mozilla-central/rev/d4a5badae723
https://hg.mozilla.org/mozilla-central/rev/2801613e5d2d
https://hg.mozilla.org/mozilla-central/rev/0bf045553a40
https://hg.mozilla.org/mozilla-central/rev/fb1ae3b0bd49
https://hg.mozilla.org/mozilla-central/rev/dbbba0e989d4
https://hg.mozilla.org/mozilla-central/rev/2e0b0af37fe9
https://hg.mozilla.org/mozilla-central/rev/0f08e0fe8956
Assignee | ||
Comment 36•5 years ago
|
||
(In reply to Honza Bambas (:mayhemer) from comment #31)
(In reply to :dmajor from comment #30)
Before relanding please take a look at the large increase in static constructors (bug 1593217) that was seen while this patch was briefly on autoland.
This is fixed now. Removing need-info.
Updated•5 years ago
|
Description
•