| Index: extensions/browser/service_registration_manager.h
|
| diff --git a/extensions/browser/service_registration_manager.h b/extensions/browser/service_registration_manager.h
|
| index aab91e7aaf58c85da1d55cc0918eafc6352cf7f3..ad0d974b14051e040fdd738b701ab85ac6feb5ab 100644
|
| --- a/extensions/browser/service_registration_manager.h
|
| +++ b/extensions/browser/service_registration_manager.h
|
| @@ -19,6 +19,9 @@ class RenderFrameHost;
|
| }
|
|
|
| namespace extensions {
|
| +
|
| +class ServiceRegistrationManagerTestApi;
|
| +
|
| namespace internal {
|
|
|
| // A base class for forwarding calls to ServiceRegistry::AddService().
|
| @@ -28,6 +31,8 @@ class ServiceFactoryBase {
|
|
|
| // Add this service factory to |service_registry|.
|
| virtual void Register(content::ServiceRegistry* service_registry) const = 0;
|
| +
|
| + virtual std::string GetName() const = 0;
|
| };
|
|
|
| template <typename Interface>
|
| @@ -43,6 +48,8 @@ class ServiceFactory : public ServiceFactoryBase {
|
| service_registry->AddService(factory_);
|
| }
|
|
|
| + virtual std::string GetName() const override { return Interface::Name_; }
|
| +
|
| private:
|
| const base::Callback<void(mojo::InterfaceRequest<Interface>)> factory_;
|
| DISALLOW_COPY_AND_ASSIGN(ServiceFactory);
|
| @@ -82,7 +89,18 @@ class ServiceRegistrationManager {
|
| // ServiceRegistry.
|
| void AddServicesToRenderFrame(content::RenderFrameHost* render_frame_host);
|
|
|
| + protected:
|
| + virtual void AddServiceToServiceRegistry(
|
| + content::ServiceRegistry* service_registry,
|
| + internal::ServiceFactoryBase* service_factory);
|
| +
|
| private:
|
| + friend class ServiceRegistrationManagerTestApi;
|
| +
|
| + static void SetServiceRegistrationManagerForTest(
|
| + ServiceRegistrationManager* service_registration_manager);
|
| + static void ClearServiceRegistrationManagerForTest();
|
| +
|
| // All factories and their corresponding API permissions.
|
| std::vector<std::pair<std::string, linked_ptr<internal::ServiceFactoryBase>>>
|
| factories_;
|
|
|