Chromium Code Reviews
DescriptionChange the way BidirectionalStreamQuicImpl detects that a stream/session
was closed abnormally.
Currently BidirectionalStreamQuicImpl::OnClose() does not invoke
NotifyError if the stream and connection error codes are both
NO_ERROR. However, this is not guaranteeded to be true when a stream
shuts down normally. For example, if the connection is closed with
QUIC_NO_ERROR (which is not expected behavior, but is possible) then
NotifyError will not be invoked. Now, it turns out that the current code
handles this case, perhaps inadvertantly, by invoking NotifyError
in OnSessionClosed.
As part of crbug.com/716563, I'm attempting to remove the upcalls from
the QUIC layer to the HTTP layer, so I will be removing OnSessionClosed.
In order to handle the NO_ERROR case, we need a better way to detect
that a stream was closed normally. Thankfully, we can do that by
checking that a fin was sent and a fin was received.
This change also clears session_ in ResetStream which ensures that
OnSessionClosed is not invoked after OnClose is called (and makes it
more obvious that the follow-up CL to remove OnSessionClosed is safe).
BUG=716563
Review-Url: https://codereview.chromium.org/2851293002
Cr-Commit-Position: refs/heads/master@{#468714}
Committed: https://chromium.googlesource.com/chromium/src/+/5bc140b118c615e92e0393d8baf846d1a9bcbdba
Patch Set 1 #
Total comments: 5
Patch Set 2 : Rebase #
Depends on Patchset: Dependent Patchsets: Messages
Total messages: 15 (9 generated)
|
|||||||||||||||||||