Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(310)

Unified Diff: services/service_manager/public/cpp/interface_binder.cc

Issue 2879843002: Reland 1: Enable overriding interface binders for any services running in current process. (Closed)
Patch Set: Identical with original CL Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « services/service_manager/public/cpp/interface_binder.h ('k') | services/service_manager/public/cpp/service_context.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698