1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_BACKGROUND_MODE_MANAGER_FACTORY_H_ 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_BACKGROUND_MODE_MANAGER_FACTORY_H_ 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/compiler_specific.h" 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/singleton.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "chrome/browser/profiles/profile_keyed_service_factory.h" 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass BackgroundModeManager; 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass Profile; 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Singleton that owns all BackgroundModeManagers and associates them with 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Profiles. Listens for the Profile's destruction notification and cleans up 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// the associated BackgroundModeManager. 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass BackgroundModeManagerFactory : public ProfileKeyedServiceFactory { 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public: 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static BackgroundModeManager* GetForProfile(Profile* profile); 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen static BackgroundModeManagerFactory* GetInstance(); 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen private: 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen friend struct DefaultSingletonTraits<BackgroundModeManagerFactory>; 26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen BackgroundModeManagerFactory(); 28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ~BackgroundModeManagerFactory(); 29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen // ProfileKeyedServiceFactory: 31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen virtual ProfileKeyedService* BuildServiceInstanceFor( 32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen Profile* profile) const OVERRIDE; 33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}; 34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif // CHROME_BROWSER_BACKGROUND_MODE_MANAGER_FACTORY_H_ 36