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. 4 5#include "chrome/browser/ui/find_bar/find_bar_state_factory.h" 6 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" 11 12// static 13FindBarState* FindBarStateFactory::GetForProfile(Profile* profile) { 14 return static_cast<FindBarState*>( 15 GetInstance()->GetServiceForBrowserContext(profile, true)); 16} 17 18// static 19base::string16 FindBarStateFactory::GetLastPrepopulateText(Profile* p) { 20 FindBarState* state = GetForProfile(p); 21 base::string16 text = state->last_prepopulate_text(); 22 23 if (text.empty() && p->IsOffTheRecord()) { 24 // Fall back to the original profile. 25 state = GetForProfile(p->GetOriginalProfile()); 26 text = state->last_prepopulate_text(); 27 } 28 29 return text; 30} 31 32// static 33FindBarStateFactory* FindBarStateFactory::GetInstance() { 34 return Singleton<FindBarStateFactory>::get(); 35} 36 37FindBarStateFactory::FindBarStateFactory() 38 : BrowserContextKeyedServiceFactory( 39 "FindBarState", 40 BrowserContextDependencyManager::GetInstance()) { 41} 42 43FindBarStateFactory::~FindBarStateFactory() {} 44 45KeyedService* FindBarStateFactory::BuildServiceInstanceFor( 46 content::BrowserContext* profile) const { 47 return new FindBarState; 48} 49 50content::BrowserContext* FindBarStateFactory::GetBrowserContextToUse( 51 content::BrowserContext* context) const { 52 return chrome::GetBrowserContextOwnInstanceInIncognito(context); 53} 54