1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/extensions/extension_garbage_collector_factory.h" 6 7#include "base/memory/singleton.h" 8#include "chrome/browser/extensions/extension_garbage_collector.h" 9#include "chrome/browser/extensions/extension_system_factory.h" 10#include "chrome/browser/extensions/install_tracker_factory.h" 11#include "components/keyed_service/content/browser_context_dependency_manager.h" 12#include "extensions/browser/extensions_browser_client.h" 13 14#if defined(OS_CHROMEOS) 15#include "chrome/browser/extensions/extension_garbage_collector_chromeos.h" 16#endif 17 18namespace extensions { 19 20// static 21ExtensionGarbageCollector* 22ExtensionGarbageCollectorFactory::GetForBrowserContext( 23 content::BrowserContext* context) { 24 return static_cast<ExtensionGarbageCollector*>( 25 GetInstance()->GetServiceForBrowserContext(context, true)); 26} 27 28// static 29ExtensionGarbageCollectorFactory* 30ExtensionGarbageCollectorFactory::GetInstance() { 31 return Singleton<ExtensionGarbageCollectorFactory>::get(); 32} 33 34ExtensionGarbageCollectorFactory::ExtensionGarbageCollectorFactory() 35 : BrowserContextKeyedServiceFactory( 36 "ExtensionGarbageCollector", 37 BrowserContextDependencyManager::GetInstance()) { 38 DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); 39 DependsOn(InstallTrackerFactory::GetInstance()); 40} 41 42ExtensionGarbageCollectorFactory::~ExtensionGarbageCollectorFactory() {} 43 44// static 45KeyedService* ExtensionGarbageCollectorFactory::BuildInstanceFor( 46 content::BrowserContext* context) { 47#if defined(OS_CHROMEOS) 48 return new ExtensionGarbageCollectorChromeOS(context); 49#else 50 return new ExtensionGarbageCollector(context); 51#endif 52} 53 54KeyedService* ExtensionGarbageCollectorFactory::BuildServiceInstanceFor( 55 content::BrowserContext* context) const { 56 return BuildInstanceFor(context); 57} 58 59bool ExtensionGarbageCollectorFactory::ServiceIsCreatedWithBrowserContext() 60 const { 61 return true; 62} 63 64bool ExtensionGarbageCollectorFactory::ServiceIsNULLWhileTesting() const { 65 return true; 66} 67 68} // namespace extensions 69