Chromium Code Reviews| 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); |
| } |