HTTP/3 server can start sending the response before the whole request is sent (e.g. server decides
to ignore the POST data). In such case Http3Stream::OnWriteSegment() can be called in a state when
we don't want to read the data yet. We need to return NS_BASE_STREAM_WOULD_BLOCK instead of NS_OK
to avoid hitting an assertion in nsHttpTransaction::WritePipeSegment().
Differential Revision: https://phabricator.services.mozilla.com/D79984
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.
Differential Revision: https://phabricator.services.mozilla.com/D79240
I think at this point we can remove all of RemoteWebProgressManager, some/all of the TabProgressListener recreations, and probably a bunch more.
Differential Revision: https://phabricator.services.mozilla.com/D79240
We're going to send OnStartRequest via PHttpBackgroundChannel, anything sending via PHttpChannel before OnStartRequest
would be a race.
https://phabricator.services.mozilla.com/D49773#inline-303635
This link implicates that OverrideReferrerInfoDuringBeginConnect is fine just before OnStartRequest. To reduce the
racy and number of IPCs, I move the referrer info overridden to HttpChannelParent::OnStartRequest.
Differential Revision: https://phabricator.services.mozilla.com/D79580
Errors are lost between Http3Stream::OnReadSegment() and Http3Stream::ReadSegments() in nsBufferedInputStream::ReadSegments(). In case of NS_BASE_STREAM_WOULD_BLOCK this means we proceed to the next state without sending all request data.
Differential Revision: https://phabricator.services.mozilla.com/D79262
Since system info service may not be available in socket process, user agent components should be initialized in parent process only.
Differential Revision: https://phabricator.services.mozilla.com/D79153
This removes the diagnostic warnings which used to be logged when the
Large-Allocation header was present, but failed to switch into a
Large-Allocation process. Due to the low adoption of the header, this shouldn't
be too large of a problem, but we can look into re-adding the diagnostics if
needed in the future.
The new codepath no longer performs multiple network requests for
Large-Allocation resources, and now relies on the battle-tested
DocumentLoadListener codepath for process switching.
Differential Revision: https://phabricator.services.mozilla.com/D78998
As tabbrowser now uses `PROCESS_BEHAVIOR_STANDARD`, `PROCESS_BEHAVIOR_CUSTOM` is
now unused. This patch removes that now-unused code.
Differential Revision: https://phabricator.services.mozilla.com/D78972
Due to the PPDC process switching changes, we also handle switching between
remote and non-remote browsers with DocumentLoadListener. Adds support to
CanonicalBrowsingContext::ChangeFrameRemoteness to allow it to handle non-remote
browsers as well.
Differential Revision: https://phabricator.services.mozilla.com/D78971
This new process switching behavior is only enabled for some browser elements,
which have specified a specific attribute. Turning this on for all browsers with
a `remote` attribute causes breakage in reftests.
The initial version does not handle switching from remote to parent or
vice-versa, that is covered in a later part.
Differential Revision: https://phabricator.services.mozilla.com/D78969
This removes the diagnostic warnings which used to be logged when the
Large-Allocation header was present, but failed to switch into a
Large-Allocation process. Due to the low adoption of the header, this shouldn't
be too large of a problem, but we can look into re-adding the diagnostics if
needed in the future.
The new codepath no longer performs multiple network requests for
Large-Allocation resources, and now relies on the battle-tested
DocumentLoadListener codepath for process switching.
Differential Revision: https://phabricator.services.mozilla.com/D78998