| Index: net/http/http_transaction_test_util.cc | 
| diff --git a/net/http/http_transaction_test_util.cc b/net/http/http_transaction_test_util.cc | 
| index a5b57461df5a2e49568fa045bc285f9d01e006bc..fa42dd78f5a0c19cce3d4a0c0329ce8f08742cb5 100644 | 
| --- a/net/http/http_transaction_test_util.cc | 
| +++ b/net/http/http_transaction_test_util.cc | 
| @@ -409,13 +409,6 @@ int MockNetworkTransaction::StartInternal(const HttpRequestInfo* request, | 
| if (!t) | 
| return ERR_FAILED; | 
|  | 
| -  if (!before_network_start_callback_.is_null()) { | 
| -    bool defer = false; | 
| -    before_network_start_callback_.Run(&defer); | 
| -    if (defer) | 
| -      return net::ERR_IO_PENDING; | 
| -  } | 
| - | 
| test_mode_ = t->test_mode; | 
|  | 
| // Return immediately if we're returning an error. | 
| @@ -466,6 +459,16 @@ int MockNetworkTransaction::StartInternal(const HttpRequestInfo* request, | 
| if (request_->load_flags & LOAD_PREFETCH) | 
| response_.unused_since_prefetch = true; | 
|  | 
| +  // Pause and resume. | 
| +  if (!before_network_start_callback_.is_null()) { | 
| +    bool defer = false; | 
| +    before_network_start_callback_.Run(&defer); | 
| +    if (defer) { | 
| +      callback_ = callback; | 
| +      return net::ERR_IO_PENDING; | 
| +    } | 
| +  } | 
| + | 
| if (test_mode_ & TEST_MODE_SYNC_NET_START) | 
| return OK; | 
|  | 
| @@ -482,8 +485,9 @@ void MockNetworkTransaction::SetBeforeHeadersSentCallback( | 
| const BeforeHeadersSentCallback& callback) {} | 
|  | 
| int MockNetworkTransaction::ResumeNetworkStart() { | 
| -  // Should not get here. | 
| -  return ERR_FAILED; | 
| +  DCHECK(!callback_.is_null()); | 
| +  CallbackLater(callback_, OK); | 
| +  return ERR_IO_PENDING; | 
| } | 
|  | 
| void MockNetworkTransaction::GetConnectionAttempts( | 
|  |