[socket process] Implement nsIThreadRetargetableRequest for HttpTransactionParent
Categories
(Core :: Networking, defect, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox79 | --- | fixed |
People
(Reporter: kershaw, Assigned: kershaw)
References
(Blocks 1 open bug)
Details
(Whiteboard: [necko-triaged])
Attachments
(2 files)
Currently, HttpTransactionParent doesn't implement nsIThreadRetargetableRequest methods.
I think this is some kind of optimization.
Comment 1•6 years ago
|
||
nsIThreadRetargetableRequest is you as a interface to check if listeners allow OnDataAvailable off the main thread. We do not need it for HttpTransactionParent.
Comment 2•6 years ago
|
||
(In reply to Dragana Damjanovic [:dragana] from comment #1)
nsIThreadRetargetableRequest is you as a interface to check if listeners allow OnDataAvailable off the main thread. We do not need it for HttpTransactionParent.
httpChannel listeners.
| Assignee | ||
Comment 3•6 years ago
|
||
I mean we might have to implement RetargetDelivertTo like [1].
If e10s is disabled, I think we have to support run ODA off main thread.
hey @Kershaw
Can I take this up ?
Could you elaborate more on this ?
Thanks
Mahak :)
| Assignee | ||
Comment 5•5 years ago
|
||
(In reply to Mahak from comment #4)
hey @Kershaw
Can I take this up ?
Could you elaborate more on this ?
Thanks
Mahak :)
Thanks for offering this help.
Here are some steps for letting HttpTransactionParent support nsIThreadRetargetableRequest.
- Let
HttpTransactionParentderivensIThreadRetargetableRequestand implement the required functions. See what we did inHttpChannelChildwould be helpful. - Please refer to the implementation of
RetargetDeliveryToat here. We should just simply save the target inHttpTransactionParent. - Let's modify
HttpTransactionParent::GetNeckoTargetto let it return the event target we saved in step 2. - I think the best way to test this is turn off e10s (set
browser.tabs.remote.autostartto false) and enable http over socket process (setnetwork.http.network_access_on_socket_process.enabledto true). Then, turn on http log and load some websites to see ifnsHttpChannel::OnDataAvailableis really called off main thread.
Updated•5 years ago
|
| Assignee | ||
Comment 7•5 years ago
•
|
||
Steal this from Mahak, since there is no activity for more than two months.
Mahak, I really appreciate your previous work. I need this bug to be fixed soon, so I'd like to take this.
| Assignee | ||
Comment 8•5 years ago
|
||
(In reply to Dragana Damjanovic [:dragana] from comment #1)
nsIThreadRetargetableRequest is you as a interface to check if listeners allow OnDataAvailable off the main thread. We do not need it for HttpTransactionParent.
I've seen a lot warnings below when running mochitest with socket process on try. It seems that some fetch code in parent process needs to retarget ODA off main thread even if e10s is enabled.
[task 2020-06-11T13:42:34.454Z] 13:42:34 INFO - GECKO(1591) | [Parent 1591, Main Thread] WARNING: 'NS_FAILED(rr->RetargetDeliveryTo(sts))', file /builds/worker/checkouts/gecko/dom/fetch/FetchDriver.cpp, line 1201
| Assignee | ||
Comment 9•5 years ago
|
||
Comment 10•5 years ago
|
||
Comment 11•5 years ago
|
||
| bugherder | ||
Description
•