1 // Copyright 2013 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.
5 #ifndef CHROME_BROWSER_DOM_DISTILLER_DOM_DISTILLER_SERVICE_FACTORY_H_
6 #define CHROME_BROWSER_DOM_DISTILLER_DOM_DISTILLER_SERVICE_FACTORY_H_
8 #include "base/memory/singleton.h"
9 #include "components/dom_distiller/core/dom_distiller_service.h"
10 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
14 } // namespace content
16 namespace dom_distiller
{
18 // A simple wrapper for DomDistillerService to expose it as a
20 class DomDistillerContextKeyedService
: public KeyedService
,
21 public DomDistillerService
{
23 DomDistillerContextKeyedService(
24 scoped_ptr
<DomDistillerStoreInterface
> store
,
25 scoped_ptr
<DistillerFactory
> distiller_factory
,
26 scoped_ptr
<DistillerPageFactory
> distiller_page_factory
);
27 virtual ~DomDistillerContextKeyedService() {}
30 DISALLOW_COPY_AND_ASSIGN(DomDistillerContextKeyedService
);
33 class DomDistillerServiceFactory
: public BrowserContextKeyedServiceFactory
{
35 static DomDistillerServiceFactory
* GetInstance();
36 static DomDistillerContextKeyedService
* GetForBrowserContext(
37 content::BrowserContext
* context
);
40 friend struct DefaultSingletonTraits
<DomDistillerServiceFactory
>;
42 DomDistillerServiceFactory();
43 virtual ~DomDistillerServiceFactory();
45 virtual KeyedService
* BuildServiceInstanceFor(
46 content::BrowserContext
* context
) const OVERRIDE
;
48 virtual content::BrowserContext
* GetBrowserContextToUse(
49 content::BrowserContext
* context
) const OVERRIDE
;
52 } // namespace dom_distiller
54 #endif // CHROME_BROWSER_DOM_DISTILLER_DOM_DISTILLER_SERVICE_FACTORY_H_