Make castv2 performance test work.
[chromium-blink-merge.git] / chrome / browser / thumbnails / thumbnail_service_factory.h
blob921721d213bfdd4d03db5e2cc10dac739601d0c2
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"
12 class Profile;
14 namespace thumbnails {
15 class ThumbnailService;
18 class ThumbnailServiceFactory
19 : public RefcountedBrowserContextKeyedServiceFactory {
20 public:
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
27 // implementation.
28 static scoped_refptr<thumbnails::ThumbnailService> GetForProfile(
29 Profile* profile);
31 static ThumbnailServiceFactory* GetInstance();
33 private:
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_