Chromium Code Reviews| Index: mojo/shell/public/cpp/shell_connection.h |
| diff --git a/mojo/shell/public/cpp/shell_connection.h b/mojo/shell/public/cpp/shell_connection.h |
| index e0b1eb1051c9444844aadf7639fe8ca68bcaa34a..216ff932d87097cb1ee8fcc25ab03b4542ae3400 100644 |
| --- a/mojo/shell/public/cpp/shell_connection.h |
| +++ b/mojo/shell/public/cpp/shell_connection.h |
| @@ -10,7 +10,6 @@ |
| #include "base/macros.h" |
| #include "base/memory/scoped_vector.h" |
| -#include "base/memory/weak_ptr.h" |
| #include "mojo/public/cpp/bindings/binding.h" |
| #include "mojo/public/cpp/bindings/callback.h" |
| #include "mojo/public/cpp/system/core.h" |
| @@ -44,23 +43,34 @@ class Connector; |
| // |
| class ShellConnection : public shell::mojom::ShellClient { |
| public: |
| - // Does not take ownership of |delegate|, which must remain valid for the |
| + // Creates a new ShellConnection to eventually be bound to a |
| + // ShellClientRequest (see BindToRequest()). This connection may be used |
| + // immediately to begin making outgoing connections via connector(). |
| + // |
| + // Does not take ownership of |client|, which must remain valid for the |
| // lifetime of ShellConnection. |
| + explicit ShellConnection(mojo::ShellClient* client); |
| + |
| + // Like above but binds to |request| upon construction. |
| ShellConnection(mojo::ShellClient* client, |
| - InterfaceRequest<shell::mojom::ShellClient> request); |
| - ~ShellConnection() override; |
| + shell::mojom::ShellClientRequest request); |
| - // Block the calling thread until the Initialize() method is called by the |
| - // shell. |
| - void WaitForInitialize(); |
| + ~ShellConnection() override; |
| Connector* connector() { return connector_.get(); } |
| + // Binds this ShellConnection to a client request if one was not available at |
| + // construction time. |
| + void BindToRequest(shell::mojom::ShellClientRequest request); |
| + |
| + // TODO(rockot): Remove this once we get rid of app tests. |
|
Ben Goodger (Google)
2016/03/13 04:16:24
I sent a note to chromium-mojo deprecating apptest
Ken Rockot(use gerrit already)
2016/03/13 16:14:25
Cool, I was going to try to do some conversions to
|
| + void SetAppTestConnectorForTesting(shell::mojom::ConnectorPtr connector); |
| + |
| private: |
| // shell::mojom::ShellClient: |
| - void Initialize(shell::mojom::ConnectorPtr connector, |
| - shell::mojom::IdentityPtr identity, |
| - uint32_t id) override; |
| + void Initialize(shell::mojom::IdentityPtr identity, |
| + uint32_t id, |
| + const InitializeCallback& callback) override; |
| void AcceptConnection( |
| shell::mojom::IdentityPtr source, |
| uint32_t source_id, |
| @@ -74,10 +84,13 @@ class ShellConnection : public shell::mojom::ShellClient { |
| // We track the lifetime of incoming connection registries as it more |
| // convenient for the client. |
| ScopedVector<Connection> incoming_connections_; |
| + |
| + // A pending Connector request which will eventually be passed to the shell. |
| + shell::mojom::ConnectorRequest pending_connector_request_; |
| + |
| mojo::ShellClient* client_; |
| Binding<shell::mojom::ShellClient> binding_; |
| scoped_ptr<Connector> connector_; |
| - base::WeakPtrFactory<ShellConnection> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(ShellConnection); |
| }; |