1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/extensions/extension_toolbar_model_factory.h" 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "chrome/browser/extensions/api/extension_action/extension_action_api.h" 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/extensions/extension_toolbar_model.h" 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/profiles/profile.h" 10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/content/browser_context_dependency_manager.h" 115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/browser/extension_prefs.h" 125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/browser/extension_prefs_factory.h" 135d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/browser/extensions_browser_client.h" 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace extensions { 16effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// static 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ExtensionToolbarModel* ExtensionToolbarModelFactory::GetForProfile( 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) Profile* profile) { 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return static_cast<ExtensionToolbarModel*>( 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) GetInstance()->GetServiceForBrowserContext(profile, true)); 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// static 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ExtensionToolbarModelFactory* ExtensionToolbarModelFactory::GetInstance() { 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return Singleton<ExtensionToolbarModelFactory>::get(); 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ExtensionToolbarModelFactory::ExtensionToolbarModelFactory() 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : BrowserContextKeyedServiceFactory( 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) "ExtensionToolbarModel", 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) BrowserContextDependencyManager::GetInstance()) { 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch DependsOn(ExtensionPrefsFactory::GetInstance()); 3403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) DependsOn(ExtensionActionAPI::GetFactoryInstance()); 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)ExtensionToolbarModelFactory::~ExtensionToolbarModelFactory() {} 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 39a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)KeyedService* ExtensionToolbarModelFactory::BuildServiceInstanceFor( 40a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) content::BrowserContext* context) const { 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return new ExtensionToolbarModel( 42a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) Profile::FromBrowserContext(context), 43effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch ExtensionPrefsFactory::GetForBrowserContext(context)); 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)content::BrowserContext* ExtensionToolbarModelFactory::GetBrowserContextToUse( 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) content::BrowserContext* context) const { 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return ExtensionsBrowserClient::Get()->GetOriginalContext(context); 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool ExtensionToolbarModelFactory::ServiceIsCreatedWithBrowserContext() const { 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return true; 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool ExtensionToolbarModelFactory::ServiceIsNULLWhileTesting() const { 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return true; 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 58effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 59effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace extensions 60