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

Side by Side Diff: ppapi/proxy/tcp_socket_resource_base.cc

Issue 690903002: Remove timing limitation of SetOption invocation for PPAPI sockets. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase and fixed implementation. Created 6 years 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 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 "ppapi/proxy/tcp_socket_resource_base.h" 5 #include "ppapi/proxy/tcp_socket_resource_base.h"
6 6
7 #include <cstring> 7 #include <cstring>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 PostAbortIfNecessary(&accept_callback_); 311 PostAbortIfNecessary(&accept_callback_);
312 read_buffer_ = NULL; 312 read_buffer_ = NULL;
313 bytes_to_read_ = -1; 313 bytes_to_read_ = -1;
314 server_certificate_ = NULL; 314 server_certificate_ = NULL;
315 accepted_tcp_socket_ = NULL; 315 accepted_tcp_socket_ = NULL;
316 } 316 }
317 317
318 int32_t TCPSocketResourceBase::SetOptionImpl( 318 int32_t TCPSocketResourceBase::SetOptionImpl(
319 PP_TCPSocket_Option name, 319 PP_TCPSocket_Option name,
320 const PP_Var& value, 320 const PP_Var& value,
321 bool check_connect_state,
321 scoped_refptr<TrackedCallback> callback) { 322 scoped_refptr<TrackedCallback> callback) {
322 SocketOptionData option_data; 323 SocketOptionData option_data;
323 switch (name) { 324 switch (name) {
324 case PP_TCPSOCKET_OPTION_NO_DELAY: { 325 case PP_TCPSOCKET_OPTION_NO_DELAY: {
325 if (!state_.IsConnected()) 326 if (check_connect_state && !state_.IsConnected())
326 return PP_ERROR_FAILED; 327 return PP_ERROR_FAILED;
327 328
328 if (value.type != PP_VARTYPE_BOOL) 329 if (value.type != PP_VARTYPE_BOOL)
329 return PP_ERROR_BADARGUMENT; 330 return PP_ERROR_BADARGUMENT;
330 option_data.SetBool(PP_ToBool(value.value.as_bool)); 331 option_data.SetBool(PP_ToBool(value.value.as_bool));
331 break; 332 break;
332 } 333 }
333 case PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE: 334 case PP_TCPSOCKET_OPTION_SEND_BUFFER_SIZE:
334 case PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE: { 335 case PP_TCPSOCKET_OPTION_RECV_BUFFER_SIZE: {
335 if (!state_.IsConnected()) 336 if (check_connect_state && !state_.IsConnected())
336 return PP_ERROR_FAILED; 337 return PP_ERROR_FAILED;
337 338
338 if (value.type != PP_VARTYPE_INT32) 339 if (value.type != PP_VARTYPE_INT32)
339 return PP_ERROR_BADARGUMENT; 340 return PP_ERROR_BADARGUMENT;
340 option_data.SetInt32(value.value.as_int); 341 option_data.SetInt32(value.value.as_int);
341 break; 342 break;
342 } 343 }
343 default: { 344 default: {
344 NOTREACHED(); 345 NOTREACHED();
345 return PP_ERROR_BADARGUMENT; 346 return PP_ERROR_BADARGUMENT;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 } 503 }
503 504
504 void TCPSocketResourceBase::RunCallback(scoped_refptr<TrackedCallback> callback, 505 void TCPSocketResourceBase::RunCallback(scoped_refptr<TrackedCallback> callback,
505 int32_t pp_result) { 506 int32_t pp_result) {
506 callback->Run(ConvertNetworkAPIErrorForCompatibility( 507 callback->Run(ConvertNetworkAPIErrorForCompatibility(
507 pp_result, version_ == TCP_SOCKET_VERSION_PRIVATE)); 508 pp_result, version_ == TCP_SOCKET_VERSION_PRIVATE));
508 } 509 }
509 510
510 } // namespace ppapi 511 } // namespace ppapi
511 } // namespace proxy 512 } // namespace proxy
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698