Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Unified Diff: chrome/browser/autocomplete/autocomplete_controller.cc

Issue 820063002: Add support for providers called when the omnibox is focused. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/autocomplete/autocomplete_controller.cc
diff --git a/chrome/browser/autocomplete/autocomplete_controller.cc b/chrome/browser/autocomplete/autocomplete_controller.cc
index 627b1a79f20d05b18523680173d39911f770a20d..b6e0b55a6575020c169ff48929d413e27b53533b 100644
--- a/chrome/browser/autocomplete/autocomplete_controller.cc
+++ b/chrome/browser/autocomplete/autocomplete_controller.cc
@@ -183,6 +183,7 @@ AutocompleteController::AutocompleteController(
zero_suggest_provider_(NULL),
stop_timer_duration_(OmniboxFieldTrial::StopTimerFieldTrialDuration()),
done_(true),
+ has_providers_for_omnibox_focus_(false),
in_start_(false),
template_url_service_(template_url_service) {
provider_types &= ~OmniboxFieldTrial::GetDisabledProviderTypes();
@@ -222,6 +223,12 @@ AutocompleteController::AutocompleteController(
if (zero_suggest_provider_)
providers_.push_back(zero_suggest_provider_);
}
+ for (auto& provider : providers_) {
Peter Kasting 2014/12/30 21:18:23 Just eliminate this loop and the variable it sets
jif 2014/12/31 19:02:26 Done.
+ if (provider.ActivatedOnOmniboxFocus()) {
+ has_providers_for_omnibox_focus_ = true;
+ break;
+ }
+ }
}
AutocompleteController::~AutocompleteController() {
@@ -327,8 +334,9 @@ void AutocompleteController::Stop(bool clear_result) {
}
}
-void AutocompleteController::StartZeroSuggest(const AutocompleteInput& input) {
- if (zero_suggest_provider_ == NULL)
+void AutocompleteController::StartOnOmniboxFocus(
+ const AutocompleteInput& input) {
+ if (!has_providers_for_omnibox_focus_)
return;
DCHECK(!in_start_); // We should not be already running a query.
@@ -336,14 +344,18 @@ void AutocompleteController::StartZeroSuggest(const AutocompleteInput& input) {
// Call Start() on all prefix-based providers with an INVALID
// AutocompleteInput to clear out cached |matches_|, which ensures that
// they aren't used with zero suggest.
+ bool non_empty_matches = false;
for (Providers::iterator i(providers_.begin()); i != providers_.end(); ++i) {
- if (i->get() == zero_suggest_provider_)
+ if (i->get().ActivatedOnOmniboxFocus()) {
(*i)->Start(input, false);
- else
+ if (!(*i)_->matches().empty())
+ non_empty_matches = true;
+ } else {
(*i)->Start(AutocompleteInput(), false);
+ }
}
- if (!zero_suggest_provider_->matches().empty())
+ if (non_empty_matches)
Peter Kasting 2014/12/30 21:18:23 I think you can eliminate this conditional and jus
jif 2014/12/31 19:02:26 Done. Looks good.
UpdateResult(false, false);
}

Powered by Google App Engine
This is Rietveld 408576698