190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// found in the LICENSE file. 490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/ui/app_list/search/history_factory.h" 690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "base/memory/ref_counted.h" 890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "base/memory/singleton.h" 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/ui/app_list/search/common/dictionary_data_store.h" 1090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "chrome/browser/ui/app_list/search/history.h" 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/browser/ui/app_list/search/history_data_store.h" 12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/content/browser_context_dependency_manager.h" 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/public/browser/browser_context.h" 1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)namespace app_list { 1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 1790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// static 1890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)HistoryFactory* HistoryFactory::GetInstance() { 1990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return Singleton<HistoryFactory>::get(); 2090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 2190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)// static 2390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)History* HistoryFactory::GetForBrowserContext( 2490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) content::BrowserContext* context) { 2590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) return static_cast<History*>( 2690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) GetInstance()->GetServiceForBrowserContext(context, true)); 2790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 2890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 2990dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)HistoryFactory::HistoryFactory() 3090dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) : BrowserContextKeyedServiceFactory( 3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) "app_list::History", 3290dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) BrowserContextDependencyManager::GetInstance()) {} 3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 3490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)HistoryFactory::~HistoryFactory() {} 3590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)KeyedService* HistoryFactory::BuildServiceInstanceFor( 3790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) content::BrowserContext* context) const { 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const char kStoreDataFileName[] = "App Launcher Search"; 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci const base::FilePath data_file = 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci context->GetPath().AppendASCII(kStoreDataFileName); 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_refptr<DictionaryDataStore> dictionary_data_store( 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new DictionaryDataStore(data_file)); 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci scoped_refptr<HistoryDataStore> history_data_store( 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci new HistoryDataStore(dictionary_data_store)); 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return new History(history_data_store); 4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} 4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles) 4890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)} // namespace app_list 49