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.
5 #ifndef CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_
6 #define CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_
8 #include "base/memory/ref_counted.h"
9 #include "base/memory/singleton.h"
10 #include "components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h"
14 namespace thumbnails
{
15 class ThumbnailService
;
18 class ThumbnailServiceFactory
19 : public RefcountedBrowserContextKeyedServiceFactory
{
21 // Returns an instance of ThumbnailService associated with this profile
22 // (creating one if none exists). Returns NULL if this profile cannot have a
23 // ThumbnailService (for example, if |profile| is incognito).
24 // Depending on the settings, the implementation of the service interface
25 // can be provided either by TopSites (stored in the profile itself) or
26 // be an instance of a real RefcountedKeyedService
28 static scoped_refptr
<thumbnails::ThumbnailService
> GetForProfile(
31 static ThumbnailServiceFactory
* GetInstance();
34 friend struct DefaultSingletonTraits
<ThumbnailServiceFactory
>;
36 ThumbnailServiceFactory();
37 ~ThumbnailServiceFactory() override
;
39 // BrowserContextKeyedServiceFactory:
40 scoped_refptr
<RefcountedKeyedService
> BuildServiceInstanceFor(
41 content::BrowserContext
* profile
) const override
;
43 DISALLOW_COPY_AND_ASSIGN(ThumbnailServiceFactory
);
46 #endif // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_