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 |