| Index: content/common/mojo/mojo_shell_connection_impl.h
|
| diff --git a/content/common/mojo/mojo_shell_connection_impl.h b/content/common/mojo/mojo_shell_connection_impl.h
|
| index b20cd0ad4cb67e410ac21fa20f9b93872646b7ec..813a2254a12e6d6b47d9ee27e1c12dbcce517b70 100644
|
| --- a/content/common/mojo/mojo_shell_connection_impl.h
|
| +++ b/content/common/mojo/mojo_shell_connection_impl.h
|
| @@ -6,69 +6,63 @@
|
| #define CONTENT_COMMON_MOJO_SHELL_CONNECTION_IMPL_H_
|
|
|
| #include <memory>
|
| -#include <vector>
|
|
|
| #include "base/macros.h"
|
| +#include "base/memory/ref_counted.h"
|
| +#include "base/memory/weak_ptr.h"
|
| +#include "base/sequenced_task_runner.h"
|
| #include "content/public/common/mojo_shell_connection.h"
|
| -#include "mojo/public/cpp/bindings/binding_set.h"
|
| -#include "mojo/public/cpp/system/message_pipe.h"
|
| -#include "services/shell/public/cpp/shell_client.h"
|
| -#include "services/shell/public/cpp/shell_connection.h"
|
| -#include "services/shell/public/interfaces/shell_client_factory.mojom.h"
|
| +#include "services/shell/public/cpp/identity.h"
|
| +
|
| +namespace shell {
|
| +class Connector;
|
| +}
|
|
|
| namespace content {
|
|
|
| class EmbeddedApplicationRunner;
|
|
|
| -class MojoShellConnectionImpl
|
| - : public MojoShellConnection,
|
| - public shell::ShellClient,
|
| - public shell::InterfaceFactory<shell::mojom::ShellClientFactory>,
|
| - public shell::mojom::ShellClientFactory {
|
| -
|
| +class MojoShellConnectionImpl : public MojoShellConnection {
|
| public:
|
| - explicit MojoShellConnectionImpl(shell::mojom::ShellClientRequest request);
|
| + explicit MojoShellConnectionImpl(
|
| + shell::mojom::ShellClientRequest request,
|
| + scoped_refptr<base::SequencedTaskRunner> iotask_runner);
|
| ~MojoShellConnectionImpl() override;
|
|
|
| private:
|
| + class IOThreadContext;
|
| +
|
| // MojoShellConnection:
|
| - shell::ShellConnection* GetShellConnection() override;
|
| + void SetInitializeHandler(const base::Closure& handler) override;
|
| shell::Connector* GetConnector() override;
|
| const shell::Identity& GetIdentity() const override;
|
| void SetConnectionLostClosure(const base::Closure& closure) override;
|
| - void AddEmbeddedShellClient(
|
| - std::unique_ptr<shell::ShellClient> shell_client) override;
|
| - void AddEmbeddedShellClient(shell::ShellClient* shell_client) override;
|
| + void AddConnectionFilter(const ConnectionFilter& filter) override;
|
| void AddEmbeddedService(const std::string& name,
|
| const MojoApplicationInfo& info) override;
|
| void AddShellClientRequestHandler(
|
| const std::string& name,
|
| const ShellClientRequestHandler& handler) override;
|
|
|
| - // shell::ShellClient:
|
| - void Initialize(shell::Connector* connector,
|
| - const shell::Identity& identity,
|
| - uint32_t id) override;
|
| - bool AcceptConnection(shell::Connection* connection) override;
|
| - shell::InterfaceRegistry* GetInterfaceRegistryForConnection() override;
|
| - shell::InterfaceProvider* GetInterfaceProviderForConnection() override;
|
| + void OnContextInitialized();
|
| + void OnConnectionLost();
|
| + void CreateShellClient(shell::mojom::ShellClientRequest request,
|
| + const mojo::String& name);
|
|
|
| - // shell::InterfaceFactory<shell::mojom::ShellClientFactory>:
|
| - void Create(shell::Connection* connection,
|
| - shell::mojom::ShellClientFactoryRequest request) override;
|
| + shell::Identity identity_;
|
|
|
| - // shell::mojom::ShellClientFactory:
|
| - void CreateShellClient(shell::mojom::ShellClientRequest request,
|
| - const mojo::String& name) override;
|
| + std::unique_ptr<shell::Connector> connector_;
|
| + scoped_refptr<IOThreadContext> context_;
|
| +
|
| + base::Closure initialize_handler_;
|
| + base::Closure connection_lost_handler_;
|
|
|
| - std::unique_ptr<shell::ShellConnection> shell_connection_;
|
| - mojo::BindingSet<shell::mojom::ShellClientFactory> factory_bindings_;
|
| - std::vector<shell::ShellClient*> embedded_shell_clients_;
|
| - std::vector<std::unique_ptr<shell::ShellClient>> owned_shell_clients_;
|
| std::unordered_map<std::string, std::unique_ptr<EmbeddedApplicationRunner>>
|
| embedded_apps_;
|
| std::unordered_map<std::string, ShellClientRequestHandler> request_handlers_;
|
|
|
| + base::WeakPtrFactory<MojoShellConnectionImpl> weak_factory_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(MojoShellConnectionImpl);
|
| };
|
|
|
|
|