[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 1 | // Copyright 2013 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. | ||||
4 | |||||
5 | #include "chrome/browser/extensions/menu_manager_factory.h" | ||||
6 | |||||
dcheng | c963c714 | 2016-04-08 03:55:22 | [diff] [blame] | 7 | #include "base/memory/ptr_util.h" |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 8 | #include "chrome/browser/extensions/menu_manager.h" |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 9 | #include "chrome/browser/profiles/profile.h" |
[email protected] | b33f0b11 | 2014-03-13 17:05:30 | [diff] [blame] | 10 | #include "components/keyed_service/content/browser_context_dependency_manager.h" |
[email protected] | 59b0e60 | 2014-01-30 00:41:24 | [diff] [blame] | 11 | #include "extensions/browser/extension_system.h" |
[email protected] | d46c050 | 2014-02-14 13:33:36 | [diff] [blame] | 12 | #include "extensions/browser/extension_system_provider.h" |
[email protected] | 175a74d | 2014-02-08 02:06:20 | [diff] [blame] | 13 | #include "extensions/browser/extensions_browser_client.h" |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 14 | |
15 | namespace extensions { | ||||
16 | |||||
17 | // static | ||||
[email protected] | f5fede0 | 2014-07-29 02:48:21 | [diff] [blame] | 18 | MenuManager* MenuManagerFactory::GetForBrowserContext( |
19 | content::BrowserContext* context) { | ||||
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 20 | return static_cast<MenuManager*>( |
[email protected] | f5fede0 | 2014-07-29 02:48:21 | [diff] [blame] | 21 | GetInstance()->GetServiceForBrowserContext(context, true)); |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 22 | } |
23 | |||||
24 | // static | ||||
25 | MenuManagerFactory* MenuManagerFactory::GetInstance() { | ||||
olli.raula | 36aa8be | 2015-09-10 11:14:22 | [diff] [blame] | 26 | return base::Singleton<MenuManagerFactory>::get(); |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 27 | } |
28 | |||||
[email protected] | 69e1c12d | 2014-08-13 08:25:34 | [diff] [blame] | 29 | // static |
dcheng | c963c714 | 2016-04-08 03:55:22 | [diff] [blame] | 30 | std::unique_ptr<KeyedService> |
31 | MenuManagerFactory::BuildServiceInstanceForTesting( | ||||
[email protected] | 69e1c12d | 2014-08-13 08:25:34 | [diff] [blame] | 32 | content::BrowserContext* context) { |
dcheng | c963c714 | 2016-04-08 03:55:22 | [diff] [blame] | 33 | return base::WrapUnique(GetInstance()->BuildServiceInstanceFor(context)); |
[email protected] | 69e1c12d | 2014-08-13 08:25:34 | [diff] [blame] | 34 | } |
35 | |||||
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 36 | MenuManagerFactory::MenuManagerFactory() |
37 | : BrowserContextKeyedServiceFactory( | ||||
38 | "MenuManager", | ||||
39 | BrowserContextDependencyManager::GetInstance()) { | ||||
[email protected] | d46c050 | 2014-02-14 13:33:36 | [diff] [blame] | 40 | DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory()); |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 41 | } |
42 | |||||
43 | MenuManagerFactory::~MenuManagerFactory() {} | ||||
44 | |||||
[email protected] | b33f0b11 | 2014-03-13 17:05:30 | [diff] [blame] | 45 | KeyedService* MenuManagerFactory::BuildServiceInstanceFor( |
46 | content::BrowserContext* context) const { | ||||
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 47 | Profile* profile = Profile::FromBrowserContext(context); |
[email protected] | 69e1c12d | 2014-08-13 08:25:34 | [diff] [blame] | 48 | return new MenuManager(profile, ExtensionSystem::Get(profile)->state_store()); |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 49 | } |
50 | |||||
51 | content::BrowserContext* MenuManagerFactory::GetBrowserContextToUse( | ||||
52 | content::BrowserContext* context) const { | ||||
[email protected] | 175a74d | 2014-02-08 02:06:20 | [diff] [blame] | 53 | return ExtensionsBrowserClient::Get()->GetOriginalContext(context); |
[email protected] | b673a594 | 2013-11-14 11:14:19 | [diff] [blame] | 54 | } |
55 | |||||
56 | bool MenuManagerFactory::ServiceIsCreatedWithBrowserContext() const { | ||||
57 | return true; | ||||
58 | } | ||||
59 | |||||
60 | bool MenuManagerFactory::ServiceIsNULLWhileTesting() const { | ||||
61 | return true; | ||||
62 | } | ||||
63 | |||||
64 | } // namespace extensions |