Index: extensions/browser/service_registration_manager.cc |
diff --git a/extensions/browser/service_registration_manager.cc b/extensions/browser/service_registration_manager.cc |
index 1a727bf73a3b943b241fbe423261d267ce0905b2..49acf45b4bd9598587d29e820d4d819922aa9466 100644 |
--- a/extensions/browser/service_registration_manager.cc |
+++ b/extensions/browser/service_registration_manager.cc |
@@ -45,6 +45,10 @@ ServiceRegistrationManager* ServiceRegistrationManager::GetSharedInstance() { |
return g_lazy_instance.Pointer(); |
} |
+void ServiceRegistrationManager::ClearOverridesForTest() { |
+ test_factories_.clear(); |
+} |
+ |
void ServiceRegistrationManager::AddToRenderFrame( |
content::RenderFrameHost* render_frame_host) { |
content::BrowserContext* context = |
@@ -75,7 +79,12 @@ void ServiceRegistrationManager::AddToRenderFrame( |
if (ExtensionAPI::GetSharedInstance() |
->IsAvailable(factory.first, extension, context_type, site_url) |
.is_available()) { |
- factory.second->Register(render_frame_host->GetServiceRegistry()); |
+ auto test_factory = test_factories_.find(factory.second->GetName()); |
+ if (test_factory != test_factories_.end()) { |
+ test_factory->second->Register(render_frame_host->GetServiceRegistry()); |
+ } else { |
+ factory.second->Register(render_frame_host->GetServiceRegistry()); |
+ } |
} |
} |
} |