Index: chrome/browser/devtools/devtools_network_transaction.cc |
diff --git a/chrome/browser/devtools/devtools_network_transaction.cc b/chrome/browser/devtools/devtools_network_transaction.cc |
index f4cb8d1e46e23f1b7818aac1d5a7db1c257d36d6..8607221bed8dd4235f404baab839f8a08bc8add6 100644 |
--- a/chrome/browser/devtools/devtools_network_transaction.cc |
+++ b/chrome/browser/devtools/devtools_network_transaction.cc |
@@ -38,14 +38,6 @@ DevToolsNetworkTransaction::~DevToolsNetworkTransaction() { |
interceptor_->RemoveThrottable(this); |
} |
-bool DevToolsNetworkTransaction::HasStarted() { |
- return !!request_; |
-} |
- |
-bool DevToolsNetworkTransaction::HasFailed() { |
- return failed_; |
-} |
- |
int64_t DevToolsNetworkTransaction::ThrottledByteCount() { |
return throttled_byte_count_; |
} |
@@ -127,6 +119,10 @@ void DevToolsNetworkTransaction::Fail() { |
failed_ = true; |
network_transaction_->SetBeforeNetworkStartCallback( |
BeforeNetworkStartCallback()); |
+ if (interceptor_) { |
+ interceptor_->RemoveThrottable(this); |
+ interceptor_.reset(); |
+ } |
if (callback_.is_null()) |
return; |
net::CompletionCallback callback = callback_; |
@@ -145,15 +141,17 @@ int DevToolsNetworkTransaction::Start( |
std::string client_id; |
ProcessRequest(&client_id); |
interceptor_ = controller_->GetInterceptor(client_id); |
- if (interceptor_) |
- interceptor_->AddThrottable(this); |
if (interceptor_ && interceptor_->ShouldFail()) { |
failed_ = true; |
network_transaction_->SetBeforeNetworkStartCallback( |
BeforeNetworkStartCallback()); |
+ interceptor_.reset(); |
return net::ERR_INTERNET_DISCONNECTED; |
} |
+ |
+ if (interceptor_) |
+ interceptor_->AddThrottable(this); |
int rv = network_transaction_->Start(request_, proxy_callback_, net_log); |
return SetupCallback(callback, rv, START); |
} |