| Index: trunk/src/content/browser/mojo/mojo_application_host.h
|
| ===================================================================
|
| --- trunk/src/content/browser/mojo/mojo_application_host.h (revision 279559)
|
| +++ trunk/src/content/browser/mojo/mojo_application_host.h (working copy)
|
| @@ -6,9 +6,9 @@
|
| #define CONTENT_BROWSER_MOJO_MOJO_APPLICATION_HOST_H_
|
|
|
| #include "base/process/process_handle.h"
|
| -#include "content/common/mojo/service_registry_impl.h"
|
| #include "mojo/embedder/channel_init.h"
|
| #include "mojo/embedder/scoped_platform_handle.h"
|
| +#include "mojo/public/interfaces/service_provider/service_provider.mojom.h"
|
|
|
| namespace IPC {
|
| class Sender;
|
| @@ -19,31 +19,49 @@
|
| // MojoApplicationHost represents the code needed on the browser side to setup
|
| // a child process as a Mojo application via Chrome IPC. The child process
|
| // should use MojoApplication to handle messages generated by an instance of
|
| -// MojoApplicationHost. MojoApplicationHost makes the ServiceRegistry interface
|
| -// available so that child-provided services can be invoked.
|
| +// MojoApplicationHost. MojoApplicationHost makes the mojo::ShellClient
|
| +// interface available so that child-provided services can be invoked.
|
| class MojoApplicationHost {
|
| public:
|
| MojoApplicationHost();
|
| virtual ~MojoApplicationHost();
|
|
|
| // Two-phase initialization:
|
| - // 1- Init makes service_registry() available synchronously.
|
| + // 1- Init makes the shell_client() available synchronously.
|
| // 2- Activate establishes the actual connection to the peer process.
|
| bool Init();
|
| bool Activate(IPC::Sender* sender, base::ProcessHandle process_handle);
|
|
|
| bool did_activate() const { return did_activate_; }
|
|
|
| - ServiceRegistry* service_registry() { return &service_registry_; }
|
| + mojo::ServiceProvider* service_provider() {
|
| + DCHECK(child_service_provider_.get());
|
| + return child_service_provider_->client();
|
| + }
|
|
|
| private:
|
| + class ServiceProviderImpl
|
| + : public mojo::InterfaceImpl<mojo::ServiceProvider> {
|
| + public:
|
| + virtual void OnConnectionError() OVERRIDE {
|
| + // TODO(darin): How should we handle this error?
|
| + }
|
| +
|
| + // mojo::ServiceProvider methods:
|
| + virtual void ConnectToService(
|
| + const mojo::String& service_url,
|
| + const mojo::String& service_name,
|
| + mojo::ScopedMessagePipeHandle handle,
|
| + const mojo::String& requestor_url) OVERRIDE;
|
| + };
|
| +
|
| mojo::embedder::ChannelInit channel_init_;
|
| mojo::embedder::ScopedPlatformHandle client_handle_;
|
|
|
| + scoped_ptr<ServiceProviderImpl> child_service_provider_;
|
| +
|
| bool did_activate_;
|
|
|
| - ServiceRegistryImpl service_registry_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(MojoApplicationHost);
|
| };
|
|
|
|
|