| Index: ppapi/proxy/ppb_broker_proxy.cc
|
| ===================================================================
|
| --- ppapi/proxy/ppb_broker_proxy.cc (revision 95737)
|
| +++ ppapi/proxy/ppb_broker_proxy.cc (working copy)
|
| @@ -14,6 +14,8 @@
|
| #include "ppapi/thunk/enter.h"
|
| #include "ppapi/thunk/thunk.h"
|
|
|
| +using ppapi::thunk::PPB_Broker_API;
|
| +
|
| namespace pp {
|
| namespace proxy {
|
|
|
| @@ -46,14 +48,13 @@
|
|
|
| } // namespace
|
|
|
| -class Broker : public ppapi::thunk::PPB_Broker_API,
|
| - public PluginResource {
|
| +class Broker : public PPB_Broker_API, public PluginResource {
|
| public:
|
| explicit Broker(const HostResource& resource);
|
| virtual ~Broker();
|
|
|
| // ResourceObjectBase overries.
|
| - virtual ppapi::thunk::PPB_Broker_API* AsPPB_Broker_API() OVERRIDE;
|
| + virtual PPB_Broker_API* AsPPB_Broker_API() OVERRIDE;
|
|
|
| // PPB_Broker_API implementation.
|
| virtual int32_t Connect(PP_CompletionCallback connect_callback) OVERRIDE;
|
| @@ -96,7 +97,7 @@
|
| socket_handle_ = base::kInvalidPlatformFileValue;
|
| }
|
|
|
| -ppapi::thunk::PPB_Broker_API* Broker::AsPPB_Broker_API() {
|
| +PPB_Broker_API* Broker::AsPPB_Broker_API() {
|
| return this;
|
| }
|
|
|
| @@ -204,14 +205,11 @@
|
| }
|
|
|
| void PPB_Broker_Proxy::OnMsgConnect(const HostResource& broker) {
|
| - CompletionCallback callback = callback_factory_.NewOptionalCallback(
|
| + EnterHostFromHostResourceForceCallback<PPB_Broker_API> enter(
|
| + broker, callback_factory_,
|
| &PPB_Broker_Proxy::ConnectCompleteInHost, broker);
|
| -
|
| - int32_t result = ppb_broker_target()->Connect(
|
| - broker.host_resource(),
|
| - callback.pp_completion_callback());
|
| - if (result != PP_OK_COMPLETIONPENDING)
|
| - callback.Run(result);
|
| + if (enter.succeeded())
|
| + enter.SetResult(enter.object()->Connect(enter.callback()));
|
| }
|
|
|
| // Called in the plugin to handle the connect callback.
|
| @@ -225,7 +223,7 @@
|
| DCHECK(result == PP_OK ||
|
| socket_handle == IPC::InvalidPlatformFileForTransit());
|
|
|
| - EnterPluginFromHostResource<ppapi::thunk::PPB_Broker_API> enter(resource);
|
| + EnterPluginFromHostResource<PPB_Broker_API> enter(resource);
|
| if (enter.failed()) {
|
| // As in Broker::ConnectComplete, we need to close the resource on error.
|
| base::SyncSocket temp_socket(
|
|
|