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

Side by Side Diff: extensions/browser/api/sockets_tcp_server/tcp_server_socket_event_dispatcher.cc

Issue 1902873002: Convert //extensions/browser/api 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 "extensions/browser/api/sockets_tcp_server/tcp_server_socket_event_disp atcher.h" 5 #include "extensions/browser/api/sockets_tcp_server/tcp_server_socket_event_disp atcher.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "extensions/browser/api/socket/tcp_socket.h" 10 #include "extensions/browser/api/socket/tcp_socket.h"
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 return; 117 return;
118 118
119 socket->Accept( 119 socket->Accept(
120 base::Bind(&TCPServerSocketEventDispatcher::AcceptCallback, params)); 120 base::Bind(&TCPServerSocketEventDispatcher::AcceptCallback, params));
121 } 121 }
122 122
123 // static 123 // static
124 void TCPServerSocketEventDispatcher::AcceptCallback( 124 void TCPServerSocketEventDispatcher::AcceptCallback(
125 const AcceptParams& params, 125 const AcceptParams& params,
126 int result_code, 126 int result_code,
127 scoped_ptr<net::TCPClientSocket> socket) { 127 std::unique_ptr<net::TCPClientSocket> socket) {
128 DCHECK_CURRENTLY_ON(params.thread_id); 128 DCHECK_CURRENTLY_ON(params.thread_id);
129 129
130 if (result_code >= 0) { 130 if (result_code >= 0) {
131 ResumableTCPSocket* client_socket = 131 ResumableTCPSocket* client_socket =
132 new ResumableTCPSocket(std::move(socket), params.extension_id, true); 132 new ResumableTCPSocket(std::move(socket), params.extension_id, true);
133 client_socket->set_paused(true); 133 client_socket->set_paused(true);
134 int client_socket_id = params.client_sockets->Add(client_socket); 134 int client_socket_id = params.client_sockets->Add(client_socket);
135 135
136 // Dispatch "onAccept" event. 136 // Dispatch "onAccept" event.
137 sockets_tcp_server::AcceptInfo accept_info; 137 sockets_tcp_server::AcceptInfo accept_info;
138 accept_info.socket_id = params.socket_id; 138 accept_info.socket_id = params.socket_id;
139 accept_info.client_socket_id = client_socket_id; 139 accept_info.client_socket_id = client_socket_id;
140 scoped_ptr<base::ListValue> args = 140 std::unique_ptr<base::ListValue> args =
141 sockets_tcp_server::OnAccept::Create(accept_info); 141 sockets_tcp_server::OnAccept::Create(accept_info);
142 scoped_ptr<Event> event(new Event(events::SOCKETS_TCP_SERVER_ON_ACCEPT, 142 std::unique_ptr<Event> event(
143 sockets_tcp_server::OnAccept::kEventName, 143 new Event(events::SOCKETS_TCP_SERVER_ON_ACCEPT,
144 std::move(args))); 144 sockets_tcp_server::OnAccept::kEventName, std::move(args)));
145 PostEvent(params, std::move(event)); 145 PostEvent(params, std::move(event));
146 146
147 // Post a task to delay the "accept" until the socket is available, as 147 // Post a task to delay the "accept" until the socket is available, as
148 // calling StartAccept at this point would error with ERR_IO_PENDING. 148 // calling StartAccept at this point would error with ERR_IO_PENDING.
149 BrowserThread::PostTask( 149 BrowserThread::PostTask(
150 params.thread_id, 150 params.thread_id,
151 FROM_HERE, 151 FROM_HERE,
152 base::Bind(&TCPServerSocketEventDispatcher::StartAccept, params)); 152 base::Bind(&TCPServerSocketEventDispatcher::StartAccept, params));
153 } else { 153 } else {
154 // Dispatch "onAcceptError" event but don't start another accept to avoid 154 // Dispatch "onAcceptError" event but don't start another accept to avoid
155 // potential infinite "accepts" if we have a persistent network error. 155 // potential infinite "accepts" if we have a persistent network error.
156 sockets_tcp_server::AcceptErrorInfo accept_error_info; 156 sockets_tcp_server::AcceptErrorInfo accept_error_info;
157 accept_error_info.socket_id = params.socket_id; 157 accept_error_info.socket_id = params.socket_id;
158 accept_error_info.result_code = result_code; 158 accept_error_info.result_code = result_code;
159 scoped_ptr<base::ListValue> args = 159 std::unique_ptr<base::ListValue> args =
160 sockets_tcp_server::OnAcceptError::Create(accept_error_info); 160 sockets_tcp_server::OnAcceptError::Create(accept_error_info);
161 scoped_ptr<Event> event(new Event( 161 std::unique_ptr<Event> event(new Event(
162 events::SOCKETS_TCP_SERVER_ON_ACCEPT_ERROR, 162 events::SOCKETS_TCP_SERVER_ON_ACCEPT_ERROR,
163 sockets_tcp_server::OnAcceptError::kEventName, std::move(args))); 163 sockets_tcp_server::OnAcceptError::kEventName, std::move(args)));
164 PostEvent(params, std::move(event)); 164 PostEvent(params, std::move(event));
165 165
166 // Since we got an error, the socket is now "paused" until the application 166 // Since we got an error, the socket is now "paused" until the application
167 // "resumes" it. 167 // "resumes" it.
168 ResumableTCPServerSocket* socket = 168 ResumableTCPServerSocket* socket =
169 params.server_sockets->Get(params.extension_id, params.socket_id); 169 params.server_sockets->Get(params.extension_id, params.socket_id);
170 if (socket) { 170 if (socket) {
171 socket->set_paused(true); 171 socket->set_paused(true);
172 } 172 }
173 } 173 }
174 } 174 }
175 175
176 // static 176 // static
177 void TCPServerSocketEventDispatcher::PostEvent(const AcceptParams& params, 177 void TCPServerSocketEventDispatcher::PostEvent(const AcceptParams& params,
178 scoped_ptr<Event> event) { 178 std::unique_ptr<Event> event) {
179 DCHECK_CURRENTLY_ON(params.thread_id); 179 DCHECK_CURRENTLY_ON(params.thread_id);
180 180
181 BrowserThread::PostTask( 181 BrowserThread::PostTask(
182 BrowserThread::UI, FROM_HERE, 182 BrowserThread::UI, FROM_HERE,
183 base::Bind(&DispatchEvent, params.browser_context_id, params.extension_id, 183 base::Bind(&DispatchEvent, params.browser_context_id, params.extension_id,
184 base::Passed(std::move(event)))); 184 base::Passed(std::move(event))));
185 } 185 }
186 186
187 // static 187 // static
188 void TCPServerSocketEventDispatcher::DispatchEvent( 188 void TCPServerSocketEventDispatcher::DispatchEvent(
189 void* browser_context_id, 189 void* browser_context_id,
190 const std::string& extension_id, 190 const std::string& extension_id,
191 scoped_ptr<Event> event) { 191 std::unique_ptr<Event> event) {
192 DCHECK_CURRENTLY_ON(BrowserThread::UI); 192 DCHECK_CURRENTLY_ON(BrowserThread::UI);
193 193
194 content::BrowserContext* context = 194 content::BrowserContext* context =
195 reinterpret_cast<content::BrowserContext*>(browser_context_id); 195 reinterpret_cast<content::BrowserContext*>(browser_context_id);
196 if (!extensions::ExtensionsBrowserClient::Get()->IsValidContext(context)) 196 if (!extensions::ExtensionsBrowserClient::Get()->IsValidContext(context))
197 return; 197 return;
198 EventRouter* router = EventRouter::Get(context); 198 EventRouter* router = EventRouter::Get(context);
199 if (router) 199 if (router)
200 router->DispatchEventToExtension(extension_id, std::move(event)); 200 router->DispatchEventToExtension(extension_id, std::move(event));
201 } 201 }
202 202
203 } // namespace api 203 } // namespace api
204 } // namespace extensions 204 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698