Index: net/http/http_cache_transaction.cc |
=================================================================== |
--- net/http/http_cache_transaction.cc (revision 150909) |
+++ net/http/http_cache_transaction.cc (working copy) |
@@ -745,12 +745,15 @@ |
if (rv != OK) |
return rv; |
+ ReportNetworkActionStart(); |
next_state_ = STATE_SEND_REQUEST_COMPLETE; |
rv = network_trans_->Start(request_, io_callback_, net_log_); |
return rv; |
} |
int HttpCache::Transaction::DoSendRequestComplete(int result) { |
+ ReportNetworkActionFinish(); |
+ |
if (!cache_) |
return ERR_UNEXPECTED; |
@@ -839,6 +842,7 @@ |
} |
int HttpCache::Transaction::DoNetworkRead() { |
+ ReportNetworkActionStart(); |
next_state_ = STATE_NETWORK_READ_COMPLETE; |
return network_trans_->Read(read_buf_, io_buf_len_, io_callback_); |
} |
@@ -846,6 +850,8 @@ |
int HttpCache::Transaction::DoNetworkReadComplete(int result) { |
DCHECK(mode_ & WRITE || mode_ == NONE); |
+ ReportNetworkActionFinish(); |
+ |
if (!cache_) |
return ERR_UNEXPECTED; |
@@ -1773,6 +1779,7 @@ |
DCHECK(network_trans_.get()); |
DCHECK_EQ(STATE_NONE, next_state_); |
+ ReportNetworkActionStart(); |
next_state_ = STATE_SEND_REQUEST_COMPLETE; |
int rv = network_trans_->RestartIgnoringLastError(io_callback_); |
if (rv != ERR_IO_PENDING) |
@@ -1786,6 +1793,7 @@ |
DCHECK(network_trans_.get()); |
DCHECK_EQ(STATE_NONE, next_state_); |
+ ReportNetworkActionStart(); |
next_state_ = STATE_SEND_REQUEST_COMPLETE; |
int rv = network_trans_->RestartWithCertificate(client_cert, io_callback_); |
if (rv != ERR_IO_PENDING) |
@@ -1799,6 +1807,7 @@ |
DCHECK(network_trans_.get()); |
DCHECK_EQ(STATE_NONE, next_state_); |
+ ReportNetworkActionStart(); |
next_state_ = STATE_SEND_REQUEST_COMPLETE; |
int rv = network_trans_->RestartWithAuth(credentials, io_callback_); |
if (rv != ERR_IO_PENDING) |
@@ -2232,6 +2241,16 @@ |
transaction_delegate_->OnCacheActionFinish(); |
} |
+void HttpCache::Transaction::ReportNetworkActionStart() { |
+ if (transaction_delegate_) |
+ transaction_delegate_->OnNetworkActionStart(); |
+} |
+ |
+void HttpCache::Transaction::ReportNetworkActionFinish() { |
+ if (transaction_delegate_) |
+ transaction_delegate_->OnNetworkActionFinish(); |
+} |
+ |
void HttpCache::Transaction::UpdateTransactionPattern( |
TransactionPattern new_transaction_pattern) { |
if (transaction_pattern_ == PATTERN_NOT_COVERED) |