1 // Copyright 2013 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/chromeos/file_manager/volume_manager_factory.h" 6 7 #include "base/basictypes.h" 8 #include "base/memory/singleton.h" 9 #include "chrome/browser/chromeos/drive/drive_integration_service.h" 10 #include "chrome/browser/chromeos/file_manager/volume_manager.h" 11 #include "chrome/browser/chromeos/file_system_provider/service_factory.h" 12 #include "chrome/browser/profiles/incognito_helpers.h" 13 #include "chrome/browser/profiles/profile.h" 14 #include "chromeos/dbus/dbus_thread_manager.h" 15 #include "chromeos/disks/disk_mount_manager.h" 16 #include "components/keyed_service/content/browser_context_dependency_manager.h" 17 18 namespace file_manager { 19 Get(content::BrowserContext * context)20VolumeManager* VolumeManagerFactory::Get(content::BrowserContext* context) { 21 return static_cast<VolumeManager*>( 22 GetInstance()->GetServiceForBrowserContext(context, true)); 23 } 24 GetInstance()25VolumeManagerFactory* VolumeManagerFactory::GetInstance() { 26 return Singleton<VolumeManagerFactory>::get(); 27 } 28 GetBrowserContextToUse(content::BrowserContext * context) const29content::BrowserContext* VolumeManagerFactory::GetBrowserContextToUse( 30 content::BrowserContext* context) const { 31 // Explicitly allow this manager in guest login mode. 32 return chrome::GetBrowserContextOwnInstanceInIncognito(context); 33 } 34 ServiceIsCreatedWithBrowserContext() const35bool VolumeManagerFactory::ServiceIsCreatedWithBrowserContext() const { 36 return true; 37 } 38 ServiceIsNULLWhileTesting() const39bool VolumeManagerFactory::ServiceIsNULLWhileTesting() const { 40 return true; 41 } 42 BuildServiceInstanceFor(content::BrowserContext * profile) const43KeyedService* VolumeManagerFactory::BuildServiceInstanceFor( 44 content::BrowserContext* profile) const { 45 VolumeManager* instance = new VolumeManager( 46 Profile::FromBrowserContext(profile), 47 drive::DriveIntegrationServiceFactory::GetForProfileRegardlessOfStates( 48 Profile::FromBrowserContext(profile)), 49 chromeos::DBusThreadManager::Get()->GetPowerManagerClient(), 50 chromeos::disks::DiskMountManager::GetInstance(), 51 chromeos::file_system_provider::ServiceFactory::Get( 52 Profile::FromBrowserContext(profile))); 53 instance->Initialize(); 54 return instance; 55 } 56 VolumeManagerFactory()57VolumeManagerFactory::VolumeManagerFactory() 58 : BrowserContextKeyedServiceFactory( 59 "VolumeManagerFactory", 60 BrowserContextDependencyManager::GetInstance()) { 61 DependsOn(drive::DriveIntegrationServiceFactory::GetInstance()); 62 DependsOn(chromeos::file_system_provider::ServiceFactory::GetInstance()); 63 } 64 ~VolumeManagerFactory()65VolumeManagerFactory::~VolumeManagerFactory() { 66 } 67 68 } // namespace file_manager 69