| Index: webkit/plugins/ppapi/ppb_websocket_impl.cc
|
| diff --git a/webkit/plugins/ppapi/ppb_websocket_impl.cc b/webkit/plugins/ppapi/ppb_websocket_impl.cc
|
| index 9157b67c92f896a90d622c407f718452cbc658de..e630fa708e57db36c2ae0403a9dcfecb2a612b20 100644
|
| --- a/webkit/plugins/ppapi/ppb_websocket_impl.cc
|
| +++ b/webkit/plugins/ppapi/ppb_websocket_impl.cc
|
| @@ -29,6 +29,7 @@
|
| #include "webkit/plugins/ppapi/ppapi_plugin_instance.h"
|
| #include "webkit/plugins/ppapi/resource_helper.h"
|
|
|
| +using ppapi::ApiCallbackType;
|
| using ppapi::ArrayBufferVar;
|
| using ppapi::PpapiGlobals;
|
| using ppapi::StringVar;
|
| @@ -107,7 +108,7 @@ PPB_WebSocket_API* PPB_WebSocket_Impl::AsPPB_WebSocket_API() {
|
| int32_t PPB_WebSocket_Impl::Connect(PP_Var url,
|
| const PP_Var protocols[],
|
| uint32_t protocol_count,
|
| - PP_CompletionCallback callback) {
|
| + ApiCallbackType callback) {
|
| // Check mandatory interfaces.
|
| PluginInstance* plugin_instance = ResourceHelper::GetPluginInstance(this);
|
| DCHECK(plugin_instance);
|
| @@ -181,10 +182,6 @@ int32_t PPB_WebSocket_Impl::Connect(PP_Var url,
|
| }
|
| WebString web_protocols = WebString::fromUTF8(protocol_string);
|
|
|
| - // Validate |callback| (Doesn't support blocking callback)
|
| - if (!callback.func)
|
| - return PP_ERROR_BLOCKS_MAIN_THREAD;
|
| -
|
| // Create WebKit::WebSocket object and connect.
|
| WebDocument document = plugin_instance->container()->element().document();
|
| websocket_.reset(WebSocket::create(document, this));
|
| @@ -199,14 +196,14 @@ int32_t PPB_WebSocket_Impl::Connect(PP_Var url,
|
| state_ = PP_WEBSOCKETREADYSTATE_CONNECTING;
|
|
|
| // Install callback.
|
| - connect_callback_ = new TrackedCallback(this, callback);
|
| + connect_callback_ = callback;
|
|
|
| return PP_OK_COMPLETIONPENDING;
|
| }
|
|
|
| int32_t PPB_WebSocket_Impl::Close(uint16_t code,
|
| PP_Var reason,
|
| - PP_CompletionCallback callback) {
|
| + ApiCallbackType callback) {
|
| // Check mandarory interfaces.
|
| if (!websocket_.get())
|
| return PP_ERROR_FAILED;
|
| @@ -235,12 +232,8 @@ int32_t PPB_WebSocket_Impl::Close(uint16_t code,
|
| state_ == PP_WEBSOCKETREADYSTATE_CLOSED)
|
| return PP_ERROR_INPROGRESS;
|
|
|
| - // Validate |callback| (Doesn't support blocking callback)
|
| - if (!callback.func)
|
| - return PP_ERROR_BLOCKS_MAIN_THREAD;
|
| -
|
| // Install |callback|.
|
| - close_callback_ = new TrackedCallback(this, callback);
|
| + close_callback_ = callback;
|
|
|
| // Abort ongoing connect.
|
| if (state_ == PP_WEBSOCKETREADYSTATE_CONNECTING) {
|
| @@ -272,7 +265,7 @@ int32_t PPB_WebSocket_Impl::Close(uint16_t code,
|
| }
|
|
|
| int32_t PPB_WebSocket_Impl::ReceiveMessage(PP_Var* message,
|
| - PP_CompletionCallback callback) {
|
| + ApiCallbackType callback) {
|
| // Check state.
|
| if (state_ == PP_WEBSOCKETREADYSTATE_INVALID ||
|
| state_ == PP_WEBSOCKETREADYSTATE_CONNECTING)
|
| @@ -293,14 +286,10 @@ int32_t PPB_WebSocket_Impl::ReceiveMessage(PP_Var* message,
|
| if (error_was_received_)
|
| return PP_ERROR_FAILED;
|
|
|
| - // Validate |callback| (Doesn't support blocking callback)
|
| - if (!callback.func)
|
| - return PP_ERROR_BLOCKS_MAIN_THREAD;
|
| -
|
| // Or retain |message| as buffer to store and install |callback|.
|
| wait_for_receive_ = true;
|
| receive_callback_var_ = message;
|
| - receive_callback_ = new TrackedCallback(this, callback);
|
| + receive_callback_ = callback;
|
|
|
| return PP_OK_COMPLETIONPENDING;
|
| }
|
|
|