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 8e2383087ba61133c924c6512060b03bf774e2a5..f4cb8d1e46e23f1b7818aac1d5a7db1c257d36d6 100644 |
--- a/chrome/browser/devtools/devtools_network_transaction.cc |
+++ b/chrome/browser/devtools/devtools_network_transaction.cc |
@@ -141,10 +141,14 @@ int DevToolsNetworkTransaction::Start( |
const net::BoundNetLog& net_log) { |
DCHECK(request); |
request_ = request; |
- interceptor_ = controller_->GetInterceptor(this); |
- interceptor_->AddThrottable(this); |
- if (interceptor_->ShouldFail()) { |
+ 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()); |
@@ -154,7 +158,7 @@ int DevToolsNetworkTransaction::Start( |
return SetupCallback(callback, rv, START); |
} |
-void DevToolsNetworkTransaction::ProcessRequest() { |
+void DevToolsNetworkTransaction::ProcessRequest(std::string* client_id) { |
DCHECK(request_); |
bool has_devtools_client_id = request_->extra_headers.HasHeader( |
kDevToolsEmulateNetworkConditionsClientId); |
@@ -163,7 +167,7 @@ void DevToolsNetworkTransaction::ProcessRequest() { |
custom_request_.reset(new net::HttpRequestInfo(*request_)); |
custom_request_->extra_headers.GetHeader( |
- kDevToolsEmulateNetworkConditionsClientId, &client_id_); |
+ kDevToolsEmulateNetworkConditionsClientId, client_id); |
custom_request_->extra_headers.RemoveHeader( |
kDevToolsEmulateNetworkConditionsClientId); |
request_ = custom_request_.get(); |