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

Unified Diff: services/service_manager/tests/service_manager/embedder.cc

Issue 2476063002: Service Manager: Rework Service and ServiceContext lifetime (Closed)
Patch Set: . Created 4 years, 1 month 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/service_manager/embedder.cc
diff --git a/services/service_manager/tests/service_manager/embedder.cc b/services/service_manager/tests/service_manager/embedder.cc
index dff3fa8f5cc903f54d2776d252ef2c4e0a0b2f16..5c85f81c18bd5f48f2f182f307a0f6af35bc5723 100644
--- a/services/service_manager/tests/service_manager/embedder.cc
+++ b/services/service_manager/tests/service_manager/embedder.cc
@@ -7,9 +7,11 @@
#include "base/at_exit.h"
#include "base/command_line.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
#include "mojo/public/cpp/bindings/binding_set.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/interfaces/service_factory.mojom.h"
@@ -21,15 +23,15 @@ namespace {
class Singleton : public service_manager::Service {
public:
- explicit Singleton(service_manager::mojom::ServiceRequest request) {
- set_context(base::MakeUnique<service_manager::ServiceContext>(
- this, std::move(request)));
- }
+ explicit Singleton() {}
~Singleton() override {}
private:
// service_manager::Service:
- void OnStart(const service_manager::ServiceInfo& info) override {}
+ bool OnConnect(const service_manager::ServiceInfo& remote_info,
+ service_manager::InterfaceRegistry* registry) override {
+ return false;
+ }
DISALLOW_COPY_AND_ASSIGN(Singleton);
};
@@ -44,8 +46,6 @@ class Embedder : public service_manager::Service,
private:
// service_manager::Service:
- void OnStart(const service_manager::ServiceInfo& info) override {}
-
bool OnConnect(const service_manager::ServiceInfo& remote_info,
service_manager::InterfaceRegistry* registry) override {
registry->AddInterface<service_manager::mojom::ServiceFactory>(this);
@@ -66,10 +66,13 @@ class Embedder : public service_manager::Service,
// mojom::ServiceFactory:
void CreateService(service_manager::mojom::ServiceRequest request,
const std::string& name) override {
- if (name == "service:service_manager_unittest_singleton")
- new Singleton(std::move(request));
+ if (name == "service:service_manager_unittest_singleton") {
+ context_.reset(new service_manager::ServiceContext(
+ base::MakeUnique<Singleton>(), std::move(request)));
+ }
}
+ std::unique_ptr<service_manager::ServiceContext> context_;
mojo::BindingSet<service_manager::mojom::ServiceFactory>
service_factory_bindings_;
@@ -83,7 +86,5 @@ int main(int argc, char** argv) {
base::CommandLine::Init(argc, argv);
service_manager::InitializeLogging();
-
- Embedder embedder;
- return service_manager::TestNativeMain(&embedder);
+ return service_manager::TestNativeMain(base::MakeUnique<Embedder>());
}

Powered by Google App Engine
This is Rietveld 408576698