| Index: webkit/plugins/ppapi/ppb_websocket_impl.h
|
| diff --git a/webkit/plugins/ppapi/ppb_websocket_impl.h b/webkit/plugins/ppapi/ppb_websocket_impl.h
|
| index a96617171eec1a43cc3b12e572c4caf874cf1f79..c74de535357081e8d09cc956c0daab577fbb5a96 100644
|
| --- a/webkit/plugins/ppapi/ppb_websocket_impl.h
|
| +++ b/webkit/plugins/ppapi/ppb_websocket_impl.h
|
| @@ -5,8 +5,22 @@
|
| #ifndef WEBKIT_PLUGINS_PPAPI_PPB_WEBSOCKET_IMPL_H_
|
| #define WEBKIT_PLUGINS_PPAPI_PPB_WEBSOCKET_IMPL_H_
|
|
|
| +#include <queue>
|
| +
|
| +#include "base/memory/scoped_ptr.h"
|
| #include "ppapi/shared_impl/resource.h"
|
| #include "ppapi/thunk/ppb_websocket_api.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebSocketClient.h"
|
| +
|
| +struct PPB_Var;
|
| +
|
| +namespace ppapi {
|
| +class StringVar;
|
| +}
|
| +
|
| +namespace WebKit {
|
| +class WebSocket;
|
| +}
|
|
|
| namespace webkit {
|
| namespace ppapi {
|
| @@ -14,7 +28,8 @@ namespace ppapi {
|
| // All implementation is in this class for now. We should move some common
|
| // implementation to shared_impl when we implement proxy interfaces.
|
| class PPB_WebSocket_Impl : public ::ppapi::Resource,
|
| - public ::ppapi::thunk::PPB_WebSocket_API {
|
| + public ::ppapi::thunk::PPB_WebSocket_API,
|
| + public ::WebKit::WebSocketClient {
|
| public:
|
| explicit PPB_WebSocket_Impl(PP_Instance instance);
|
| virtual ~PPB_WebSocket_Impl();
|
| @@ -44,6 +59,40 @@ class PPB_WebSocket_Impl : public ::ppapi::Resource,
|
| virtual PP_WebSocketReadyState_Dev GetReadyState() OVERRIDE;
|
| virtual PP_Var GetURL() OVERRIDE;
|
|
|
| + // WebSocketClient implementation.
|
| + virtual void didConnect() OVERRIDE;
|
| + virtual void didReceiveMessage(const WebKit::WebString& message) OVERRIDE;
|
| + virtual void didReceiveBinaryData(
|
| + const WebKit::WebData& binaryData) OVERRIDE;
|
| + virtual void didReceiveMessageError() OVERRIDE;
|
| + virtual void didStartClosingHandshake() OVERRIDE;
|
| + virtual void didClose(unsigned long bufferedAmount,
|
| + ClosingHandshakeCompletionStatus status,
|
| + unsigned short code,
|
| + const WebKit::WebString& reason) OVERRIDE;
|
| + private:
|
| + int32_t DoReceive();
|
| +
|
| + scoped_ptr<WebKit::WebSocket> websocket_;
|
| + PP_WebSocketReadyState_Dev state_;
|
| +
|
| + PP_CompletionCallback connect_callback_;
|
| +
|
| + PP_CompletionCallback receive_callback_;
|
| + PP_Var* receive_callback_var_;
|
| + bool wait_for_receive_;
|
| + std::queue<PP_Var> received_messages_;
|
| +
|
| + PP_CompletionCallback close_callback_;
|
| + uint16_t close_code_;
|
| + scoped_refptr< ::ppapi::StringVar> close_reason_;
|
| + PP_Bool close_was_clean_;
|
| +
|
| + scoped_refptr< ::ppapi::StringVar> empty_string_;
|
| + scoped_refptr< ::ppapi::StringVar> extensions_;
|
| + scoped_refptr< ::ppapi::StringVar> protocol_;
|
| + scoped_refptr< ::ppapi::StringVar> url_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(PPB_WebSocket_Impl);
|
| };
|
|
|
|
|