Home | History | Annotate | Download | only in find_bar
      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/browser_context_keyed_service/browser_context_dependency_manager.h"
     11 
     12 // static
     13 FindBarState* FindBarStateFactory::GetForProfile(Profile* profile) {
     14   return static_cast<FindBarState*>(
     15       GetInstance()->GetServiceForBrowserContext(profile, true));
     16 }
     17 
     18 // static
     19 string16 FindBarStateFactory::GetLastPrepopulateText(Profile* p) {
     20   FindBarState* state = GetForProfile(p);
     21   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
     33 FindBarStateFactory* FindBarStateFactory::GetInstance() {
     34   return Singleton<FindBarStateFactory>::get();
     35 }
     36 
     37 FindBarStateFactory::FindBarStateFactory()
     38     : BrowserContextKeyedServiceFactory(
     39         "FindBarState",
     40         BrowserContextDependencyManager::GetInstance()) {
     41 }
     42 
     43 FindBarStateFactory::~FindBarStateFactory() {}
     44 
     45 BrowserContextKeyedService* FindBarStateFactory::BuildServiceInstanceFor(
     46     content::BrowserContext* profile) const {
     47   return new FindBarState;
     48 }
     49 
     50 content::BrowserContext* FindBarStateFactory::GetBrowserContextToUse(
     51     content::BrowserContext* context) const {
     52   return chrome::GetBrowserContextOwnInstanceInIncognito(context);
     53 }
     54