Chromium Code Reviews| Index: extensions/browser/service_registration_manager.cc |
| diff --git a/extensions/browser/service_registration_manager.cc b/extensions/browser/service_registration_manager.cc |
| index 00129a11206a8d9db603062c37cb161854e768d1..992f2627a105b32a04177064e7fc395b80f0c3db 100644 |
| --- a/extensions/browser/service_registration_manager.cc |
| +++ b/extensions/browser/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,27 @@ void ServiceRegistrationManager::AddServicesToRenderFrame( |
| if (ExtensionAPI::GetSharedInstance() |
| ->IsAvailable(factory.first, extension, context_type, extension_url) |
| .is_available()) { |
| - factory.second->Register(render_frame_host->GetServiceRegistry()); |
| + 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; |
| +} |
| + |
| +// static |
| +void ServiceRegistrationManager::ClearServiceRegistrationManagerForTest() { |
|
raymes
2014/10/24 00:09:30
nit: this isn't really needed right, you could jus
Sam McNally
2014/10/24 03:55:56
Done.
|
| + g_test_instance = nullptr; |
| +} |
| + |
| } // namespace extensions |