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
3 // found in the LICENSE file.
5 #include "chrome/browser/ui/find_bar/find_bar_state_factory.h"
7 #include "chrome/browser/profiles/incognito_helpers.h"
8 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/browser/ui/find_bar/find_bar_state.h"
10 #include "components/keyed_service/content/browser_context_dependency_manager.h"
13 FindBarState
* FindBarStateFactory::GetForProfile(Profile
* profile
) {
14 return static_cast<FindBarState
*>(
15 GetInstance()->GetServiceForBrowserContext(profile
, true));
19 base::string16
FindBarStateFactory::GetLastPrepopulateText(Profile
* p
) {
20 FindBarState
* state
= GetForProfile(p
);
21 base::string16 text
= state
->last_prepopulate_text();
23 if (text
.empty() && p
->IsOffTheRecord()) {
24 // Fall back to the original profile.
25 state
= GetForProfile(p
->GetOriginalProfile());
26 text
= state
->last_prepopulate_text();
33 FindBarStateFactory
* FindBarStateFactory::GetInstance() {
34 return base::Singleton
<FindBarStateFactory
>::get();
37 FindBarStateFactory::FindBarStateFactory()
38 : BrowserContextKeyedServiceFactory(
40 BrowserContextDependencyManager::GetInstance()) {
43 FindBarStateFactory::~FindBarStateFactory() {}
45 KeyedService
* FindBarStateFactory::BuildServiceInstanceFor(
46 content::BrowserContext
* profile
) const {
47 return new FindBarState
;
50 content::BrowserContext
* FindBarStateFactory::GetBrowserContextToUse(
51 content::BrowserContext
* context
) const {
52 return chrome::GetBrowserContextOwnInstanceInIncognito(context
);