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 #ifndef CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_FACTORY_H_ 6 #define CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_FACTORY_H_ 7 8 #include "base/memory/singleton.h" 9 #include "components/keyed_service/content/browser_context_keyed_service_factory.h" 10 11 class Profile; 12 13 namespace app_list { 14 class StartPageService; 15 16 // Singleton factory to create StartPageService. 17 class StartPageServiceFactory : public BrowserContextKeyedServiceFactory { 18 public: 19 // Gets or creates the instance of StartPageService for |profile|. 20 static StartPageService* GetForProfile(Profile* profile); 21 22 // Gets the singleton instance of this factory. 23 static StartPageServiceFactory* GetInstance(); 24 25 private: 26 friend struct DefaultSingletonTraits<StartPageServiceFactory>; 27 28 StartPageServiceFactory(); 29 virtual ~StartPageServiceFactory(); 30 31 // BrowserContextKeyedServiceFactory overrides: 32 virtual KeyedService* BuildServiceInstanceFor( 33 content::BrowserContext* context) const OVERRIDE; 34 35 DISALLOW_COPY_AND_ASSIGN(StartPageServiceFactory); 36 }; 37 38 } // namespace app_list 39 40 #endif // CHROME_BROWSER_UI_APP_LIST_START_PAGE_SERVICE_FACTORY_H_ 41