| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "android_webview/native/aw_dev_tools_server.h" | 5 #include "android_webview/native/aw_dev_tools_server.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "android_webview/common/aw_content_client.h" | 9 #include "android_webview/common/aw_content_client.h" |
| 10 #include "android_webview/native/aw_contents.h" | 10 #include "android_webview/native/aw_contents.h" |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 class UnixDomainServerSocketFactory | 89 class UnixDomainServerSocketFactory |
| 90 : public DevToolsHttpHandler::ServerSocketFactory { | 90 : public DevToolsHttpHandler::ServerSocketFactory { |
| 91 public: | 91 public: |
| 92 explicit UnixDomainServerSocketFactory(const std::string& socket_name) | 92 explicit UnixDomainServerSocketFactory(const std::string& socket_name) |
| 93 : socket_name_(socket_name), | 93 : socket_name_(socket_name), |
| 94 last_tethering_socket_(0) { | 94 last_tethering_socket_(0) { |
| 95 } | 95 } |
| 96 | 96 |
| 97 private: | 97 private: |
| 98 // devtools_http_handler::DevToolsHttpHandler::ServerSocketFactory. | 98 // devtools_http_handler::DevToolsHttpHandler::ServerSocketFactory. |
| 99 scoped_ptr<net::ServerSocket> CreateForHttpServer() override { | 99 std::unique_ptr<net::ServerSocket> CreateForHttpServer() override { |
| 100 scoped_ptr<net::UnixDomainServerSocket> socket( | 100 std::unique_ptr<net::UnixDomainServerSocket> socket( |
| 101 new net::UnixDomainServerSocket( | 101 new net::UnixDomainServerSocket( |
| 102 base::Bind(&content::CanUserConnectToDevTools), | 102 base::Bind(&content::CanUserConnectToDevTools), |
| 103 true /* use_abstract_namespace */)); | 103 true /* use_abstract_namespace */)); |
| 104 if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) | 104 if (socket->BindAndListen(socket_name_, kBackLog) != net::OK) |
| 105 return scoped_ptr<net::ServerSocket>(); | 105 return std::unique_ptr<net::ServerSocket>(); |
| 106 | 106 |
| 107 return std::move(socket); | 107 return std::move(socket); |
| 108 } | 108 } |
| 109 | 109 |
| 110 scoped_ptr<net::ServerSocket> CreateForTethering(std::string* name) override { | 110 std::unique_ptr<net::ServerSocket> CreateForTethering( |
| 111 std::string* name) override { |
| 111 *name = base::StringPrintf( | 112 *name = base::StringPrintf( |
| 112 kTetheringSocketName, getpid(), ++last_tethering_socket_); | 113 kTetheringSocketName, getpid(), ++last_tethering_socket_); |
| 113 scoped_ptr<net::UnixDomainServerSocket> socket( | 114 std::unique_ptr<net::UnixDomainServerSocket> socket( |
| 114 new net::UnixDomainServerSocket( | 115 new net::UnixDomainServerSocket( |
| 115 base::Bind(&content::CanUserConnectToDevTools), | 116 base::Bind(&content::CanUserConnectToDevTools), |
| 116 true /* use_abstract_namespace */)); | 117 true /* use_abstract_namespace */)); |
| 117 if (socket->BindAndListen(*name, kBackLog) != net::OK) | 118 if (socket->BindAndListen(*name, kBackLog) != net::OK) |
| 118 return scoped_ptr<net::ServerSocket>(); | 119 return std::unique_ptr<net::ServerSocket>(); |
| 119 | 120 |
| 120 return std::move(socket); | 121 return std::move(socket); |
| 121 } | 122 } |
| 122 | 123 |
| 123 std::string socket_name_; | 124 std::string socket_name_; |
| 124 int last_tethering_socket_; | 125 int last_tethering_socket_; |
| 125 | 126 |
| 126 DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); | 127 DISALLOW_COPY_AND_ASSIGN(UnixDomainServerSocketFactory); |
| 127 }; | 128 }; |
| 128 | 129 |
| 129 } // namespace | 130 } // namespace |
| 130 | 131 |
| 131 namespace android_webview { | 132 namespace android_webview { |
| 132 | 133 |
| 133 AwDevToolsServer::AwDevToolsServer() { | 134 AwDevToolsServer::AwDevToolsServer() { |
| 134 } | 135 } |
| 135 | 136 |
| 136 AwDevToolsServer::~AwDevToolsServer() { | 137 AwDevToolsServer::~AwDevToolsServer() { |
| 137 Stop(); | 138 Stop(); |
| 138 } | 139 } |
| 139 | 140 |
| 140 void AwDevToolsServer::Start() { | 141 void AwDevToolsServer::Start() { |
| 141 if (devtools_http_handler_) | 142 if (devtools_http_handler_) |
| 142 return; | 143 return; |
| 143 | 144 |
| 144 scoped_ptr<DevToolsHttpHandler::ServerSocketFactory> factory( | 145 std::unique_ptr<DevToolsHttpHandler::ServerSocketFactory> factory( |
| 145 new UnixDomainServerSocketFactory( | 146 new UnixDomainServerSocketFactory( |
| 146 base::StringPrintf(kSocketNameFormat, getpid()))); | 147 base::StringPrintf(kSocketNameFormat, getpid()))); |
| 147 devtools_http_handler_.reset(new DevToolsHttpHandler( | 148 devtools_http_handler_.reset(new DevToolsHttpHandler( |
| 148 std::move(factory), | 149 std::move(factory), |
| 149 base::StringPrintf(kFrontEndURL, content::GetWebKitRevision().c_str()), | 150 base::StringPrintf(kFrontEndURL, content::GetWebKitRevision().c_str()), |
| 150 new AwDevToolsServerDelegate(), base::FilePath(), base::FilePath(), | 151 new AwDevToolsServerDelegate(), base::FilePath(), base::FilePath(), |
| 151 GetProduct(), GetUserAgent())); | 152 GetProduct(), GetUserAgent())); |
| 152 } | 153 } |
| 153 | 154 |
| 154 void AwDevToolsServer::Stop() { | 155 void AwDevToolsServer::Stop() { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 182 AwDevToolsServer* devtools_server = | 183 AwDevToolsServer* devtools_server = |
| 183 reinterpret_cast<AwDevToolsServer*>(server); | 184 reinterpret_cast<AwDevToolsServer*>(server); |
| 184 if (enabled) { | 185 if (enabled) { |
| 185 devtools_server->Start(); | 186 devtools_server->Start(); |
| 186 } else { | 187 } else { |
| 187 devtools_server->Stop(); | 188 devtools_server->Stop(); |
| 188 } | 189 } |
| 189 } | 190 } |
| 190 | 191 |
| 191 } // namespace android_webview | 192 } // namespace android_webview |
| OLD | NEW |