diff options
author | mrossetti@chromium.org <mrossetti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-24 14:18:26 +0000 |
---|---|---|
committer | mrossetti@chromium.org <mrossetti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-02-24 14:18:26 +0000 |
commit | 6c6e2e851954d14c5d183a624f842f55c1241296 (patch) | |
tree | 8fe3c11fac71c2ea9bfbdaf1c205a225bc4b8a84 /chrome/browser/autocomplete | |
parent | 61623711e224217f24269ec1ba5554e3e908b92c (diff) | |
download | chromium_src-6c6e2e851954d14c5d183a624f842f55c1241296.zip chromium_src-6c6e2e851954d14c5d183a624f842f55c1241296.tar.gz chromium_src-6c6e2e851954d14c5d183a624f842f55c1241296.tar.bz2 |
Revert 75882 - Add caching of the InMemoryURLIndex (part of the HistoryQuickProvider) part 1. (Transactions will be introduced in the next submission.) Fixed a problem in the caching of search results as the user types each character in a search term. Updated the unit test associated with that code.
Added (temporary) flag which can be used to turn on the HQP (enable-history-quick-provider); also added it to about:flags.
Previously reviewed as http://codereview.chromium.org/6286029/.
BUG=19736,60107
TEST=Added unit tests.
Review URL: http://codereview.chromium.org/6581024
TBR=mrossetti@chromium.org
Review URL: http://codereview.chromium.org/6575032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75883 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/autocomplete')
6 files changed, 40 insertions, 17 deletions
diff --git a/chrome/browser/autocomplete/autocomplete.cc b/chrome/browser/autocomplete/autocomplete.cc index e10c3c8..daad189 100644 --- a/chrome/browser/autocomplete/autocomplete.cc +++ b/chrome/browser/autocomplete/autocomplete.cc @@ -789,10 +789,8 @@ AutocompleteController::AutocompleteController( in_start_(false) { search_provider_ = new SearchProvider(this, profile); providers_.push_back(search_provider_); - if (CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableHistoryQuickProvider) && - !CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableHistoryQuickProvider)) + if (!CommandLine::ForCurrentProcess()->HasSwitch( + switches::kDisableHistoryQuickProvider)) providers_.push_back(new HistoryQuickProvider(this, profile)); if (!CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableHistoryURLProvider)) diff --git a/chrome/browser/autocomplete/history_provider_util.cc b/chrome/browser/autocomplete/history_provider_util.cc index a8b23d7..4325b6b 100644 --- a/chrome/browser/autocomplete/history_provider_util.cc +++ b/chrome/browser/autocomplete/history_provider_util.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -6,6 +6,10 @@ namespace history { +const int kLowQualityMatchTypedLimit = 1; +const int kLowQualityMatchVisitLimit = 3; +const int kLowQualityMatchAgeLimitInDays = 3; + HistoryMatch::HistoryMatch() : url_info(), input_location(string16::npos), @@ -27,4 +31,9 @@ bool HistoryMatch::operator==(const GURL& url) const { return url_info.url() == url; } -} // namespace history +base::Time AutocompleteAgeThreshold() { + return (base::Time::Now() - + base::TimeDelta::FromDays(kLowQualityMatchAgeLimitInDays)); +} + +} diff --git a/chrome/browser/autocomplete/history_provider_util.h b/chrome/browser/autocomplete/history_provider_util.h index 5866df9..aa4b444 100644 --- a/chrome/browser/autocomplete/history_provider_util.h +++ b/chrome/browser/autocomplete/history_provider_util.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -13,6 +13,13 @@ namespace history { +// Constants which specify, when considered altogether, 'significant' +// history items. These are used to filter out insignificant items +// for consideration as autocomplete candidates. +extern const int kLowQualityMatchTypedLimit; +extern const int kLowQualityMatchVisitLimit; +extern const int kLowQualityMatchAgeLimitInDays; + // Used for intermediate history result operations. struct HistoryMatch { // Required for STL, we don't use this directly. @@ -64,6 +71,10 @@ struct Prefix { int num_components; }; typedef std::vector<Prefix> Prefixes; + +// Returns the date threshold for considering an history item as significant. +base::Time AutocompleteAgeThreshold(); + } #endif // CHROME_BROWSER_AUTOCOMPLETE_HISTORY_PROVIDER_UTIL_H_ diff --git a/chrome/browser/autocomplete/history_quick_provider.h b/chrome/browser/autocomplete/history_quick_provider.h index befb8bc..561336b 100644 --- a/chrome/browser/autocomplete/history_quick_provider.h +++ b/chrome/browser/autocomplete/history_quick_provider.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -22,6 +22,9 @@ class HistoryBackend; // the history system) which quickly (and synchronously) provides matching // results from recently or frequently visited sites in the profile's // history. +// +// TODO(mrossetti): Review to see if the following applies since we're not +// using the database during the autocomplete pass. class HistoryQuickProvider : public HistoryProvider { public: HistoryQuickProvider(ACProviderListener* listener, Profile* profile); diff --git a/chrome/browser/autocomplete/history_quick_provider_unittest.cc b/chrome/browser/autocomplete/history_quick_provider_unittest.cc index c640456..d5b5e0d 100644 --- a/chrome/browser/autocomplete/history_quick_provider_unittest.cc +++ b/chrome/browser/autocomplete/history_quick_provider_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -139,8 +139,7 @@ void HistoryQuickProviderTest::FillData() { history::SOURCE_BROWSED); } - history::InMemoryURLIndex* index = - new history::InMemoryURLIndex(FilePath(FILE_PATH_LITERAL("/dummy"))); + history::InMemoryURLIndex* index = new history::InMemoryURLIndex(); PrefService* prefs = profile_->GetPrefs(); std::string languages(prefs->GetString(prefs::kAcceptLanguages)); index->Init(db, languages); diff --git a/chrome/browser/autocomplete/history_url_provider.cc b/chrome/browser/autocomplete/history_url_provider.cc index 0dafe8e..1db38f0 100644 --- a/chrome/browser/autocomplete/history_url_provider.cc +++ b/chrome/browser/autocomplete/history_url_provider.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -15,7 +15,6 @@ #include "chrome/browser/history/history.h" #include "chrome/browser/history/history_backend.h" #include "chrome/browser/history/history_database.h" -#include "chrome/browser/history/history_types.h" #include "chrome/browser/net/url_fixer_upper.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/browser/profiles/profile.h" @@ -690,12 +689,16 @@ void HistoryURLProvider::SortMatches(HistoryMatches* matches) const { } void HistoryURLProvider::CullPoorMatches(HistoryMatches* matches) const { - const base::Time& threshold(history::AutocompleteAgeThreshold()); + Time recent_threshold = history::AutocompleteAgeThreshold(); for (HistoryMatches::iterator i(matches->begin()); i != matches->end();) { - if (RowQualifiesAsSignificant(i->url_info, threshold)) - ++i; - else + const history::URLRow& url_info(i->url_info); + if ((url_info.typed_count() <= history::kLowQualityMatchTypedLimit) && + (url_info.visit_count() <= history::kLowQualityMatchVisitLimit) && + (url_info.last_visit() < recent_threshold)) { i = matches->erase(i); + } else { + ++i; + } } } |