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

Side by Side Diff: webkit/plugins/ppapi/ppb_websocket_impl.cc

Issue 8821010: WebSocket Pepper API: C++ bindings implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: straightforward C++ interface Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "webkit/plugins/ppapi/ppb_websocket_impl.h" 5 #include "webkit/plugins/ppapi/ppb_websocket_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 uint64_t PPB_WebSocket_Impl::GetBufferedAmount() { 337 uint64_t PPB_WebSocket_Impl::GetBufferedAmount() {
338 return SaturateAdd(buffered_amount_, buffered_amount_after_close_); 338 return SaturateAdd(buffered_amount_, buffered_amount_after_close_);
339 } 339 }
340 340
341 uint16_t PPB_WebSocket_Impl::GetCloseCode() { 341 uint16_t PPB_WebSocket_Impl::GetCloseCode() {
342 return close_code_; 342 return close_code_;
343 } 343 }
344 344
345 PP_Var PPB_WebSocket_Impl::GetCloseReason() { 345 PP_Var PPB_WebSocket_Impl::GetCloseReason() {
346 if (!close_reason_) 346 if (!close_reason_)
347 return empty_string_->GetPPVar(); 347 return ReturnVar(empty_string_->GetPPVar());
348 return close_reason_->GetPPVar(); 348 return ReturnVar(close_reason_->GetPPVar());
349 } 349 }
350 350
351 PP_Bool PPB_WebSocket_Impl::GetCloseWasClean() { 351 PP_Bool PPB_WebSocket_Impl::GetCloseWasClean() {
352 return close_was_clean_; 352 return close_was_clean_;
353 } 353 }
354 354
355 PP_Var PPB_WebSocket_Impl::GetExtensions() { 355 PP_Var PPB_WebSocket_Impl::GetExtensions() {
356 // TODO(toyoshim): For now, always returns empty string because WebKit side 356 // TODO(toyoshim): For now, always returns empty string because WebKit side
357 // doesn't support it yet. 357 // doesn't support it yet.
358 if (!extensions_) 358 if (!extensions_)
359 return empty_string_->GetPPVar(); 359 return ReturnVar(empty_string_->GetPPVar());
360 return extensions_->GetPPVar(); 360 return ReturnVar(extensions_->GetPPVar());
361 } 361 }
362 362
363 PP_Var PPB_WebSocket_Impl::GetProtocol() { 363 PP_Var PPB_WebSocket_Impl::GetProtocol() {
364 // Check mandatory interfaces. 364 // Check mandatory interfaces.
365 if (!websocket_.get()) 365 if (!websocket_.get())
366 return empty_string_->GetPPVar(); 366 return ReturnVar(empty_string_->GetPPVar());
367 367
368 std::string protocol = websocket_->subprotocol().utf8(); 368 std::string protocol = websocket_->subprotocol().utf8();
369 return StringVar::StringToPPVar(protocol); 369 return StringVar::StringToPPVar(protocol);
370 } 370 }
371 371
372 PP_WebSocketReadyState_Dev PPB_WebSocket_Impl::GetReadyState() { 372 PP_WebSocketReadyState_Dev PPB_WebSocket_Impl::GetReadyState() {
373 return state_; 373 return state_;
374 } 374 }
375 375
376 PP_Var PPB_WebSocket_Impl::GetURL() { 376 PP_Var PPB_WebSocket_Impl::GetURL() {
377 if (!url_) 377 if (!url_)
378 return empty_string_->GetPPVar(); 378 return ReturnVar(empty_string_->GetPPVar());
379 return url_->GetPPVar(); 379 return ReturnVar(url_->GetPPVar());
dmichael (off chromium) 2011/12/09 23:05:26 It looks like this got polluted from that other CL
380 } 380 }
381 381
382 void PPB_WebSocket_Impl::didConnect() { 382 void PPB_WebSocket_Impl::didConnect() {
383 DCHECK_EQ(PP_WEBSOCKETREADYSTATE_CONNECTING_DEV, state_); 383 DCHECK_EQ(PP_WEBSOCKETREADYSTATE_CONNECTING_DEV, state_);
384 state_ = PP_WEBSOCKETREADYSTATE_OPEN_DEV; 384 state_ = PP_WEBSOCKETREADYSTATE_OPEN_DEV;
385 PP_RunAndClearCompletionCallback(&connect_callback_, PP_OK); 385 PP_RunAndClearCompletionCallback(&connect_callback_, PP_OK);
386 } 386 }
387 387
388 void PPB_WebSocket_Impl::didReceiveMessage(const WebString& message) { 388 void PPB_WebSocket_Impl::didReceiveMessage(const WebString& message) {
389 // Dispose packets after receiving an error or in invalid state. 389 // Dispose packets after receiving an error or in invalid state.
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 if (!receive_callback_var_) 485 if (!receive_callback_var_)
486 return PP_OK; 486 return PP_OK;
487 487
488 *receive_callback_var_ = received_messages_.front(); 488 *receive_callback_var_ = received_messages_.front();
489 received_messages_.pop(); 489 received_messages_.pop();
490 receive_callback_var_ = NULL; 490 receive_callback_var_ = NULL;
491 wait_for_receive_ = false; 491 wait_for_receive_ = false;
492 return PP_OK; 492 return PP_OK;
493 } 493 }
494 494
495 PP_Var PPB_WebSocket_Impl::ReturnVar(PP_Var var) {
496 VarTracker* var_tracker = PpapiGlobals::Get()->GetVarTracker();
497 var_tracker->AddRefVar(var);
498 return var;
499 }
500
495 } // namespace ppapi 501 } // namespace ppapi
496 } // namespace webkit 502 } // namespace webkit
OLDNEW
« ppapi/cpp/dev/websocket_dev.cc ('K') | « webkit/plugins/ppapi/ppb_websocket_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698