| 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 954482e5730b4fea416361da78281d3b5c1d72eb..2a3e32b56649e1d01d1942acd378ed103d6c97a6 100644
|
| --- a/content/browser/devtools/devtools_http_handler_impl.cc
|
| +++ b/content/browser/devtools/devtools_http_handler_impl.cc
|
| @@ -252,9 +252,18 @@ void DevToolsHttpHandlerImpl::Stop() {
|
| base::Bind(&DevToolsHttpHandlerImpl::ResetHandlerThreadAndRelease, this));
|
| }
|
|
|
| +void DevToolsHttpHandlerImpl::StopWithoutRelease() {
|
| + if (!thread_)
|
| + return;
|
| + BrowserThread::PostTaskAndReply(
|
| + BrowserThread::FILE, FROM_HERE,
|
| + base::Bind(&DevToolsHttpHandlerImpl::StopHandlerThread, this),
|
| + base::Bind(&DevToolsHttpHandlerImpl::ResetHandlerThread, this));
|
| +}
|
| +
|
| GURL DevToolsHttpHandlerImpl::GetFrontendURL() {
|
| net::IPEndPoint ip_address;
|
| - if (server_->GetLocalAddress(&ip_address))
|
| + if (server_ && server_->GetLocalAddress(&ip_address))
|
| return GURL();
|
| return GURL(std::string("http://") + ip_address.ToString() + frontend_url_);
|
| }
|
| @@ -699,8 +708,17 @@ DevToolsHttpHandlerImpl::DevToolsHttpHandlerImpl(
|
|
|
| // Runs on the handler thread
|
| void DevToolsHttpHandlerImpl::Init() {
|
| - server_.reset(new net::HttpServer(server_socket_factory_->CreateAndListen(),
|
| - this));
|
| + scoped_ptr<net::ServerSocket> server_socket =
|
| + server_socket_factory_->CreateAndListen();
|
| + if (!server_socket) {
|
| + LOG(ERROR) << "Cannot start http server for devtools. Stop devtools.";
|
| + BrowserThread::PostTask(
|
| + BrowserThread::UI, FROM_HERE,
|
| + base::Bind(&DevToolsHttpHandlerImpl::StopWithoutRelease, this));
|
| + return;
|
| + }
|
| +
|
| + server_.reset(new net::HttpServer(server_socket.Pass(), this));
|
| if (!active_port_output_directory_.empty())
|
| WriteActivePortToUserProfile();
|
| }
|
|
|