Index: content/browser/devtools/devtools_http_handler_impl.cc |
diff --git a/content/browser/devtools/devtools_http_handler_impl.cc b/content/browser/devtools/devtools_http_handler_impl.cc |
index 11f1fb1473e054ac868cf90d688d695dc1f853c2..3982b489dec91cc9d2d31fc56a49d1620a635ecd 100644 |
--- a/content/browser/devtools/devtools_http_handler_impl.cc |
+++ b/content/browser/devtools/devtools_http_handler_impl.cc |
@@ -332,10 +332,10 @@ void DevToolsHttpHandlerImpl::StopWithoutRelease() { |
} |
GURL DevToolsHttpHandlerImpl::GetFrontendURL() { |
- net::IPEndPoint ip_address; |
- if (server_ && server_->GetLocalAddress(&ip_address)) |
+ base::AutoLock locked(server_ip_address_lock_); |
+ if (!server_ip_address_) |
return GURL(); |
- return GURL(std::string("http://") + ip_address.ToString() + frontend_url_); |
+ return GURL(std::string("http://") + server_ip_address_->ToString() + frontend_url_); |
} |
static std::string PathWithoutParams(const std::string& path) { |
@@ -795,12 +795,21 @@ void DevToolsHttpHandlerImpl::Init() { |
} |
server_.reset(new net::HttpServer(server_socket.Pass(), this)); |
+ { |
+ base::AutoLock locked(server_ip_address_lock_); |
vkuzkokov
2014/10/22 13:20:03
Use of locks is very limited in chromium, especial
byungwoo
2014/10/23 02:10:20
Thank you for the review and suggestion.
I'll appl
|
+ server_ip_address_.reset(new net::IPEndPoint()); |
+ server_->GetLocalAddress(server_ip_address_.get()); |
+ } |
if (!active_port_output_directory_.empty()) |
WriteActivePortToUserProfile(); |
} |
// Runs on the handler thread |
void DevToolsHttpHandlerImpl::Teardown() { |
+ { |
+ base::AutoLock locked(server_ip_address_lock_); |
+ server_ip_address_.reset(NULL); |
+ } |
server_.reset(NULL); |
} |