1. Use ScopeExit to ensure mListener->OnStartRequest() is invoked before exit CallOnStartRequest.
2. Add assertion to ensure OnStartRequest called before OnStopRequest.
MozReview-Commit-ID: FgONlk5HPNz
--HG--
extra : rebase_source : ffe386bc8bea6defb216ecf149a29deacdb3737a
UAOverridesBootstrapper.js is introduced to delay the initialization of
UserAgentOverrides.jsm until the creation of the first nsHttpChannel.
Uninit will be triggered at profile-change-net-teardown because no network
traffice after this point.
MozReview-Commit-ID: F8Lpn6RyZEm
--HG--
extra : rebase_source : 7c3649b50ad8594dc0968961fbbd2766d0d98b0a
system-info might need to be construct while creating nsHttpHandler and it might take up to 30ms.
Lazy loading the DEFAULT_UA can delay the creation of nsHttpHandler after start-up.
MozReview-Commit-ID: FtIpKjcY38r
--HG--
extra : rebase_source : 8061ed3ce6c42955e52f494166958f5b63ab940b
This function is arguably nicer than calling NS_ProcessNextEvent
manually, is slightly more efficient, and will enable better auditing
for NS_ProcessNextEvent when we do Quantum DOM scheduling changes.
nsAHttpTransaction::Available() obtained a bytecount from the abstract
transaction's input stream. If that stream was derived from a file://
it would create janky IO - so remove the interface.
Http2Push maintains a non-inherited interface which is used to check
the number of bytes it has internally buffered in memory.
MozReview-Commit-ID: IQHt8yGsqDE
--HG--
extra : rebase_source : 64449c6bd743119ea7626a3b2b2b91a376280021
UAOverridesBootstrapper.js is introduced to delay the initialization of
UserAgentOverrides.jsm until the creation of nsHttpHandler in chrome process.
Uninit will be triggered at profile-change-net-teardown because no network
traffice after this point.
MozReview-Commit-ID: F8Lpn6RyZEm
--HG--
extra : rebase_source : b516209f96ec81deb54aab3c038803beb3cea441
system-info might need to be construct while creating nsHttpHandler and it might take up to 30ms.
Lazy loading the DEFAULT_UA can delay the creation of nsHttpHandler after start-up.
MozReview-Commit-ID: FtIpKjcY38r
--HG--
extra : rebase_source : 8061ed3ce6c42955e52f494166958f5b63ab940b
This is also the non-broken way to fix bug 1346392. Instead of waiting
until the auth handler gets its hands on things, we break layering a bit
and inspect the response headers as soon as we decompress them to see if
there's any connection-oriented auth being requested. If there is, we
treat the situation as if we got a RST_STREAM or GOAWAY with
HTTP_1_1_REQUIRED.
We were able to re-purpose the NS_ERROR_ABORT code path that was
previously used with an inappropriate HTTP status code when talking to
an HTTPS proxy over http/2, as that usage was removed a while back from
the stream, though we still had the (dead) code in the session to handle
the stream giving us that return value. The error code was changed to
NS_ERROR_NET_RESET, however, to give a better description of what's
going on.
MozReview-Commit-ID: DLjOIIiXGrV
--HG--
extra : rebase_source : 703fde39432808cabd05b48aa40165e53ebc5ed1
nsAHttpTransaction::Available() obtained a bytecount from the abstract
transaction's input stream. If that stream was derived from a file://
it would create janky IO - so remove the interface.
Http2Push maintains a non-inherited interface which is used to check
the number of bytes it has internally buffered in memory.
MozReview-Commit-ID: IQHt8yGsqDE
--HG--
extra : rebase_source : 78dbd5cae35bc6cb1ce2f03192226cb85564298e
This patch prevents the following error:
AltDataOutputStreamChild::Close -> SendClose()
AltDataOutputStreamChild::Release -> Send__delete__()
AltDataOutputStreamParent::RecvClose() -> SendError()
AltDataOutputStreamParent::ActorDestroy -> mIPCOpen = false
AltDataOutputStreamChild::RecvError -> === Crash - object was deleted ===
We introduce the DeleteSelf message.
AltDataOutputStreamChild::Release -> SendDeleteSelf()
AltDataOutputStreamParent::RecvDeleteSelf -> mIPCOpen = false; SendDeleteSelf()
AltDataOutputStreamChild::RecvDeleteSelf -> Send__delete__()
The parent will not send any more messages after receiving the DeleteSelf message.
MozReview-Commit-ID: I9RQ5I7eSt9
--HG--
extra : rebase_source : 8f918d24595248149ebd3857e05e38dc5237059b
nsAHttpTransaction::Available() obtained a bytecount from the abstract
transaction's input stream. If that stream was derived from a file://
it would create janky IO - so remove the interface.
Http2Push maintains a non-inherited interface which is used to check
the number of bytes it has internally buffered in memory.
MozReview-Commit-ID: IQHt8yGsqDE
--HG--
extra : rebase_source : 6b3b210a8f6736887b5076c90621d678b038bcad