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

Side by Side Diff: content/browser/renderer_host/pepper/pepper_tcp_socket.cc

Issue 16294003: Update content/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/renderer_host/pepper/pepper_tcp_socket.h" 5 #include "content/browser/renderer_host/pepper/pepper_tcp_socket.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 SendReadACKError(); 161 SendReadACKError();
162 return; 162 return;
163 } 163 }
164 164
165 if (bytes_to_read > ppapi::TCPSocketPrivateImpl::kMaxReadSize) { 165 if (bytes_to_read > ppapi::TCPSocketPrivateImpl::kMaxReadSize) {
166 NOTREACHED(); 166 NOTREACHED();
167 bytes_to_read = ppapi::TCPSocketPrivateImpl::kMaxReadSize; 167 bytes_to_read = ppapi::TCPSocketPrivateImpl::kMaxReadSize;
168 } 168 }
169 169
170 read_buffer_ = new net::IOBuffer(bytes_to_read); 170 read_buffer_ = new net::IOBuffer(bytes_to_read);
171 int result = socket_->Read(read_buffer_, bytes_to_read, 171 int result = socket_->Read(
172 base::Bind(&PepperTCPSocket::OnReadCompleted, 172 read_buffer_.get(),
173 base::Unretained(this))); 173 bytes_to_read,
174 base::Bind(&PepperTCPSocket::OnReadCompleted, base::Unretained(this)));
174 if (result != net::ERR_IO_PENDING) 175 if (result != net::ERR_IO_PENDING)
175 OnReadCompleted(result); 176 OnReadCompleted(result);
176 } 177 }
177 178
178 void PepperTCPSocket::Write(const std::string& data) { 179 void PepperTCPSocket::Write(const std::string& data) {
179 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 180 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
180 181
181 if (!IsConnected() || write_buffer_base_.get() || write_buffer_.get() || 182 if (!IsConnected() || write_buffer_base_.get() || write_buffer_.get() ||
182 data.empty()) { 183 data.empty()) {
183 SendWriteACKError(); 184 SendWriteACKError();
184 return; 185 return;
185 } 186 }
186 187
187 int data_size = data.size(); 188 int data_size = data.size();
188 if (data_size > ppapi::TCPSocketPrivateImpl::kMaxWriteSize) { 189 if (data_size > ppapi::TCPSocketPrivateImpl::kMaxWriteSize) {
189 NOTREACHED(); 190 NOTREACHED();
190 data_size = ppapi::TCPSocketPrivateImpl::kMaxWriteSize; 191 data_size = ppapi::TCPSocketPrivateImpl::kMaxWriteSize;
191 } 192 }
192 193
193 write_buffer_base_ = new net::IOBuffer(data_size); 194 write_buffer_base_ = new net::IOBuffer(data_size);
194 memcpy(write_buffer_base_->data(), data.data(), data_size); 195 memcpy(write_buffer_base_->data(), data.data(), data_size);
195 write_buffer_ = new net::DrainableIOBuffer(write_buffer_base_, data_size); 196 write_buffer_ =
197 new net::DrainableIOBuffer(write_buffer_base_.get(), data_size);
196 DoWrite(); 198 DoWrite();
197 } 199 }
198 200
199 void PepperTCPSocket::SetBoolOption(uint32_t name, bool value) { 201 void PepperTCPSocket::SetBoolOption(uint32_t name, bool value) {
200 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 202 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
201 DCHECK(socket_.get()); 203 DCHECK(socket_.get());
202 204
203 switch (name) { 205 switch (name) {
204 case PP_TCPSOCKETOPTION_NO_DELAY: 206 case PP_TCPSOCKETOPTION_NO_DELAY:
205 if (!IsSsl()) { 207 if (!IsSsl()) {
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 return true; 286 return true;
285 } 287 }
286 288
287 // static 289 // static
288 bool PepperTCPSocket::GetCertificateFields( 290 bool PepperTCPSocket::GetCertificateFields(
289 const char* der, 291 const char* der,
290 uint32_t length, 292 uint32_t length,
291 ppapi::PPB_X509Certificate_Fields* fields) { 293 ppapi::PPB_X509Certificate_Fields* fields) {
292 scoped_refptr<net::X509Certificate> cert = 294 scoped_refptr<net::X509Certificate> cert =
293 net::X509Certificate::CreateFromBytes(der, length); 295 net::X509Certificate::CreateFromBytes(der, length);
294 if (!cert) 296 if (!cert.get())
295 return false; 297 return false;
296 return GetCertificateFields(*cert, fields); 298 return GetCertificateFields(*cert.get(), fields);
297 } 299 }
298 300
299 void PepperTCPSocket::SendReadACKError() { 301 void PepperTCPSocket::SendReadACKError() {
300 manager_->Send(new PpapiMsg_PPBTCPSocket_ReadACK( 302 manager_->Send(new PpapiMsg_PPBTCPSocket_ReadACK(
301 routing_id_, plugin_dispatcher_id_, socket_id_, false, std::string())); 303 routing_id_, plugin_dispatcher_id_, socket_id_, false, std::string()));
302 } 304 }
303 305
304 void PepperTCPSocket::SendWriteACKError() { 306 void PepperTCPSocket::SendWriteACKError() {
305 manager_->Send(new PpapiMsg_PPBTCPSocket_WriteACK( 307 manager_->Send(new PpapiMsg_PPBTCPSocket_WriteACK(
306 routing_id_, plugin_dispatcher_id_, socket_id_, false, 0)); 308 routing_id_, plugin_dispatcher_id_, socket_id_, false, 0));
307 } 309 }
308 310
309 void PepperTCPSocket::SendSSLHandshakeACK(bool succeeded) { 311 void PepperTCPSocket::SendSSLHandshakeACK(bool succeeded) {
310 ppapi::PPB_X509Certificate_Fields certificate_fields; 312 ppapi::PPB_X509Certificate_Fields certificate_fields;
311 if (succeeded) { 313 if (succeeded) {
312 // Our socket is guaranteed to be an SSL socket if we get here. 314 // Our socket is guaranteed to be an SSL socket if we get here.
313 net::SSLClientSocket* ssl_socket = 315 net::SSLClientSocket* ssl_socket =
314 static_cast<net::SSLClientSocket*>(socket_.get()); 316 static_cast<net::SSLClientSocket*>(socket_.get());
315 net::SSLInfo ssl_info; 317 net::SSLInfo ssl_info;
316 ssl_socket->GetSSLInfo(&ssl_info); 318 ssl_socket->GetSSLInfo(&ssl_info);
317 if (ssl_info.cert) 319 if (ssl_info.cert.get())
318 GetCertificateFields(*ssl_info.cert, &certificate_fields); 320 GetCertificateFields(*ssl_info.cert.get(), &certificate_fields);
319 } 321 }
320 manager_->Send(new PpapiMsg_PPBTCPSocket_SSLHandshakeACK( 322 manager_->Send(new PpapiMsg_PPBTCPSocket_SSLHandshakeACK(
321 routing_id_, 323 routing_id_,
322 plugin_dispatcher_id_, 324 plugin_dispatcher_id_,
323 socket_id_, 325 socket_id_,
324 succeeded, 326 succeeded,
325 certificate_fields)); 327 certificate_fields));
326 } 328 }
327 329
328 void PepperTCPSocket::SendSetBoolOptionACK(bool succeeded) { 330 void PepperTCPSocket::SendSetBoolOptionACK(bool succeeded) {
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 return connection_state_ == SSL_HANDSHAKE_IN_PROGRESS || 438 return connection_state_ == SSL_HANDSHAKE_IN_PROGRESS ||
437 connection_state_ == SSL_CONNECTED || 439 connection_state_ == SSL_CONNECTED ||
438 connection_state_ == SSL_HANDSHAKE_FAILED; 440 connection_state_ == SSL_HANDSHAKE_FAILED;
439 } 441 }
440 442
441 void PepperTCPSocket::DoWrite() { 443 void PepperTCPSocket::DoWrite() {
442 DCHECK(write_buffer_base_.get()); 444 DCHECK(write_buffer_base_.get());
443 DCHECK(write_buffer_.get()); 445 DCHECK(write_buffer_.get());
444 DCHECK_GT(write_buffer_->BytesRemaining(), 0); 446 DCHECK_GT(write_buffer_->BytesRemaining(), 0);
445 447
446 int result = socket_->Write(write_buffer_, write_buffer_->BytesRemaining(), 448 int result = socket_->Write(
447 base::Bind(&PepperTCPSocket::OnWriteCompleted, 449 write_buffer_.get(),
448 base::Unretained(this))); 450 write_buffer_->BytesRemaining(),
451 base::Bind(&PepperTCPSocket::OnWriteCompleted, base::Unretained(this)));
449 if (result != net::ERR_IO_PENDING) 452 if (result != net::ERR_IO_PENDING)
450 OnWriteCompleted(result); 453 OnWriteCompleted(result);
451 } 454 }
452 455
453 } // namespace content 456 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698