| Index: mojo/application/public/cpp/lib/service_registry.h
|
| diff --git a/mojo/application/public/cpp/lib/service_registry.h b/mojo/application/public/cpp/lib/service_registry.h
|
| index 8cb1d1b411c7e1aa092a9b604c82f726f9dbf737..c3610bf6de85157ef371dd68eb7574b773332f68 100644
|
| --- a/mojo/application/public/cpp/lib/service_registry.h
|
| +++ b/mojo/application/public/cpp/lib/service_registry.h
|
| @@ -11,6 +11,7 @@
|
| #include "mojo/application/public/cpp/application_connection.h"
|
| #include "mojo/application/public/cpp/lib/service_connector_registry.h"
|
| #include "mojo/application/public/interfaces/service_provider.mojom.h"
|
| +#include "mojo/application/public/interfaces/shell.mojom.h"
|
| #include "mojo/public/cpp/bindings/binding.h"
|
|
|
| namespace mojo {
|
| @@ -32,6 +33,8 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection {
|
| const std::set<std::string>& allowed_interfaces);
|
| ~ServiceRegistry() override;
|
|
|
| + Shell::ConnectToApplicationCallback GetConnectToApplicationCallback();
|
| +
|
| // ApplicationConnection overrides.
|
| void SetServiceConnector(ServiceConnector* service_connector) override;
|
| bool SetServiceConnectorForName(ServiceConnector* service_connector,
|
| @@ -42,11 +45,15 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection {
|
| ServiceProvider* GetLocalServiceProvider() override;
|
| void SetRemoteServiceProviderConnectionErrorHandler(
|
| const Closure& handler) override;
|
| + bool GetContentHandlerID(uint32_t* target_id) override;
|
| + void AddContentHandlerIDCallback(const Closure& callback) override;
|
| base::WeakPtr<ApplicationConnection> GetWeakPtr() override;
|
|
|
| void RemoveServiceConnectorForName(const std::string& interface_name);
|
|
|
| private:
|
| + void OnGotContentHandlerID(uint32_t content_handler_id);
|
| +
|
| // ServiceProvider method.
|
| void ConnectToService(const mojo::String& service_name,
|
| ScopedMessagePipeHandle client_handle) override;
|
| @@ -58,7 +65,12 @@ class ServiceRegistry : public ServiceProvider, public ApplicationConnection {
|
| ServiceConnectorRegistry service_connector_registry_;
|
| const std::set<std::string> allowed_interfaces_;
|
| const bool allow_all_interfaces_;
|
| - base::WeakPtrFactory<ApplicationConnection> weak_factory_;
|
| + // The id of the content_handler is only available once the callback from
|
| + // establishing the connection is made.
|
| + uint32_t content_handler_id_;
|
| + bool is_content_handler_id_valid_;
|
| + std::vector<Closure> content_handler_id_callbacks_;
|
| + base::WeakPtrFactory<ServiceRegistry> weak_factory_;
|
|
|
| MOJO_DISALLOW_COPY_AND_ASSIGN(ServiceRegistry);
|
| };
|
|
|