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

Unified Diff: services/service_manager/tests/connect/connect_test_package.cc

Issue 2804373002: Eliminate Connector::Connect(), Connection, etc. (Closed)
Patch Set: . Created 3 years, 8 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/tests/connect/connect_test_package.cc
diff --git a/services/service_manager/tests/connect/connect_test_package.cc b/services/service_manager/tests/connect/connect_test_package.cc
index 974e387dc0184e6011cd5cc983301444471e603c..2494479dec78b91a629e5f43f81ceb6c0cca25eb 100644
--- a/services/service_manager/tests/connect/connect_test_package.cc
+++ b/services/service_manager/tests/connect/connect_test_package.cc
@@ -16,9 +16,9 @@
#include "base/threading/simple_thread.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "services/service_manager/public/c/main.h"
+#include "services/service_manager/public/cpp/binder_registry.h"
#include "services/service_manager/public/cpp/connector.h"
#include "services/service_manager/public/cpp/interface_factory.h"
-#include "services/service_manager/public/cpp/interface_registry.h"
#include "services/service_manager/public/cpp/service.h"
#include "services/service_manager/public/cpp/service_context.h"
#include "services/service_manager/public/cpp/service_runner.h"
@@ -30,6 +30,19 @@
// the package's manifest and are thus registered with the PackageManager.
namespace service_manager {
+namespace {
+
+void QuitLoop(base::RunLoop* loop,
+ mojom::ConnectResult* out_result,
+ Identity* out_resolved_identity,
+ mojom::ConnectResult result,
+ const Identity& resolved_identity) {
+ loop->Quit();
+ *out_result = result;
+ *out_resolved_identity = resolved_identity;
+}
+
+} // namespace
using GetTitleCallback = test::mojom::ConnectTestService::GetTitleCallback;
@@ -60,30 +73,29 @@ class ProvidedService
bindings_.set_connection_error_handler(
base::Bind(&ProvidedService::OnConnectionError,
base::Unretained(this)));
+ registry_.AddInterface<test::mojom::ConnectTestService>(this);
+ registry_.AddInterface<test::mojom::BlockedInterface>(this);
+ registry_.AddInterface<test::mojom::UserIdTest>(this);
}
-
- bool OnConnect(const ServiceInfo& remote_info,
- InterfaceRegistry* registry) override {
- registry->AddInterface<test::mojom::ConnectTestService>(this);
- registry->AddInterface<test::mojom::BlockedInterface>(this);
- registry->AddInterface<test::mojom::UserIdTest>(this);
-
- test::mojom::ConnectionStatePtr state(test::mojom::ConnectionState::New());
- state->connection_remote_name = remote_info.identity.name();
- state->connection_remote_userid = remote_info.identity.user_id();
- state->initialize_local_name = context()->identity().name();
- state->initialize_userid = context()->identity().user_id();
-
- context()->connector()->BindInterface(remote_info.identity, &caller_);
- caller_->ConnectionAccepted(std::move(state));
-
- return true;
+ void OnBindInterface(const ServiceInfo& source_info,
+ const std::string& interface_name,
+ mojo::ScopedMessagePipeHandle interface_pipe) override {
+ registry_.BindInterface(source_info.identity, interface_name,
+ std::move(interface_pipe));
}
// InterfaceFactory<test::mojom::ConnectTestService>:
void Create(const Identity& remote_identity,
test::mojom::ConnectTestServiceRequest request) override {
bindings_.AddBinding(this, std::move(request));
+ test::mojom::ConnectionStatePtr state(test::mojom::ConnectionState::New());
+ state->connection_remote_name = remote_identity.name();
+ state->connection_remote_userid = remote_identity.user_id();
+ state->initialize_local_name = context()->identity().name();
+ state->initialize_userid = context()->identity().user_id();
+
+ context()->connector()->BindInterface(remote_identity, &caller_);
+ caller_->ConnectionAccepted(std::move(state));
}
// InterfaceFactory<test::mojom::BlockedInterface>:
@@ -116,17 +128,19 @@ class ProvidedService
void ConnectToClassAppAsDifferentUser(
const service_manager::Identity& target,
const ConnectToClassAppAsDifferentUserCallback& callback) override {
- std::unique_ptr<Connection> connection =
- context()->connector()->Connect(target);
+ context()->connector()->StartService(target);
+ mojom::ConnectResult result;
+ Identity resolved_identity;
{
base::RunLoop loop;
- connection->AddConnectionCompletedClosure(loop.QuitClosure());
+ Connector::TestApi test_api(context()->connector());
+ test_api.SetStartServiceCallback(
+ base::Bind(&QuitLoop, &loop, &result, &resolved_identity));
base::MessageLoop::ScopedNestableTaskAllower allow(
base::MessageLoop::current());
loop.Run();
}
- callback.Run(static_cast<int32_t>(connection->GetResult()),
- connection->GetRemoteIdentity());
+ callback.Run(static_cast<int32_t>(result), resolved_identity);
}
// base::SimpleThread:
@@ -147,6 +161,7 @@ class ProvidedService
const std::string title_;
mojom::ServiceRequest request_;
test::mojom::ExposedInterfacePtr caller_;
+ BinderRegistry registry_;
mojo::BindingSet<test::mojom::ConnectTestService> bindings_;
mojo::BindingSet<test::mojom::BlockedInterface> blocked_bindings_;
mojo::BindingSet<test::mojom::UserIdTest> user_id_test_bindings_;
@@ -172,13 +187,14 @@ class ConnectTestService
base::Unretained(this));
bindings_.set_connection_error_handler(error_handler);
service_factory_bindings_.set_connection_error_handler(error_handler);
+ registry_.AddInterface<ServiceFactory>(this);
+ registry_.AddInterface<test::mojom::ConnectTestService>(this);
}
-
- bool OnConnect(const ServiceInfo& remote_info,
- InterfaceRegistry* registry) override {
- registry->AddInterface<ServiceFactory>(this);
- registry->AddInterface<test::mojom::ConnectTestService>(this);
- return true;
+ void OnBindInterface(const ServiceInfo& source_info,
+ const std::string& interface_name,
+ mojo::ScopedMessagePipeHandle interface_pipe) override {
+ registry_.BindInterface(source_info.identity, interface_name,
+ std::move(interface_pipe));
}
bool OnServiceManagerConnectionLost() override {
@@ -226,6 +242,7 @@ class ConnectTestService
std::vector<std::unique_ptr<Service>> delegates_;
mojo::BindingSet<mojom::ServiceFactory> service_factory_bindings_;
+ BinderRegistry registry_;
mojo::BindingSet<test::mojom::ConnectTestService> bindings_;
std::list<std::unique_ptr<ProvidedService>> provided_services_;

Powered by Google App Engine
This is Rietveld 408576698