Index: services/shell/public/cpp/service_context.h |
diff --git a/services/shell/public/cpp/service_context.h b/services/shell/public/cpp/service_context.h |
index 2cad39513e0d6939289e4c4b85ad1556834b3812..504efd0fe966a96ac739ddd08ac7d3cda7c9d69e 100644 |
--- a/services/shell/public/cpp/service_context.h |
+++ b/services/shell/public/cpp/service_context.h |
@@ -11,17 +11,15 @@ |
#include "base/callback.h" |
#include "base/macros.h" |
-#include "base/memory/scoped_vector.h" |
#include "mojo/public/cpp/bindings/binding.h" |
#include "mojo/public/cpp/system/core.h" |
+#include "services/shell/public/cpp/connector.h" |
#include "services/shell/public/cpp/service.h" |
#include "services/shell/public/interfaces/connector.mojom.h" |
#include "services/shell/public/interfaces/service.mojom.h" |
namespace shell { |
-class Connector; |
- |
// Encapsulates a connection to the Service Manager in two parts: |
// - a bound InterfacePtr to mojom::Connector, the primary mechanism |
// by which the instantiating service connects to other services, |
@@ -45,22 +43,20 @@ class ServiceContext : public mojom::Service { |
public: |
// Creates a new ServiceContext bound to |request|. This connection may be |
// used immediately to make outgoing connections via connector(). Does not |
- // take ownership of |client|, which must remain valid for the lifetime of |
- // ServiceContext. |
- ServiceContext(shell::Service* client, |
- mojom::ServiceRequest request); |
+ // take ownership of |service|, which must remain valid for the lifetime of |
+ // ServiceContext. If either |connector| or |connector_request| is non-null |
+ // both must be non-null. If both are null, the connection will create its own |
+ // Connector and request to pass to the Service Manager on initialization. |
+ ServiceContext(shell::Service* service, |
+ mojom::ServiceRequest request, |
+ std::unique_ptr<Connector> connector = nullptr, |
+ mojom::ConnectorRequest connector_request = nullptr); |
~ServiceContext() override; |
Connector* connector() { return connector_.get(); } |
const Identity& identity() { return identity_; } |
- // TODO(rockot): Remove this. http://crbug.com/594852. |
- void set_initialize_handler(const base::Closure& callback); |
- |
- // TODO(rockot): Remove this once we get rid of app tests. |
- void SetAppTestConnectorForTesting(mojom::ConnectorPtr connector); |
- |
// Specify a function to be called when the connection to the shell is lost. |
// Note that if connection has already been lost, then |closure| is called |
// immediately. |
@@ -85,13 +81,13 @@ class ServiceContext : public mojom::Service { |
// We track the lifetime of incoming connection registries as it more |
// convenient for the client. |
- ScopedVector<Connection> incoming_connections_; |
+ std::vector<std::unique_ptr<Connection>> incoming_connections_; |
// A pending Connector request which will eventually be passed to the Service |
// Manager. |
mojom::ConnectorRequest pending_connector_request_; |
- shell::Service* client_; |
+ shell::Service* service_; |
mojo::Binding<mojom::Service> binding_; |
std::unique_ptr<Connector> connector_; |
shell::Identity identity_; |