| Index: extensions/browser/mojo/service_registration_manager.cc
|
| diff --git a/extensions/browser/mojo/service_registration_manager.cc b/extensions/browser/mojo/service_registration_manager.cc
|
| index 97f3698db4cb5fbe974c85be2e927f828bbc3adf..ee3e55a5fd50742bc9e6df52658f400fc6b45bc9 100644
|
| --- a/extensions/browser/mojo/service_registration_manager.cc
|
| +++ b/extensions/browser/mojo/service_registration_manager.cc
|
| @@ -23,6 +23,8 @@ namespace {
|
| base::LazyInstance<ServiceRegistrationManager> g_lazy_instance =
|
| LAZY_INSTANCE_INITIALIZER;
|
|
|
| +ServiceRegistrationManager* g_test_instance = nullptr;
|
| +
|
| } // namespace
|
|
|
| ServiceRegistrationManager::ServiceRegistrationManager() {
|
| @@ -44,6 +46,8 @@ ServiceRegistrationManager::~ServiceRegistrationManager() {
|
| }
|
|
|
| ServiceRegistrationManager* ServiceRegistrationManager::GetSharedInstance() {
|
| + if (g_test_instance)
|
| + return g_test_instance;
|
| return g_lazy_instance.Pointer();
|
| }
|
|
|
| @@ -72,9 +76,23 @@ void ServiceRegistrationManager::AddServicesToRenderFrame(
|
| for (const auto& factory : factories_) {
|
| auto availability = ExtensionAPI::GetSharedInstance()->IsAvailable(
|
| factory.first, extension, context_type, extension_url);
|
| - if (availability.is_available())
|
| - factory.second->Register(render_frame_host->GetServiceRegistry());
|
| + if (availability.is_available()) {
|
| + AddServiceToServiceRegistry(render_frame_host->GetServiceRegistry(),
|
| + factory.second.get());
|
| + }
|
| }
|
| }
|
|
|
| +void ServiceRegistrationManager::AddServiceToServiceRegistry(
|
| + content::ServiceRegistry* service_registry,
|
| + internal::ServiceFactoryBase* factory) {
|
| + factory->Register(service_registry);
|
| +}
|
| +
|
| +// static
|
| +void ServiceRegistrationManager::SetServiceRegistrationManagerForTest(
|
| + ServiceRegistrationManager* service_registration_manager) {
|
| + g_test_instance = service_registration_manager;
|
| +}
|
| +
|
| } // namespace extensions
|
|
|