| Index: net/base/upload_data_stream.cc
 | 
| diff --git a/net/base/upload_data_stream.cc b/net/base/upload_data_stream.cc
 | 
| index a7542778ff5a0bf93968eca29888c835bfa3f6e8..37e19aed313d210d622ab495643191020a0a63eb 100644
 | 
| --- a/net/base/upload_data_stream.cc
 | 
| +++ b/net/base/upload_data_stream.cc
 | 
| @@ -109,18 +109,19 @@ void UploadDataStream::OnInitCompleted(int result) {
 | 
|  }
 | 
|  
 | 
|  void UploadDataStream::OnReadCompleted(int result) {
 | 
| -  DCHECK_GE(result, 0);
 | 
|    DCHECK(initialized_successfully_);
 | 
| +  DCHECK(result != 0 || is_eof_);
 | 
| +  DCHECK_NE(ERR_IO_PENDING, result);
 | 
|  
 | 
| -  current_position_ += result;
 | 
| -  if (!is_chunked_) {
 | 
| -    DCHECK_LE(current_position_, total_size_);
 | 
| -    if (current_position_ == total_size_)
 | 
| -      is_eof_ = true;
 | 
| +  if (result > 0) {
 | 
| +    current_position_ += result;
 | 
| +    if (!is_chunked_) {
 | 
| +      DCHECK_LE(current_position_, total_size_);
 | 
| +      if (current_position_ == total_size_)
 | 
| +        is_eof_ = true;
 | 
| +    }
 | 
|    }
 | 
|  
 | 
| -  DCHECK(result > 0 || is_eof_);
 | 
| -
 | 
|    if (!callback_.is_null())
 | 
|      base::ResetAndReturn(&callback_).Run(result);
 | 
|  }
 | 
| 
 |