1 // Copyright (c) 2011 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 #ifndef CHROME_BROWSER_BACKGROUND_CONTENTS_SERVICE_FACTORY_H_ 6 #define CHROME_BROWSER_BACKGROUND_CONTENTS_SERVICE_FACTORY_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/singleton.h" 10 #include "chrome/browser/profiles/profile_keyed_service_factory.h" 11 12 class BackgroundContentsService; 13 class Profile; 14 15 // Singleton that owns all BackgroundContentsServices and associates them with 16 // Profiles. Listens for the Profile's destruction notification and cleans up 17 // the associated BackgroundContentsService. 18 class BackgroundContentsServiceFactory : public ProfileKeyedServiceFactory { 19 public: 20 static BackgroundContentsService* GetForProfile(Profile* profile); 21 22 static BackgroundContentsServiceFactory* GetInstance(); 23 24 private: 25 friend struct DefaultSingletonTraits<BackgroundContentsServiceFactory>; 26 27 BackgroundContentsServiceFactory(); 28 virtual ~BackgroundContentsServiceFactory(); 29 30 // ProfileKeyedServiceFactory: 31 virtual ProfileKeyedService* BuildServiceInstanceFor( 32 Profile* profile) const OVERRIDE; 33 // Use a separate background contents service for incognito. 34 virtual bool ServiceHasOwnInstanceInIncognito() OVERRIDE; 35 }; 36 37 #endif // CHROME_BROWSER_BACKGROUND_CONTENTS_SERVICE_FACTORY_H_ 38