Open Bug 1460494 Opened 8 years ago Updated 4 years ago

Network monitor header pane only works upon download completion

Categories

(DevTools :: Netmonitor, defect, P3)

defect

Tracking

(Not tracked)

People

(Reporter: github, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36 Steps to reproduce: 1. Open developer tools, switch to the network monitor 2. Browse to a page with a video (ie https://en.wikipedia.org/wiki/Big_Buck_Bunny) 3. Switch to the "All" tab 4. Start playing the video 5. Click on the Big_Buck_Bunny at the bottom of the list 6. Right click on Big_Buck_Bunny -> Copy -> Copy as CURL Actual results: After 5, the headers pane is empty After 6, the headers pane is populated Expected results: After 5, the headers pane should be populated
This is a branch of bug 1420513
Component: Untriaged → Developer Tools: Netmonitor
Thanks for the report! Honza
Status: UNCONFIRMED → NEW
Has STR: --- → yes
Ever confirmed: true
Priority: -- → P3
Summary: Network monitor copy as curl only works upon download completion → Network monitor header pane only works upon download completion
UA doesn't look right - that's a Chrome UA. Could you post the UA or nightly build that you were using?
Note that this issue extends to the Cookies, Params, Timings and Security panes - basically, with an unfinished request, the only pane that should be blank is Response. Even after "Copy as cURL" (which now forces the response headers to be loaded via "this.props.connector.requestData(id, "requestHeaders");"), only the Headers pane is populated; Cookies remains blank. In general I suspect what needs to happen is that we need to add "requestData" calls to each panel render function, but I don't know if this would affect performance (i.e. how often render() gets called). I'm also not sure why the request headers, cookies and post data aren't immediately available for every request in the net monitor - under what circumstances can you have a request in the net monitor without request information? Maybe we need some kind of two-phase loading of the request data, where we populate request props as soon as the request hits the net monitor, and then populate response props when the request completes. But, I'm not familiar enough with the netmonitor codebase to know if this is sound or easily doable - Honza, comments?
Ah, I posted the bug report using Chrome. The User-Agent was auto-added. Bug is present in both Firefox 59 and 62.0a1 (2018-05-09) (64-bit). That's a user agent of: Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0 I think the key observation is that there are a few interesting events in the life-cycle of an HTTP request/response (plus DNS/TCP/QUIC/TLS events). 1. HTTP request created 2. HTTP request headers sent 3. HTTP request body sent 4. HTTP response headers received 5. HTTP response body received As each of these things happen, ideally, there'd be more data immediately available in the net monitor. My particular case calls out a lack of #4. I haven't tested the rest. I doubt (although I know little to nothing about the Firefox internals) it's viable to do a two-phase load, because the first load would be racing with the HTTP response header parsing.
Product: Firefox → DevTools
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.