Index: webkit/plugins/ppapi/ppapi_plugin_instance.cc |
diff --git a/webkit/plugins/ppapi/ppapi_plugin_instance.cc b/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
index ffb0c17a4f95a041e3ee9b3b2cc815af254f7a42..13af122d15086af73fd0b233821030617548a218 100644 |
--- a/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
+++ b/webkit/plugins/ppapi/ppapi_plugin_instance.cc |
@@ -98,12 +98,14 @@ |
#endif |
using base::StringPrintf; |
+using ppapi::ApiCallbackType; |
using ppapi::InputEventData; |
using ppapi::PPB_InputEvent_Shared; |
using ppapi::PpapiGlobals; |
using ppapi::PPB_View_Shared; |
using ppapi::ScopedPPResource; |
using ppapi::StringVar; |
+using ppapi::TrackedCallback; |
using ppapi::thunk::EnterResourceNoLock; |
using ppapi::thunk::PPB_Buffer_API; |
using ppapi::thunk::PPB_Graphics2D_API; |
@@ -315,7 +317,6 @@ PluginInstance::PluginInstance( |
text_input_caret_set_(false), |
selection_caret_(0), |
selection_anchor_(0), |
- lock_mouse_callback_(PP_BlockUntilComplete()), |
pending_user_gesture_(0.0) { |
pp_instance_ = HostGlobals::Get()->AddInstance(this); |
@@ -342,8 +343,8 @@ PluginInstance::~PluginInstance() { |
i != plugin_object_copy.end(); ++i) |
delete *i; |
- if (lock_mouse_callback_.func) |
- PP_RunAndClearCompletionCallback(&lock_mouse_callback_, PP_ERROR_ABORTED); |
+ if (lock_mouse_callback_) |
+ TrackedCallback::ClearAndAbort(&lock_mouse_callback_); |
delegate_->InstanceDeleted(this); |
module_->InstanceDeleted(this); |
@@ -1711,12 +1712,12 @@ bool PluginInstance::IsProcessingUserGesture() { |
} |
void PluginInstance::OnLockMouseACK(bool succeeded) { |
- if (!lock_mouse_callback_.func) { |
+ if (!lock_mouse_callback_) { |
NOTREACHED(); |
return; |
} |
- PP_RunAndClearCompletionCallback(&lock_mouse_callback_, |
- succeeded ? PP_OK : PP_ERROR_FAILED); |
+ TrackedCallback::ClearAndRun(&lock_mouse_callback_, |
+ succeeded ? PP_OK : PP_ERROR_FAILED); |
} |
void PluginInstance::OnMouseLockLost() { |
@@ -2038,12 +2039,8 @@ PP_Bool PluginInstance::SetCursor(PP_Instance instance, |
} |
int32_t PluginInstance::LockMouse(PP_Instance instance, |
- PP_CompletionCallback callback) { |
- if (!callback.func) { |
- // Don't support synchronous call. |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
- } |
- if (lock_mouse_callback_.func) // A lock is pending. |
+ ApiCallbackType callback) { |
+ if (TrackedCallback::IsPending(lock_mouse_callback_)) |
return PP_ERROR_INPROGRESS; |
if (delegate()->IsMouseLocked(this)) |