Home | History | Annotate | Download | only in history
      1 // Copyright (c) 2012 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_HISTORY_WEB_HISTORY_SERVICE_FACTORY_H_
      6 #define CHROME_BROWSER_HISTORY_WEB_HISTORY_SERVICE_FACTORY_H_
      7 
      8 #include "base/memory/singleton.h"
      9 #include "chrome/browser/profiles/profile.h"
     10 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
     11 
     12 namespace history {
     13 class WebHistoryService;
     14 }
     15 
     16 // Used for creating and fetching a per-profile instance of the
     17 // WebHistoryService.
     18 class WebHistoryServiceFactory : public BrowserContextKeyedServiceFactory {
     19  public:
     20   // Get the singleton instance of the factory.
     21   static WebHistoryServiceFactory* GetInstance();
     22 
     23   // Get the WebHistoryService for |profile|, creating one if needed.
     24   static history::WebHistoryService* GetForProfile(Profile* profile);
     25 
     26  protected:
     27   // Overridden from BrowserContextKeyedServiceFactory.
     28   virtual KeyedService* BuildServiceInstanceFor(
     29       content::BrowserContext* context) const OVERRIDE;
     30 
     31  private:
     32   friend struct DefaultSingletonTraits<WebHistoryServiceFactory>;
     33 
     34   explicit WebHistoryServiceFactory();
     35   virtual ~WebHistoryServiceFactory();
     36 
     37   DISALLOW_COPY_AND_ASSIGN(WebHistoryServiceFactory);
     38 };
     39 
     40 #endif  // CHROME_BROWSER_HISTORY_WEB_HISTORY_SERVICE_FACTORY_H_
     41