OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_FACTORY_H_ | 5 #ifndef CHROME_BROWSER_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_FACTORY_H_ |
6 #define CHROME_BROWSER_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_FACTORY_H_ | 6 #define CHROME_BROWSER_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_FACTORY_H_ |
7 | 7 |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
11 #include "components/keyed_service/content/browser_context_keyed_service_factory
.h" | 11 #include "components/keyed_service/content/browser_context_keyed_service_factory
.h" |
12 | 12 |
13 class Profile; | 13 class Profile; |
14 | 14 |
15 namespace base { | 15 namespace base { |
16 template <typename T> | 16 template <typename T> |
17 struct DefaultSingletonTraits; | 17 struct DefaultSingletonTraits; |
18 } // namespace base | 18 } // namespace base |
19 | 19 |
20 namespace ntp_snippets { | 20 namespace ntp_snippets { |
21 class ContentSuggestionsService; | 21 class ContentSuggestionsService; |
22 } // namespace ntp_snippets | 22 } // namespace ntp_snippets |
23 | 23 |
24 class ContentSuggestionsServiceFactory | 24 class ContentSuggestionsServiceFactory |
25 : public BrowserContextKeyedServiceFactory { | 25 : public BrowserContextKeyedServiceFactory { |
26 public: | 26 public: |
27 static ContentSuggestionsServiceFactory* GetInstance(); | 27 static ContentSuggestionsServiceFactory* GetInstance(); |
28 static ntp_snippets::ContentSuggestionsService* GetForProfile( | 28 static ntp_snippets::ContentSuggestionsService* GetForProfile( |
29 Profile* profile); | 29 Profile* profile); |
| 30 static ntp_snippets::ContentSuggestionsService* GetForProfileIfExists( |
| 31 Profile* profile); |
30 | 32 |
31 private: | 33 private: |
32 friend struct base::DefaultSingletonTraits<ContentSuggestionsServiceFactory>; | 34 friend struct base::DefaultSingletonTraits<ContentSuggestionsServiceFactory>; |
33 | 35 |
34 ContentSuggestionsServiceFactory(); | 36 ContentSuggestionsServiceFactory(); |
35 ~ContentSuggestionsServiceFactory() override; | 37 ~ContentSuggestionsServiceFactory() override; |
36 | 38 |
37 // BrowserContextKeyedServiceFactory implementation. | 39 // BrowserContextKeyedServiceFactory implementation. |
38 KeyedService* BuildServiceInstanceFor( | 40 KeyedService* BuildServiceInstanceFor( |
39 content::BrowserContext* context) const override; | 41 content::BrowserContext* context) const override; |
40 | 42 |
41 DISALLOW_COPY_AND_ASSIGN(ContentSuggestionsServiceFactory); | 43 DISALLOW_COPY_AND_ASSIGN(ContentSuggestionsServiceFactory); |
42 }; | 44 }; |
43 | 45 |
44 #endif // CHROME_BROWSER_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_FACTORY_H_ | 46 #endif // CHROME_BROWSER_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_FACTORY_H_ |
OLD | NEW |