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 |