| Index: services/service_manager/public/cpp/interface_binder.cc
|
| diff --git a/services/service_manager/public/cpp/interface_binder.cc b/services/service_manager/public/cpp/interface_binder.cc
|
| index 48a6cd98f10d618130cc77c4377b49bf47a76f1c..3d4a03243845c0ff973b19b04b7522522f031a7b 100644
|
| --- a/services/service_manager/public/cpp/interface_binder.cc
|
| +++ b/services/service_manager/public/cpp/interface_binder.cc
|
| @@ -4,13 +4,33 @@
|
|
|
| #include "services/service_manager/public/cpp/interface_binder.h"
|
|
|
| +#include "services/service_manager/public/cpp/bind_source_info.h"
|
| +
|
| namespace service_manager {
|
|
|
| +namespace {
|
| +
|
| +void BindCallbackAdapter(
|
| + const base::Callback<void(mojo::ScopedMessagePipeHandle)>& callback,
|
| + const BindSourceInfo& source_info,
|
| + const std::string& interface_name,
|
| + mojo::ScopedMessagePipeHandle handle) {
|
| + callback.Run(std::move(handle));
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| GenericCallbackBinder::GenericCallbackBinder(
|
| const BindCallback& callback,
|
| const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
|
| : callback_(callback), task_runner_(task_runner) {}
|
|
|
| +GenericCallbackBinder::GenericCallbackBinder(
|
| + const base::Callback<void(mojo::ScopedMessagePipeHandle)>& callback,
|
| + const scoped_refptr<base::SingleThreadTaskRunner>& task_runner)
|
| + : callback_(base::Bind(&BindCallbackAdapter, callback)),
|
| + task_runner_(task_runner) {}
|
| +
|
| GenericCallbackBinder::~GenericCallbackBinder() {}
|
|
|
| void GenericCallbackBinder::BindInterface(
|
| @@ -19,17 +39,20 @@ void GenericCallbackBinder::BindInterface(
|
| mojo::ScopedMessagePipeHandle handle) {
|
| if (task_runner_) {
|
| task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(&GenericCallbackBinder::RunCallback, callback_,
|
| - base::Passed(&handle)));
|
| + FROM_HERE,
|
| + base::Bind(&GenericCallbackBinder::RunCallback, callback_, source_info,
|
| + interface_name, base::Passed(&handle)));
|
| return;
|
| }
|
| - RunCallback(callback_, std::move(handle));
|
| + RunCallback(callback_, source_info, interface_name, std::move(handle));
|
| }
|
|
|
| // static
|
| void GenericCallbackBinder::RunCallback(const BindCallback& callback,
|
| + const BindSourceInfo& source_info,
|
| + const std::string& interface_name,
|
| mojo::ScopedMessagePipeHandle handle) {
|
| - callback.Run(std::move(handle));
|
| + callback.Run(source_info, interface_name, std::move(handle));
|
| }
|
|
|
| } // namespace service_manager
|
|
|