| 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/callback.h" | 10 #include "base/callback.h" |
| (...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 | 619 |
| 620 void SearchProvider::DoHistoryQuery(bool minimal_changes) { | 620 void SearchProvider::DoHistoryQuery(bool minimal_changes) { |
| 621 // The history query results are synchronous, so if minimal_changes is true, | 621 // The history query results are synchronous, so if minimal_changes is true, |
| 622 // we still have the last results and don't need to do anything. | 622 // we still have the last results and don't need to do anything. |
| 623 if (minimal_changes) | 623 if (minimal_changes) |
| 624 return; | 624 return; |
| 625 | 625 |
| 626 keyword_history_results_.clear(); | 626 keyword_history_results_.clear(); |
| 627 default_history_results_.clear(); | 627 default_history_results_.clear(); |
| 628 | 628 |
| 629 if (OmniboxFieldTrial::SearchHistoryDisable( | 629 if (OmniboxFieldTrial::SearchHistoryDisable(input_.omnibox_context())) |
| 630 input_.current_page_classification())) | |
| 631 return; | 630 return; |
| 632 | 631 |
| 633 HistoryService* const history_service = | 632 HistoryService* const history_service = |
| 634 HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); | 633 HistoryServiceFactory::GetForProfile(profile_, Profile::EXPLICIT_ACCESS); |
| 635 history::URLDatabase* url_db = history_service ? | 634 history::URLDatabase* url_db = history_service ? |
| 636 history_service->InMemoryDatabase() : NULL; | 635 history_service->InMemoryDatabase() : NULL; |
| 637 if (!url_db) | 636 if (!url_db) |
| 638 return; | 637 return; |
| 639 | 638 |
| 640 // Request history for both the keyword and default provider. We grab many | 639 // Request history for both the keyword and default provider. We grab many |
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1194 SearchProvider::SuggestResults SearchProvider::ScoreHistoryResults( | 1193 SearchProvider::SuggestResults SearchProvider::ScoreHistoryResults( |
| 1195 const HistoryResults& results, | 1194 const HistoryResults& results, |
| 1196 bool base_prevent_inline_autocomplete, | 1195 bool base_prevent_inline_autocomplete, |
| 1197 bool input_multiple_words, | 1196 bool input_multiple_words, |
| 1198 const string16& input_text, | 1197 const string16& input_text, |
| 1199 bool is_keyword) { | 1198 bool is_keyword) { |
| 1200 AutocompleteClassifier* classifier = | 1199 AutocompleteClassifier* classifier = |
| 1201 AutocompleteClassifierFactory::GetForProfile(profile_); | 1200 AutocompleteClassifierFactory::GetForProfile(profile_); |
| 1202 SuggestResults scored_results; | 1201 SuggestResults scored_results; |
| 1203 const bool prevent_search_history_inlining = | 1202 const bool prevent_search_history_inlining = |
| 1204 OmniboxFieldTrial::SearchHistoryPreventInlining( | 1203 OmniboxFieldTrial::SearchHistoryPreventInlining(input_.omnibox_context()); |
| 1205 input_.current_page_classification()); | |
| 1206 for (HistoryResults::const_iterator i(results.begin()); i != results.end(); | 1204 for (HistoryResults::const_iterator i(results.begin()); i != results.end(); |
| 1207 ++i) { | 1205 ++i) { |
| 1208 // Don't autocomplete multi-word queries that have only been seen once | 1206 // Don't autocomplete multi-word queries that have only been seen once |
| 1209 // unless the user has typed more than one word. | 1207 // unless the user has typed more than one word. |
| 1210 bool prevent_inline_autocomplete = base_prevent_inline_autocomplete || | 1208 bool prevent_inline_autocomplete = base_prevent_inline_autocomplete || |
| 1211 (!input_multiple_words && (i->visits < 2) && HasMultipleWords(i->term)); | 1209 (!input_multiple_words && (i->visits < 2) && HasMultipleWords(i->term)); |
| 1212 | 1210 |
| 1213 // Don't autocomplete search terms that would normally be treated as URLs | 1211 // Don't autocomplete search terms that would normally be treated as URLs |
| 1214 // when typed. For example, if the user searched for "google.com" and types | 1212 // when typed. For example, if the user searched for "google.com" and types |
| 1215 // "goog", don't autocomplete to the search term "google.com". Otherwise, | 1213 // "goog", don't autocomplete to the search term "google.com". Otherwise, |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1516 it->set_relevance(max_query_relevance); | 1514 it->set_relevance(max_query_relevance); |
| 1517 it->set_relevance_from_server(relevance_from_server); | 1515 it->set_relevance_from_server(relevance_from_server); |
| 1518 } | 1516 } |
| 1519 } | 1517 } |
| 1520 | 1518 |
| 1521 void SearchProvider::UpdateDone() { | 1519 void SearchProvider::UpdateDone() { |
| 1522 // We're done when the timer isn't running, there are no suggest queries | 1520 // We're done when the timer isn't running, there are no suggest queries |
| 1523 // pending, and we're not waiting on Instant. | 1521 // pending, and we're not waiting on Instant. |
| 1524 done_ = !timer_.IsRunning() && (suggest_results_pending_ == 0); | 1522 done_ = !timer_.IsRunning() && (suggest_results_pending_ == 0); |
| 1525 } | 1523 } |
| OLD | NEW |