summaryrefslogtreecommitdiffstats
path: root/ppapi/thunk
diff options
context:
space:
mode:
authortoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 23:57:31 +0000
committertoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 23:57:31 +0000
commita9718acb5ecacdbb83abe82adc8f427ed97eb107 (patch)
tree3724f6e96788a4ed9c77c968e9ebf0c65035c434 /ppapi/thunk
parent7b3e1c8db795fb93bb0868a18743aa6631a27230 (diff)
downloadchromium_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.cc17
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) {