Avi Drissman | 4a8573c | 2022-09-09 19:35:54 | [diff] [blame] | 1 | // Copyright 2013 The Chromium Authors |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #ifndef CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_FACTORY_H_ |
| 6 | #define CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_FACTORY_H_ |
| 7 | |
dcheng | c963c714 | 2016-04-08 03:55:22 | [diff] [blame] | 8 | #include <memory> |
| 9 | |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 10 | #include "base/memory/singleton.h" |
Ryan Sultanem | 66dded2b | 2022-08-22 10:34:15 | [diff] [blame] | 11 | #include "chrome/browser/profiles/profile_keyed_service_factory.h" |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 12 | |
oshima@chromium.org | f5fede0 | 2014-07-29 02:48:21 | [diff] [blame] | 13 | namespace content { |
| 14 | class BrowserContext; |
| 15 | } |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 16 | |
| 17 | namespace extensions { |
| 18 | class MenuManager; |
| 19 | |
Ryan Sultanem | 66dded2b | 2022-08-22 10:34:15 | [diff] [blame] | 20 | class MenuManagerFactory : public ProfileKeyedServiceFactory { |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 21 | public: |
oshima@chromium.org | f5fede0 | 2014-07-29 02:48:21 | [diff] [blame] | 22 | static MenuManager* GetForBrowserContext(content::BrowserContext* context); |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 23 | |
| 24 | static MenuManagerFactory* GetInstance(); |
| 25 | |
dcheng | c963c714 | 2016-04-08 03:55:22 | [diff] [blame] | 26 | static std::unique_ptr<KeyedService> BuildServiceInstanceForTesting( |
gpdavis.chromium@gmail.com | 69e1c12d | 2014-08-13 08:25:34 | [diff] [blame] | 27 | content::BrowserContext* context); |
| 28 | |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 29 | private: |
olli.raula | 36aa8be | 2015-09-10 11:14:22 | [diff] [blame] | 30 | friend struct base::DefaultSingletonTraits<MenuManagerFactory>; |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 31 | |
| 32 | MenuManagerFactory(); |
dcheng | ae36a4a | 2014-10-21 12:36:36 | [diff] [blame] | 33 | ~MenuManagerFactory() override; |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 34 | |
dcheng | ae36a4a | 2014-10-21 12:36:36 | [diff] [blame] | 35 | KeyedService* BuildServiceInstanceFor( |
mostynb | a15bee1 | 2014-10-04 00:40:32 | [diff] [blame] | 36 | content::BrowserContext* context) const override; |
dcheng | ae36a4a | 2014-10-21 12:36:36 | [diff] [blame] | 37 | bool ServiceIsCreatedWithBrowserContext() const override; |
| 38 | bool ServiceIsNULLWhileTesting() const override; |
benwells@chromium.org | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 39 | }; |
| 40 | |
| 41 | } // namespace extensions |
| 42 | |
| 43 | #endif // CHROME_BROWSER_EXTENSIONS_MENU_MANAGER_FACTORY_H_ |