| Index: mojo/public/shell/service.h
|
| diff --git a/mojo/public/shell/service.h b/mojo/public/shell/service.h
|
| index 1a68353a165fa6c7a1de312da387f1ef220539e9..bd3b0af847ff65a2e960b67ff5f6c98bb672b4e4 100644
|
| --- a/mojo/public/shell/service.h
|
| +++ b/mojo/public/shell/service.h
|
| @@ -63,9 +63,11 @@ namespace mojo {
|
| namespace internal {
|
| class ServiceFactoryBase {
|
| public:
|
| - class Owner {
|
| + class Owner : public ShellClient {
|
| public:
|
| - virtual Shell* GetShell() = 0;
|
| + Owner(ScopedShellHandle shell_handle);
|
| + ~Owner();
|
| + Shell* shell() { return shell_.get(); }
|
| virtual void AddServiceFactory(
|
| internal::ServiceFactoryBase* service_factory) = 0;
|
| virtual void RemoveServiceFactory(
|
| @@ -76,10 +78,11 @@ class ServiceFactoryBase {
|
| Owner* owner) {
|
| service_factory->owner_ = owner;
|
| }
|
| + RemotePtr<Shell> shell_;
|
| };
|
| ServiceFactoryBase() : owner_(NULL) {}
|
| virtual ~ServiceFactoryBase();
|
| - Shell* GetShell() { return owner_->GetShell(); }
|
| + Shell* shell() { return owner_->shell(); }
|
| virtual void AcceptConnection(const std::string& url,
|
| ScopedMessagePipeHandle client_handle) = 0;
|
|
|
| @@ -152,6 +155,7 @@ class Service : public ServiceInterface {
|
| &reaper_);
|
| }
|
|
|
| + Shell* shell() { return service_factory_->shell(); }
|
| Context* context() const { return service_factory_->context(); }
|
| typename ServiceInterface::_Peer* client() { return client_.get(); }
|
|
|
|
|