background_contents_service_factory.h revision ddb351dbec246cf1fab5ec20d2d5520909041de1
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 12class BackgroundContentsService; 13class 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. 18class 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