diff options
author | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-02 23:57:31 +0000 |
---|---|---|
committer | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-02 23:57:31 +0000 |
commit | a9718acb5ecacdbb83abe82adc8f427ed97eb107 (patch) | |
tree | 3724f6e96788a4ed9c77c968e9ebf0c65035c434 /ppapi/thunk | |
parent | 7b3e1c8db795fb93bb0868a18743aa6631a27230 (diff) | |
download | chromium_src-a9718acb5ecacdbb83abe82adc8f427ed97eb107.zip chromium_src-a9718acb5ecacdbb83abe82adc8f427ed97eb107.tar.gz chromium_src-a9718acb5ecacdbb83abe82adc8f427ed97eb107.tar.bz2 |
WebSocket Pepper API: error handling improvement
- didReceiveMessageError() handling
- didStartClosingHandshake() handling
- didReceive* state_ checking
- MayForceCallback handling
BUG=87310
TEST=ui_tests --gtest_filter='PPAPITest.WebSocket*'
Review URL: http://codereview.chromium.org/8772001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112820 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/thunk')
-rw-r--r-- | ppapi/thunk/ppb_websocket_thunk.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/ppapi/thunk/ppb_websocket_thunk.cc b/ppapi/thunk/ppb_websocket_thunk.cc index d1de127..87cb8c7 100644 --- a/ppapi/thunk/ppb_websocket_thunk.cc +++ b/ppapi/thunk/ppb_websocket_thunk.cc @@ -4,6 +4,7 @@ #include "ppapi/c/pp_errors.h" #include "ppapi/c/pp_var.h" +#include "ppapi/thunk/common.h" #include "ppapi/thunk/thunk.h" #include "ppapi/thunk/enter.h" #include "ppapi/thunk/ppb_websocket_api.h" @@ -33,8 +34,10 @@ int32_t Connect(PP_Resource resource, PP_CompletionCallback callback) { EnterResource<PPB_WebSocket_API> enter(resource, false); if (enter.failed()) - return PP_ERROR_BADRESOURCE; - return enter.object()->Connect(url, protocols, protocol_count, callback); + return MayForceCallback(callback, PP_ERROR_BADRESOURCE); + int32_t result = + enter.object()->Connect(url, protocols, protocol_count, callback); + return MayForceCallback(callback, result); } int32_t Close(PP_Resource resource, @@ -43,8 +46,9 @@ int32_t Close(PP_Resource resource, PP_CompletionCallback callback) { EnterResource<PPB_WebSocket_API> enter(resource, false); if (enter.failed()) - return PP_ERROR_BADRESOURCE; - return enter.object()->Close(code, reason, callback); + return MayForceCallback(callback, PP_ERROR_BADRESOURCE); + int32_t result = enter.object()->Close(code, reason, callback); + return MayForceCallback(callback, result); } int32_t ReceiveMessage(PP_Resource resource, @@ -52,8 +56,9 @@ int32_t ReceiveMessage(PP_Resource resource, PP_CompletionCallback callback) { EnterResource<PPB_WebSocket_API> enter(resource, false); if (enter.failed()) - return PP_ERROR_BADRESOURCE; - return enter.object()->ReceiveMessage(message, callback); + return MayForceCallback(callback, PP_ERROR_BADRESOURCE); + int32_t result = enter.object()->ReceiveMessage(message, callback); + return MayForceCallback(callback, result); } int32_t SendMessage(PP_Resource resource, PP_Var message) { |