Closed
Bug 1429973
Opened 7 years ago
Closed 7 years ago
Make sure HTTP trailers can be received over H2
Categories
(Core :: Networking: HTTP, enhancement, P2)
Core
Networking: HTTP
Tracking
()
RESOLVED
FIXED
mozilla60
People
(Reporter: kershaw, Assigned: u408661)
References
Details
(Whiteboard: [necko-triaged])
Attachments
(4 files)
See bug 1413999 comment #59.
We have to make sure that server-timing trailers also works for h2.
Reporter | ||
Comment 1•7 years ago
|
||
Set the priority to P3, since chrome doesn't support server-timing trailers.
Priority: P2 → P3
Comment 2•7 years ago
|
||
this is a feature we want for server-timing despite chrome's support.
Priority: P3 → P2
Comment 3•7 years ago
|
||
the temptation will be to implement this with the normal h2->h1-semantic stuff that's already going on (i.e. the way we serialize h1 headers from hpack and let the h1 parser reparse them.. but
we currently turn h2 streams into h1 EOF terminated streams for delimiters.. which is really efficient. the temptation might be to turn them into h1 chunked streams so we could just reuse the trailer parser, but I don't really think the overhead of the chunk parser is a great idea (it does a lot of memmoves.. there's a bug open on that, but thankfully its pretty much over taken by events with the rise of h2).
so instead I think just some special case QI needs to be done somewhere.. sorry that's not real helpful - its more of a please "don't do it this way" than a hint on what to do..
I'm going to take this one. I had the same idea as you, Pat - avoid the chunked parser.
Assignee: kershaw → hurley
Comment 5•7 years ago
|
||
Tracking this for 59/60. Do you intend to try to fix this or un-whitelist the (or some) tests for 59?
status-firefox60:
--- → affected
tracking-firefox59:
--- → +
tracking-firefox60:
--- → +
Flags: needinfo?(hurley)
No, this won't be worth trying to get into 59. None of this is exposed up to the DOM yet, everything that's landed (including the HTTPS-limiting) is necko-only. I've only just un-bitrotted the DOM patches enough to start testing to ensure everything's flowing as it should, but that was a very hacky un-bitrotting, and there's one known bug with those patches that I haven't even started in on. So long as this lands before the DOM patches (which it will), there's no need to rush this one.
Flags: needinfo?(hurley)
Updated•7 years ago
|
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 11•7 years ago
|
||
mozreview-review |
Comment on attachment 8951388 [details]
Bug 1429973 part 1 - plumb through trailers in h2 to support server-timing.
https://reviewboard.mozilla.org/r/220658/#review226630
Code analysis found 1 defect in this patch:
- 1 defect found by clang-tidy
You can run this analysis locally with:
- `./mach static-analysis check path/to/file.cpp` (C/C++)
If you see a problem in this automated review, please report it here: http://bit.ly/2y9N9Vx
::: netwerk/protocol/http/nsHttpTransaction.cpp:2460
(Diff revision 1)
> + newline = len;
> + }
> +
> + int32_t end = aTrailers[newline - 1] == '\r' ? newline - 1 : newline;
> + nsDependentCSubstring line(aTrailers, cur, end);
> + nsHttpAtom hdr = {0};
Warning: Use nullptr [clang-tidy: modernize-use-nullptr]
nsHttpAtom hdr = {0};
^
nullptr
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Attachment #8951387 -
Flags: review?(mcmanus)
Attachment #8951388 -
Flags: review?(mcmanus)
Attachment #8951389 -
Flags: review?(mcmanus)
Attachment #8951390 -
Flags: review?(mcmanus)
Attachment #8951387 -
Flags: review?(mcmanus) → review?(daniel)
Attachment #8951388 -
Flags: review?(mcmanus) → review?(daniel)
Attachment #8951389 -
Flags: review?(mcmanus) → review?(daniel)
Attachment #8951390 -
Flags: review?(mcmanus) → review?(daniel)
Comment 19•7 years ago
|
||
mozreview-review |
Comment on attachment 8951387 [details]
Bug 1429973 part 0 - Update node-http2 to v3.3.8 for required bugfix.
https://reviewboard.mozilla.org/r/220656/#review228524
Attachment #8951387 -
Flags: review?(daniel) → review+
Comment 20•7 years ago
|
||
mozreview-review |
Comment on attachment 8951388 [details]
Bug 1429973 part 1 - plumb through trailers in h2 to support server-timing.
https://reviewboard.mozilla.org/r/220658/#review228526
::: netwerk/protocol/http/Http2Stream.cpp:1153
(Diff revision 3)
> +Http2Stream::ConvertResponseTrailers(Http2Decompressor *decompressor,
> + nsACString &aTrailersIn)
> +{
> + LOG3(("Http2Stream::ConvertResponseTrailers %p", this));
> + nsAutoCString flatTrailers;
> + flatTrailers.SetCapacity(aTrailersIn.Length() + 512);
Can we have a comment about the magic number 512 in here?
Attachment #8951388 -
Flags: review?(daniel) → review+
Comment 21•7 years ago
|
||
mozreview-review |
Comment on attachment 8951389 [details]
Bug 1429973 part 2 - Move server-timing tests into http/2.
https://reviewboard.mozilla.org/r/220660/#review228528
Attachment #8951389 -
Flags: review?(daniel) → review+
Comment 22•7 years ago
|
||
mozreview-review |
Comment on attachment 8951390 [details]
Bug 1429973 part 3 - Remove hidden pref to allow plaintext server-timing.
https://reviewboard.mozilla.org/r/220662/#review228530
Attachment #8951390 -
Flags: review?(daniel) → review+
Assignee | ||
Comment 23•7 years ago
|
||
mozreview-review-reply |
Comment on attachment 8951388 [details]
Bug 1429973 part 1 - plumb through trailers in h2 to support server-timing.
https://reviewboard.mozilla.org/r/220658/#review228526
> Can we have a comment about the magic number 512 in here?
Heh, it's cargo-culted from the other Convert*Headers methods. I'll add a comment on each one, just for completeness. (To be clear - I don't know *why* we use 512, other than to give some amount of space to expand into without reallocating. Why 512 specifically was chosen is unclear.)
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 30•7 years ago
|
||
Pushed by hurley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8438cc4db770
part 0 - Update node-http2 to v3.3.8 for required bugfix. r=bagder
https://hg.mozilla.org/integration/autoland/rev/446096b9960d
part 1 - plumb through trailers in h2 to support server-timing. r=bagder
https://hg.mozilla.org/integration/autoland/rev/4bc56ae6d0fe
part 2 - Move server-timing tests into http/2. r=bagder
https://hg.mozilla.org/integration/autoland/rev/69c3b8eeba63
part 3 - Remove hidden pref to allow plaintext server-timing. r=bagder
Comment 31•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/8438cc4db770
https://hg.mozilla.org/mozilla-central/rev/446096b9960d
https://hg.mozilla.org/mozilla-central/rev/4bc56ae6d0fe
https://hg.mozilla.org/mozilla-central/rev/69c3b8eeba63
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla60
You need to log in
before you can comment on or make changes to this bug.
Description
•