| Index: net/spdy/spdy_stream.cc
|
| diff --git a/net/spdy/spdy_stream.cc b/net/spdy/spdy_stream.cc
|
| index 4470dfc3d70d6c04ac88fd29582189d2dda6c427..7db3b8c375d66a1fa4543403475886cc3703741d 100644
|
| --- a/net/spdy/spdy_stream.cc
|
| +++ b/net/spdy/spdy_stream.cc
|
| @@ -144,7 +144,7 @@ void SpdyStream::PushedStreamReplayData() {
|
|
|
| // TODO(akalin): This call may delete this object. Figure out what
|
| // to do in that case.
|
| - int rv = delegate_->OnResponseReceived(*response_, response_time_, OK);
|
| + int rv = delegate_->OnResponseHeadersReceived(*response_, response_time_, OK);
|
| if (rv == ERR_INCOMPLETE_SPDY_HEADERS) {
|
| // We don't have complete headers. Assume we're waiting for another
|
| // HEADERS frame. Since we don't have headers, we had better not have
|
| @@ -368,7 +368,7 @@ void SpdyStream::SetRequestTime(base::Time t) {
|
| request_time_ = t;
|
| }
|
|
|
| -int SpdyStream::OnResponseReceived(const SpdyHeaderBlock& response) {
|
| +int SpdyStream::OnResponseHeadersReceived(const SpdyHeaderBlock& response) {
|
| int rv = OK;
|
|
|
| metrics_.StartStream();
|
| @@ -406,10 +406,11 @@ int SpdyStream::OnResponseReceived(const SpdyHeaderBlock& response) {
|
|
|
| if (delegate_) {
|
| // May delete this object.
|
| - rv = delegate_->OnResponseReceived(*response_, response_time_, rv);
|
| + rv = delegate_->OnResponseHeadersReceived(*response_, response_time_, rv);
|
| }
|
| - // If delegate_ is not yet attached, we'll call OnResponseReceived after the
|
| - // delegate gets attached to the stream.
|
| + // If delegate_ is not yet attached, we'll call
|
| + // OnResponseHeadersReceived after the delegate gets attached to the
|
| + // stream.
|
|
|
| return rv;
|
| }
|
| @@ -446,7 +447,7 @@ int SpdyStream::OnHeaders(const SpdyHeaderBlock& headers) {
|
| int rv = OK;
|
| if (delegate_) {
|
| // May delete this object.
|
| - rv = delegate_->OnResponseReceived(*response_, response_time_, rv);
|
| + rv = delegate_->OnResponseHeadersReceived(*response_, response_time_, rv);
|
| // ERR_INCOMPLETE_SPDY_HEADERS means that we are waiting for more
|
| // headers before the response header block is complete.
|
| if (rv == ERR_INCOMPLETE_SPDY_HEADERS)
|
| @@ -576,9 +577,9 @@ int SpdyStream::SendRequestHeaders(scoped_ptr<SpdyHeaderBlock> headers,
|
| return DoLoop(OK);
|
| }
|
|
|
| -void SpdyStream::SendStreamData(IOBuffer* data,
|
| - int length,
|
| - SpdySendStatus send_status) {
|
| +void SpdyStream::SendData(IOBuffer* data,
|
| + int length,
|
| + SpdySendStatus send_status) {
|
| CHECK_NE(type_, SPDY_PUSH_STREAM);
|
| CHECK_EQ(send_status_, MORE_DATA_TO_SEND);
|
| CHECK_GE(io_state_, STATE_SEND_BODY);
|
| @@ -667,6 +668,9 @@ int SpdyStream::DoLoop(int result) {
|
| CHECK_EQ(result, OK);
|
| result = DoSendRequestHeadersComplete();
|
| break;
|
| + // TODO(akalin): Remove the states STATE_SEND_BODY through
|
| + // STATE_WAITING_FOR_RESPONSE; we can infer correct behavior
|
| + // from |type_| and |send_status_|.
|
| case STATE_SEND_BODY:
|
| CHECK_EQ(result, OK);
|
| result = DoSendBody();
|
| @@ -681,7 +685,7 @@ int SpdyStream::DoLoop(int result) {
|
| result = ERR_IO_PENDING;
|
| break;
|
| // State machine 2: connection is established.
|
| - // In STATE_OPEN, OnResponseReceived has already been called.
|
| + // In STATE_OPEN, OnResponseHeadersReceived has already been called.
|
| // OnDataReceived, OnClose and OnFrameWriteComplete can be called.
|
| // Only OnFrameWriteComplete calls DoLoop().
|
| //
|
| @@ -816,8 +820,6 @@ int SpdyStream::DoSendRequestHeadersComplete() {
|
| if (!delegate_)
|
| return ERR_UNEXPECTED;
|
|
|
| - delegate_->OnSendRequestHeadersComplete();
|
| -
|
| switch (type_) {
|
| case SPDY_BIDIRECTIONAL_STREAM:
|
| DCHECK_EQ(send_status_, MORE_DATA_TO_SEND);
|
| @@ -837,6 +839,8 @@ int SpdyStream::DoSendRequestHeadersComplete() {
|
| return ERR_UNEXPECTED;
|
| }
|
|
|
| + delegate_->OnRequestHeadersSent();
|
| +
|
| return OK;
|
| }
|
|
|
| @@ -845,8 +849,6 @@ int SpdyStream::DoSendRequestHeadersComplete() {
|
| int SpdyStream::DoSendBody() {
|
| DCHECK_NE(type_, SPDY_PUSH_STREAM);
|
| io_state_ = STATE_SEND_BODY_COMPLETE;
|
| - CHECK(delegate_);
|
| - delegate_->OnSendBody();
|
| return ERR_IO_PENDING;
|
| }
|
|
|
| @@ -857,12 +859,12 @@ int SpdyStream::DoSendBodyComplete(int result) {
|
| if (result != OK)
|
| return result;
|
|
|
| - delegate_->OnSendBodyComplete();
|
| -
|
| io_state_ =
|
| (send_status_ == MORE_DATA_TO_SEND) ?
|
| STATE_SEND_BODY : STATE_WAITING_FOR_RESPONSE;
|
|
|
| + delegate_->OnDataSent();
|
| +
|
| return OK;
|
| }
|
|
|
|
|