Chromium Code Reviews| Index: chrome/browser/custom_handlers/protocol_handler_registry_factory.cc |
| diff --git a/chrome/browser/custom_handlers/protocol_handler_registry_factory.cc b/chrome/browser/custom_handlers/protocol_handler_registry_factory.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8e69e0f53e79633d890f02e12fe199eed6a037bb |
| --- /dev/null |
| +++ b/chrome/browser/custom_handlers/protocol_handler_registry_factory.cc |
| @@ -0,0 +1,62 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/custom_handlers/protocol_handler_registry_factory.h" |
| + |
| +#include "base/memory/singleton.h" |
| +#include "chrome/browser/custom_handlers/protocol_handler_registry.h" |
| +#include "chrome/browser/extensions/extension_system_factory.h" |
| +#include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/profiles/profile_dependency_manager.h" |
| + |
| +// static |
| +ProtocolHandlerRegistryFactory* ProtocolHandlerRegistryFactory::GetInstance() { |
| + return Singleton<ProtocolHandlerRegistryFactory>::get(); |
| +} |
| + |
| +// static |
| +ProtocolHandlerRegistry* ProtocolHandlerRegistryFactory::GetForProfile( |
| + Profile* profile) { |
| + |
|
Elliot Glaysher
2012/06/22 17:32:48
Please don't do this. One line of whitespace betwe
Steve McKay
2012/06/22 18:01:58
Done.
|
| + return static_cast<ProtocolHandlerRegistry*>( |
| + GetInstance()->GetServiceForProfile(profile, true)); |
| +} |
| + |
| +ProtocolHandlerRegistryFactory::ProtocolHandlerRegistryFactory() |
| + : ProfileKeyedServiceFactory("ProtocolHandlerRegistry", |
| + ProfileDependencyManager::GetInstance()) { |
| +} |
| + |
| +ProtocolHandlerRegistryFactory::~ProtocolHandlerRegistryFactory() { |
| +} |
| + |
| +// Will be created when initializing profile_io_data, so we might |
| +// as well have the framework create this along with other |
| +// PKSs to preserve orderly civic conduct :) |
| +bool ProtocolHandlerRegistryFactory::ServiceIsCreatedWithProfile() { |
| + return true; |
| +} |
| + |
| +// Allows the produced registry to be used in incognito mode. |
| +bool ProtocolHandlerRegistryFactory::ServiceRedirectedInIncognito() { |
| + return true; |
| +} |
| + |
| +// Do not create this service for tests. MANY tests will fail |
| +// due to the threading requirements of this service. ALSO, |
| +// not creating this increases test isolation (which is GOOD!) |
| +bool ProtocolHandlerRegistryFactory::ServiceIsNULLWhileTesting() { |
| + return true; |
| +} |
| + |
| +ProfileKeyedService* ProtocolHandlerRegistryFactory::BuildServiceInstanceFor( |
| + Profile* profile) const { |
| + |
|
Elliot Glaysher
2012/06/22 17:32:48
-whitespace
Steve McKay
2012/06/22 18:01:58
Done.
|
| + ProtocolHandlerRegistry* registry = new ProtocolHandlerRegistry( |
| + profile, new ProtocolHandlerRegistry::Delegate()); |
| + |
| + registry->InitProtocolSettings(); |
| + |
| + return registry; |
| +} |