Pin Chrome's shortcut to the Win10 Start menu on install and OS upgrade.
[chromium-blink-merge.git] / ui / app_list / search / history.cc
blob7d38bb269a07761bdc3c481ec5b29990ec816b60
1 // Copyright 2013 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 "ui/app_list/search/history.h"
7 #include "base/strings/string_util.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "ui/app_list/search/history_data.h"
10 #include "ui/app_list/search/history_data_store.h"
11 #include "ui/app_list/search/tokenized_string.h"
13 namespace app_list {
15 namespace {
17 // Normalize the given string by joining all its tokens with a space.
18 std::string NormalizeString(const std::string& utf8) {
19 TokenizedString tokenized(base::UTF8ToUTF16(utf8));
20 return base::UTF16ToUTF8(
21 base::JoinString(tokenized.tokens(), base::ASCIIToUTF16(" ")));
24 } // namespace
26 History::History(scoped_refptr<HistoryDataStore> store)
27 : store_(store), data_loaded_(false) {
28 const size_t kMaxQueryEntries = 1000;
29 const size_t kMaxSecondaryQueries = 5;
31 data_.reset(
32 new HistoryData(store_.get(), kMaxQueryEntries, kMaxSecondaryQueries));
33 data_->AddObserver(this);
36 History::~History() {
37 data_->RemoveObserver(this);
40 bool History::IsReady() const {
41 return data_loaded_;
44 void History::AddLaunchEvent(const std::string& query,
45 const std::string& result_id) {
46 DCHECK(IsReady());
47 data_->Add(NormalizeString(query), result_id);
50 scoped_ptr<KnownResults> History::GetKnownResults(
51 const std::string& query) const {
52 DCHECK(IsReady());
53 return data_->GetKnownResults(NormalizeString(query)).Pass();
56 void History::OnHistoryDataLoadedFromStore() {
57 data_loaded_ = true;
60 } // namespace app_list