Index: ppapi/proxy/ppb_broker_proxy.cc |
diff --git a/ppapi/proxy/ppb_broker_proxy.cc b/ppapi/proxy/ppb_broker_proxy.cc |
index b9549e06cac4f683909effcdb4635a31e88b2360..9800d32bac4ae364a42e26c7203f83af2cb347a2 100644 |
--- a/ppapi/proxy/ppb_broker_proxy.cc |
+++ b/ppapi/proxy/ppb_broker_proxy.cc |
@@ -33,7 +33,8 @@ class Broker : public PPB_Broker_API, public Resource { |
virtual PPB_Broker_API* AsPPB_Broker_API() OVERRIDE; |
// PPB_Broker_API implementation. |
- virtual int32_t Connect(PP_CompletionCallback connect_callback) OVERRIDE; |
+ virtual int32_t Connect( |
+ scoped_refptr<TrackedCallback> connect_callback) OVERRIDE; |
virtual int32_t GetHandle(int32_t* handle) OVERRIDE; |
// Called by the proxy when the host side has completed the request. |
@@ -67,18 +68,13 @@ PPB_Broker_API* Broker::AsPPB_Broker_API() { |
return this; |
} |
-int32_t Broker::Connect(PP_CompletionCallback connect_callback) { |
- if (!connect_callback.func) { |
- // Synchronous calls are not supported. |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
- } |
- |
+int32_t Broker::Connect(scoped_refptr<TrackedCallback> connect_callback) { |
if (TrackedCallback::IsPending(current_connect_callback_)) |
return PP_ERROR_INPROGRESS; |
else if (called_connect_) |
return PP_ERROR_FAILED; |
- current_connect_callback_ = new TrackedCallback(this, connect_callback); |
+ current_connect_callback_ = connect_callback; |
called_connect_ = true; |
bool success = PluginDispatcher::GetForResource(this)->Send( |