Index: webkit/plugins/ppapi/ppb_transport_impl.cc |
diff --git a/webkit/plugins/ppapi/ppb_transport_impl.cc b/webkit/plugins/ppapi/ppb_transport_impl.cc |
index caa60e41b5aba03f9f72d72c1ed679569f307e5e..e47b274f238734da86ef3da7ac4a2330dc7fa8b6 100644 |
--- a/webkit/plugins/ppapi/ppb_transport_impl.cc |
+++ b/webkit/plugins/ppapi/ppb_transport_impl.cc |
@@ -237,9 +237,7 @@ int32_t PPB_Transport_Impl::SetProperty(PP_TransportProperty property, |
return PP_OK; |
} |
-int32_t PPB_Transport_Impl::Connect(PP_CompletionCallback callback) { |
- if (!callback.func) |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
+int32_t PPB_Transport_Impl::Connect(scoped_refptr<TrackedCallback> callback) { |
if (!p2p_transport_.get()) |
return PP_ERROR_FAILED; |
@@ -261,14 +259,13 @@ int32_t PPB_Transport_Impl::Connect(PP_CompletionCallback callback) { |
if (!plugin_module) |
return PP_ERROR_FAILED; |
- connect_callback_ = new TrackedCallback(this, callback); |
+ connect_callback_ = callback; |
return PP_OK_COMPLETIONPENDING; |
} |
-int32_t PPB_Transport_Impl::GetNextAddress(PP_Var* address, |
- PP_CompletionCallback callback) { |
- if (!callback.func) |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
+int32_t PPB_Transport_Impl::GetNextAddress( |
+ PP_Var* address, |
+ scoped_refptr<TrackedCallback> callback) { |
if (!p2p_transport_.get()) |
return PP_ERROR_FAILED; |
@@ -285,7 +282,7 @@ int32_t PPB_Transport_Impl::GetNextAddress(PP_Var* address, |
return PP_OK; |
} |
- next_address_callback_ = new TrackedCallback(this, callback); |
+ next_address_callback_ = callback; |
return PP_OK_COMPLETIONPENDING; |
} |
@@ -302,9 +299,7 @@ int32_t PPB_Transport_Impl::ReceiveRemoteAddress(PP_Var address) { |
} |
int32_t PPB_Transport_Impl::Recv(void* data, uint32_t len, |
- PP_CompletionCallback callback) { |
- if (!callback.func) |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
+ scoped_refptr<TrackedCallback> callback) { |
if (!p2p_transport_.get()) |
return PP_ERROR_FAILED; |
@@ -325,15 +320,13 @@ int32_t PPB_Transport_Impl::Recv(void* data, uint32_t len, |
channel->Read(buffer, len, base::Bind(&PPB_Transport_Impl::OnRead, |
base::Unretained(this)))); |
if (result == PP_OK_COMPLETIONPENDING) |
- recv_callback_ = new TrackedCallback(this, callback); |
+ recv_callback_ = callback; |
return result; |
} |
int32_t PPB_Transport_Impl::Send(const void* data, uint32_t len, |
- PP_CompletionCallback callback) { |
- if (!callback.func) |
- return PP_ERROR_BLOCKS_MAIN_THREAD; |
+ scoped_refptr<TrackedCallback> callback) { |
if (!p2p_transport_.get()) |
return PP_ERROR_FAILED; |
@@ -354,7 +347,7 @@ int32_t PPB_Transport_Impl::Send(const void* data, uint32_t len, |
channel->Write(buffer, len, base::Bind(&PPB_Transport_Impl::OnWritten, |
base::Unretained(this)))); |
if (result == PP_OK_COMPLETIONPENDING) |
- send_callback_ = new TrackedCallback(this, callback); |
+ send_callback_ = callback; |
return result; |
} |