| Index: ppapi/proxy/ppb_instance_proxy.cc
|
| diff --git a/ppapi/proxy/ppb_instance_proxy.cc b/ppapi/proxy/ppb_instance_proxy.cc
|
| index 293ebf01074a04345d1c93bfd3a385b46f235282..667a8a217826a5c3c7a07ee6dfcc1d5a9316bb54 100644
|
| --- a/ppapi/proxy/ppb_instance_proxy.cc
|
| +++ b/ppapi/proxy/ppb_instance_proxy.cc
|
| @@ -32,7 +32,7 @@
|
|
|
| using ppapi::thunk::EnterInstanceNoLock;
|
| using ppapi::thunk::EnterResourceNoLock;
|
| -using ppapi::thunk::PPB_Instance_FunctionAPI;
|
| +using ppapi::thunk::PPB_Instance_API;
|
|
|
| namespace ppapi {
|
| namespace proxy {
|
| @@ -156,10 +156,6 @@ bool PPB_Instance_Proxy::OnMessageReceived(const IPC::Message& msg) {
|
| return handled;
|
| }
|
|
|
| -PPB_Instance_FunctionAPI* PPB_Instance_Proxy::AsPPB_Instance_FunctionAPI() {
|
| - return this;
|
| -}
|
| -
|
| PP_Bool PPB_Instance_Proxy::BindGraphics(PP_Instance instance,
|
| PP_Resource device) {
|
| Resource* object =
|
| @@ -633,13 +629,19 @@ void PPB_Instance_Proxy::OnHostMsgPostMessage(
|
| }
|
|
|
| void PPB_Instance_Proxy::OnHostMsgLockMouse(PP_Instance instance) {
|
| - EnterHostFunctionForceCallback<PPB_Instance_FunctionAPI> enter(
|
| - instance,
|
| - callback_factory_.NewCallback(
|
| - &PPB_Instance_Proxy::MouseLockCompleteInHost,
|
| - instance));
|
| - if (enter.succeeded())
|
| - enter.SetResult(enter.functions()->LockMouse(instance, enter.callback()));
|
| + // Need to be careful to always issue the callback.
|
| + pp::CompletionCallback cb = callback_factory_.NewCallback(
|
| + &PPB_Instance_Proxy::MouseLockCompleteInHost, instance);
|
| +
|
| + EnterInstanceNoLock enter(instance);
|
| + if (enter.failed()) {
|
| + cb.Run(PP_ERROR_BADARGUMENT);
|
| + return;
|
| + }
|
| + int32_t result = enter.functions()->LockMouse(instance,
|
| + cb.pp_completion_callback());
|
| + if (result != PP_OK_COMPLETIONPENDING)
|
| + cb.Run(result);
|
| }
|
|
|
| void PPB_Instance_Proxy::OnHostMsgUnlockMouse(PP_Instance instance) {
|
|
|