Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Side by Side Diff: content/browser/devtools/protocol/tethering_handler.cc

Issue 1874893002: Convert //content/browser from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/devtools/protocol/tethering_handler.h" 5 #include "content/browser/devtools/protocol/tethering_handler.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "content/public/browser/browser_thread.h" 8 #include "content/public/browser/browser_thread.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "net/base/ip_address.h" 10 #include "net/base/ip_address.h"
11 #include "net/base/net_errors.h" 11 #include "net/base/net_errors.h"
12 #include "net/socket/server_socket.h" 12 #include "net/socket/server_socket.h"
13 #include "net/socket/stream_socket.h" 13 #include "net/socket/stream_socket.h"
14 #include "net/socket/tcp_server_socket.h" 14 #include "net/socket/tcp_server_socket.h"
15 15
16 namespace content { 16 namespace content {
17 namespace devtools { 17 namespace devtools {
18 namespace tethering { 18 namespace tethering {
19 19
20 namespace { 20 namespace {
21 21
22 const int kListenBacklog = 5; 22 const int kListenBacklog = 5;
23 const int kBufferSize = 16 * 1024; 23 const int kBufferSize = 16 * 1024;
24 24
25 const int kMinTetheringPort = 1024; 25 const int kMinTetheringPort = 1024;
26 const int kMaxTetheringPort = 32767; 26 const int kMaxTetheringPort = 32767;
27 27
28 using Response = DevToolsProtocolClient::Response; 28 using Response = DevToolsProtocolClient::Response;
29 using CreateServerSocketCallback = 29 using CreateServerSocketCallback =
30 base::Callback<scoped_ptr<net::ServerSocket>(std::string*)>; 30 base::Callback<std::unique_ptr<net::ServerSocket>(std::string*)>;
31 31
32 class SocketPump { 32 class SocketPump {
33 public: 33 public:
34 SocketPump(net::StreamSocket* client_socket) 34 SocketPump(net::StreamSocket* client_socket)
35 : client_socket_(client_socket), 35 : client_socket_(client_socket),
36 pending_writes_(0), 36 pending_writes_(0),
37 pending_destruction_(false) { 37 pending_destruction_(false) {
38 } 38 }
39 39
40 std::string Init(const CreateServerSocketCallback& socket_callback) { 40 std::string Init(const CreateServerSocketCallback& socket_callback) {
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 void SelfDestruct() { 139 void SelfDestruct() {
140 if (pending_writes_ > 0) { 140 if (pending_writes_ > 0) {
141 pending_destruction_ = true; 141 pending_destruction_ = true;
142 return; 142 return;
143 } 143 }
144 delete this; 144 delete this;
145 } 145 }
146 146
147 147
148 private: 148 private:
149 scoped_ptr<net::StreamSocket> client_socket_; 149 std::unique_ptr<net::StreamSocket> client_socket_;
150 scoped_ptr<net::ServerSocket> server_socket_; 150 std::unique_ptr<net::ServerSocket> server_socket_;
151 scoped_ptr<net::StreamSocket> accepted_socket_; 151 std::unique_ptr<net::StreamSocket> accepted_socket_;
152 int pending_writes_; 152 int pending_writes_;
153 bool pending_destruction_; 153 bool pending_destruction_;
154 }; 154 };
155 155
156 class BoundSocket { 156 class BoundSocket {
157 public: 157 public:
158 typedef base::Callback<void(uint16_t, const std::string&)> AcceptedCallback; 158 typedef base::Callback<void(uint16_t, const std::string&)> AcceptedCallback;
159 159
160 BoundSocket(AcceptedCallback accepted_callback, 160 BoundSocket(AcceptedCallback accepted_callback,
161 const CreateServerSocketCallback& socket_callback) 161 const CreateServerSocketCallback& socket_callback)
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 return; 210 return;
211 211
212 SocketPump* pump = new SocketPump(accept_socket_.release()); 212 SocketPump* pump = new SocketPump(accept_socket_.release());
213 std::string name = pump->Init(socket_callback_); 213 std::string name = pump->Init(socket_callback_);
214 if (!name.empty()) 214 if (!name.empty())
215 accepted_callback_.Run(port_, name); 215 accepted_callback_.Run(port_, name);
216 } 216 }
217 217
218 AcceptedCallback accepted_callback_; 218 AcceptedCallback accepted_callback_;
219 CreateServerSocketCallback socket_callback_; 219 CreateServerSocketCallback socket_callback_;
220 scoped_ptr<net::ServerSocket> socket_; 220 std::unique_ptr<net::ServerSocket> socket_;
221 scoped_ptr<net::StreamSocket> accept_socket_; 221 std::unique_ptr<net::StreamSocket> accept_socket_;
222 uint16_t port_; 222 uint16_t port_;
223 }; 223 };
224 224
225 } // namespace 225 } // namespace
226 226
227 // TetheringHandler::TetheringImpl ------------------------------------------- 227 // TetheringHandler::TetheringImpl -------------------------------------------
228 228
229 class TetheringHandler::TetheringImpl { 229 class TetheringHandler::TetheringImpl {
230 public: 230 public:
231 TetheringImpl( 231 TetheringImpl(
(...skipping 29 matching lines...) Expand all
261 261
262 void TetheringHandler::TetheringImpl::Bind(DevToolsCommandId command_id, 262 void TetheringHandler::TetheringImpl::Bind(DevToolsCommandId command_id,
263 uint16_t port) { 263 uint16_t port) {
264 if (bound_sockets_.find(port) != bound_sockets_.end()) { 264 if (bound_sockets_.find(port) != bound_sockets_.end()) {
265 SendInternalError(command_id, "Port already bound"); 265 SendInternalError(command_id, "Port already bound");
266 return; 266 return;
267 } 267 }
268 268
269 BoundSocket::AcceptedCallback callback = base::Bind( 269 BoundSocket::AcceptedCallback callback = base::Bind(
270 &TetheringHandler::TetheringImpl::Accepted, base::Unretained(this)); 270 &TetheringHandler::TetheringImpl::Accepted, base::Unretained(this));
271 scoped_ptr<BoundSocket> bound_socket( 271 std::unique_ptr<BoundSocket> bound_socket(
272 new BoundSocket(callback, socket_callback_)); 272 new BoundSocket(callback, socket_callback_));
273 if (!bound_socket->Listen(port)) { 273 if (!bound_socket->Listen(port)) {
274 SendInternalError(command_id, "Could not bind port"); 274 SendInternalError(command_id, "Could not bind port");
275 return; 275 return;
276 } 276 }
277 277
278 bound_sockets_[port] = bound_socket.release(); 278 bound_sockets_[port] = bound_socket.release();
279 BrowserThread::PostTask( 279 BrowserThread::PostTask(
280 BrowserThread::UI, 280 BrowserThread::UI,
281 FROM_HERE, 281 FROM_HERE,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 weak_factory_(this) { 331 weak_factory_(this) {
332 } 332 }
333 333
334 TetheringHandler::~TetheringHandler() { 334 TetheringHandler::~TetheringHandler() {
335 if (is_active_) { 335 if (is_active_) {
336 task_runner_->DeleteSoon(FROM_HERE, impl_); 336 task_runner_->DeleteSoon(FROM_HERE, impl_);
337 impl_ = nullptr; 337 impl_ = nullptr;
338 } 338 }
339 } 339 }
340 340
341 void TetheringHandler::SetClient(scoped_ptr<Client> client) { 341 void TetheringHandler::SetClient(std::unique_ptr<Client> client) {
342 client_.swap(client); 342 client_.swap(client);
343 } 343 }
344 344
345 void TetheringHandler::Accepted(uint16_t port, const std::string& name) { 345 void TetheringHandler::Accepted(uint16_t port, const std::string& name) {
346 client_->Accepted(AcceptedParams::Create()->set_port(port) 346 client_->Accepted(AcceptedParams::Create()->set_port(port)
347 ->set_connection_id(name)); 347 ->set_connection_id(name));
348 } 348 }
349 349
350 bool TetheringHandler::Activate() { 350 bool TetheringHandler::Activate() {
351 if (is_active_) 351 if (is_active_)
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 391 }
392 392
393 void TetheringHandler::SendInternalError(DevToolsCommandId command_id, 393 void TetheringHandler::SendInternalError(DevToolsCommandId command_id,
394 const std::string& message) { 394 const std::string& message) {
395 client_->SendError(command_id, Response::InternalError(message)); 395 client_->SendError(command_id, Response::InternalError(message));
396 } 396 }
397 397
398 } // namespace tethering 398 } // namespace tethering
399 } // namespace devtools 399 } // namespace devtools
400 } // namespace content 400 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/devtools/protocol/tethering_handler.h ('k') | content/browser/devtools/protocol/tracing_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698