OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_ | 5 #ifndef CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_ |
6 #define CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_ | 6 #define CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_ |
7 | 7 |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/singleton.h" | 9 #include "base/memory/singleton.h" |
10 #include "components/browser_context_keyed_service/refcounted_browser_context_ke
yed_service_factory.h" | 10 #include "components/browser_context_keyed_service/refcounted_browser_context_ke
yed_service_factory.h" |
11 | 11 |
12 class Profile; | 12 class Profile; |
13 | 13 |
14 namespace thumbnails { | 14 namespace thumbnails { |
15 class ThumbnailService; | 15 class ThumbnailService; |
16 } | 16 } |
17 | 17 |
18 class ThumbnailServiceFactory : public RefcountedProfileKeyedServiceFactory { | 18 class ThumbnailServiceFactory |
| 19 : public RefcountedBrowserContextKeyedServiceFactory { |
19 public: | 20 public: |
20 // Returns an instance of ThumbnailService associated with this profile | 21 // Returns an instance of ThumbnailService associated with this profile |
21 // (creating one if none exists). Returns NULL if this profile cannot have a | 22 // (creating one if none exists). Returns NULL if this profile cannot have a |
22 // ThumbnailService (for example, if |profile| is incognito). | 23 // ThumbnailService (for example, if |profile| is incognito). |
23 // Depending on the settings, the implementation of the service interface | 24 // Depending on the settings, the implementation of the service interface |
24 // can be provided either by TopSites (stored in the profile itself) or | 25 // can be provided either by TopSites (stored in the profile itself) or |
25 // be an instance of a real RefcountedProfileKeyedService implementation. | 26 // be an instance of a real RefcountedBrowserContextKeyedService |
| 27 // implementation. |
26 static scoped_refptr<thumbnails::ThumbnailService> GetForProfile( | 28 static scoped_refptr<thumbnails::ThumbnailService> GetForProfile( |
27 Profile* profile); | 29 Profile* profile); |
28 | 30 |
29 static ThumbnailServiceFactory* GetInstance(); | 31 static ThumbnailServiceFactory* GetInstance(); |
30 | 32 |
31 private: | 33 private: |
32 friend struct DefaultSingletonTraits<ThumbnailServiceFactory>; | 34 friend struct DefaultSingletonTraits<ThumbnailServiceFactory>; |
33 | 35 |
34 ThumbnailServiceFactory(); | 36 ThumbnailServiceFactory(); |
35 virtual ~ThumbnailServiceFactory(); | 37 virtual ~ThumbnailServiceFactory(); |
36 | 38 |
37 // ProfileKeyedServiceFactory: | 39 // BrowserContextKeyedServiceFactory: |
38 virtual scoped_refptr<RefcountedProfileKeyedService> BuildServiceInstanceFor( | 40 virtual scoped_refptr<RefcountedBrowserContextKeyedService> |
39 content::BrowserContext* profile) const OVERRIDE; | 41 BuildServiceInstanceFor(content::BrowserContext* profile) const OVERRIDE; |
40 | 42 |
41 DISALLOW_COPY_AND_ASSIGN(ThumbnailServiceFactory); | 43 DISALLOW_COPY_AND_ASSIGN(ThumbnailServiceFactory); |
42 }; | 44 }; |
43 | 45 |
44 #endif // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_ | 46 #endif // CHROME_BROWSER_THUMBNAILS_THUMBNAIL_SERVICE_FACTORY_H_ |
OLD | NEW |