OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/autocomplete/search_provider.h" | 5 #include "chrome/browser/autocomplete/search_provider.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/auto_reset.h" | 10 #include "base/auto_reset.h" |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 template_url_service_->GetTemplateURLForKeyword(keyword_provider_); | 114 template_url_service_->GetTemplateURLForKeyword(keyword_provider_); |
115 } | 115 } |
116 | 116 |
117 | 117 |
118 // SearchProvider ------------------------------------------------------------- | 118 // SearchProvider ------------------------------------------------------------- |
119 | 119 |
120 // static | 120 // static |
121 const int SearchProvider::kDefaultProviderURLFetcherID = 1; | 121 const int SearchProvider::kDefaultProviderURLFetcherID = 1; |
122 // static | 122 // static |
123 const int SearchProvider::kKeywordProviderURLFetcherID = 2; | 123 const int SearchProvider::kKeywordProviderURLFetcherID = 2; |
| 124 // static |
| 125 int SearchProvider::kMinimumTimeBetweenSuggestQueriesMs = 100; |
124 | 126 |
125 SearchProvider::SearchProvider(AutocompleteProviderListener* listener, | 127 SearchProvider::SearchProvider(AutocompleteProviderListener* listener, |
126 Profile* profile) | 128 Profile* profile) |
127 : AutocompleteProvider(listener, profile, | 129 : AutocompleteProvider(listener, profile, |
128 AutocompleteProvider::TYPE_SEARCH), | 130 AutocompleteProvider::TYPE_SEARCH), |
129 providers_(TemplateURLServiceFactory::GetForProfile(profile)), | 131 providers_(TemplateURLServiceFactory::GetForProfile(profile)), |
130 suggest_results_pending_(0), | 132 suggest_results_pending_(0), |
131 has_default_suggested_relevance_(false), | 133 has_default_suggested_relevance_(false), |
132 has_keyword_suggested_relevance_(false), | 134 has_keyword_suggested_relevance_(false), |
133 default_verbatim_relevance_(-1), | 135 default_verbatim_relevance_(-1), |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 // We can't keep running any previous query, so halt it. | 557 // We can't keep running any previous query, so halt it. |
556 StopSuggest(); | 558 StopSuggest(); |
557 | 559 |
558 // Remove existing results that cannot inline autocomplete the new input. | 560 // Remove existing results that cannot inline autocomplete the new input. |
559 RemoveStaleResults(); | 561 RemoveStaleResults(); |
560 | 562 |
561 // We can't start a new query if we're only allowed synchronous results. | 563 // We can't start a new query if we're only allowed synchronous results. |
562 if (input_.matches_requested() != AutocompleteInput::ALL_MATCHES) | 564 if (input_.matches_requested() != AutocompleteInput::ALL_MATCHES) |
563 return; | 565 return; |
564 | 566 |
565 // To avoid flooding the suggest server, don't send a query until at least 100 | 567 // To avoid flooding the suggest server, don't send a query until at |
566 // ms since the last query. | 568 // least 100 ms since the last query. |
567 const int kMinimumTimeBetweenSuggestQueriesMs = 100; | |
568 base::TimeTicks next_suggest_time(time_suggest_request_sent_ + | 569 base::TimeTicks next_suggest_time(time_suggest_request_sent_ + |
569 TimeDelta::FromMilliseconds(kMinimumTimeBetweenSuggestQueriesMs)); | 570 TimeDelta::FromMilliseconds(kMinimumTimeBetweenSuggestQueriesMs)); |
570 base::TimeTicks now(base::TimeTicks::Now()); | 571 base::TimeTicks now(base::TimeTicks::Now()); |
571 if (now >= next_suggest_time) { | 572 if (now >= next_suggest_time) { |
572 Run(); | 573 Run(); |
573 return; | 574 return; |
574 } | 575 } |
575 timer_.Start(FROM_HERE, next_suggest_time - now, this, &SearchProvider::Run); | 576 timer_.Start(FROM_HERE, next_suggest_time - now, this, &SearchProvider::Run); |
576 } | 577 } |
577 | 578 |
(...skipping 935 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1513 it->set_relevance(max_query_relevance); | 1514 it->set_relevance(max_query_relevance); |
1514 } | 1515 } |
1515 } | 1516 } |
1516 | 1517 |
1517 void SearchProvider::UpdateDone() { | 1518 void SearchProvider::UpdateDone() { |
1518 // We're done when the timer isn't running, there are no suggest queries | 1519 // We're done when the timer isn't running, there are no suggest queries |
1519 // pending, and we're not waiting on Instant. | 1520 // pending, and we're not waiting on Instant. |
1520 done_ = (!timer_.IsRunning() && (suggest_results_pending_ == 0) && | 1521 done_ = (!timer_.IsRunning() && (suggest_results_pending_ == 0) && |
1521 (instant_finalized_ || !chrome::IsInstantEnabled(profile_))); | 1522 (instant_finalized_ || !chrome::IsInstantEnabled(profile_))); |
1522 } | 1523 } |
OLD | NEW |