SpdyHttpStream::SpdyHttpStream(const base::WeakPtr<SpdySession>& spdy_session,
bool direct)
- : weak_factory_(this),
- spdy_session_(spdy_session),
+ : spdy_session_(spdy_session),
is_reused_(spdy_session_->IsReused()),
stream_closed_(false),
closed_stream_status_(ERR_FAILED),
request_body_buf_size_(0),
buffered_read_callback_pending_(false),
more_read_data_pending_(false),
- direct_(direct) {
+ direct_(direct),
+ weak_factory_(this) {
DCHECK(spdy_session_.get());
}
return rv;
}
-const HttpResponseInfo* SpdyHttpStream::GetResponseInfo() const {
- return response_info_;
-}
-
UploadProgress SpdyHttpStream::GetUploadProgress() const {
if (!request_info_ || !HasUploadData())
return UploadProgress();
// Check if we already have the response headers. If so, return synchronously.
if (response_headers_status_ == RESPONSE_HEADERS_ARE_COMPLETE) {
- CHECK(stream_->IsIdle());
+ CHECK(!stream_->IsIdle());
return OK;
}
int SpdyHttpStream::ReadResponseBody(
IOBuffer* buf, int buf_len, const CompletionCallback& callback) {
if (stream_.get())
- CHECK(stream_->IsIdle());
+ CHECK(!stream_->IsIdle());
CHECK(buf);
CHECK(buf_len);
HttpResponseInfo* response,
const CompletionCallback& callback) {
if (stream_closed_) {
- if (stream_->type() == SPDY_PUSH_STREAM)
- return closed_stream_status_;
-
- return (closed_stream_status_ == OK) ? ERR_FAILED : closed_stream_status_;
+ return closed_stream_status_;
}
base::Time request_time = base::Time::Now();
scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock);
CreateSpdyHeadersFromHttpRequest(
*request_info_, request_headers,
- headers.get(), stream_->GetProtocolVersion(),
- direct_);
+ stream_->GetProtocolVersion(), direct_,
+ headers.get());
stream_->net_log().AddEvent(
NetLog::TYPE_HTTP_TRANSACTION_SPDY_SEND_REQUEST_HEADERS,
base::Bind(&SpdyHeaderBlockNetLogCallback, headers.get()));
CHECK_GE(status, 0);
request_body_buf_size_ = status;
const bool eof = request_info_->upload_data_stream->IsEOF();
+ // Only the final fame may have a length of 0.
if (eof) {
CHECK_GE(request_body_buf_size_, 0);
} else {