| Index: ppapi/proxy/ppb_surface_3d_proxy.cc
|
| ===================================================================
|
| --- ppapi/proxy/ppb_surface_3d_proxy.cc (revision 89886)
|
| +++ ppapi/proxy/ppb_surface_3d_proxy.cc (working copy)
|
| @@ -12,6 +12,7 @@
|
| #include "ppapi/proxy/plugin_resource.h"
|
| #include "ppapi/proxy/ppapi_messages.h"
|
| #include "ppapi/proxy/ppb_context_3d_proxy.h"
|
| +#include "ppapi/thunk/common.h"
|
|
|
| namespace pp {
|
| namespace proxy {
|
| @@ -76,22 +77,24 @@
|
| PP_CompletionCallback callback) {
|
| Surface3D* object = PluginResource::GetAs<Surface3D>(surface_id);
|
| if (!object)
|
| - return PP_ERROR_BADRESOURCE;
|
| + return ppapi::thunk::MayForceCallback(callback, PP_ERROR_BADRESOURCE);
|
| PluginDispatcher* dispatcher = PluginDispatcher::GetForInstance(
|
| object->instance());
|
| if (!dispatcher)
|
| - return PP_ERROR_FAILED;
|
| + return ppapi::thunk::MayForceCallback(callback, PP_ERROR_FAILED);
|
|
|
| // For now, disallow blocking calls. We'll need to add support for other
|
| // threads to this later.
|
| if (!callback.func)
|
| - return PP_ERROR_BADARGUMENT;
|
| + return ppapi::thunk::MayForceCallback(callback, PP_ERROR_BADARGUMENT);
|
|
|
| - if (object->is_flush_pending())
|
| - return PP_ERROR_INPROGRESS; // Can't have >1 flush pending.
|
| + if (object->is_flush_pending()) {
|
| + // Can't have >1 flush pending.
|
| + return ppapi::thunk::MayForceCallback(callback, PP_ERROR_INPROGRESS);
|
| + }
|
|
|
| if (!object->context())
|
| - return PP_ERROR_FAILED;
|
| + return ppapi::thunk::MayForceCallback(callback, PP_ERROR_FAILED);
|
|
|
| object->set_current_flush_callback(callback);
|
|
|
| @@ -169,7 +172,7 @@
|
| }
|
|
|
| void PPB_Surface3D_Proxy::OnMsgSwapBuffers(const HostResource& surface_3d) {
|
| - CompletionCallback callback = callback_factory_.NewCallback(
|
| + CompletionCallback callback = callback_factory_.NewOptionalCallback(
|
| &PPB_Surface3D_Proxy::SendSwapBuffersACKToPlugin, surface_3d);
|
| int32_t result = ppb_surface_3d_target()->SwapBuffers(
|
| surface_3d.host_resource(), callback.pp_completion_callback());
|
|
|