OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
809 } | 809 } |
810 | 810 |
811 void SearchProvider::AddMatchToMap(const string16& query_string, | 811 void SearchProvider::AddMatchToMap(const string16& query_string, |
812 const string16& input_text, | 812 const string16& input_text, |
813 int relevance, | 813 int relevance, |
814 AutocompleteMatch::Type type, | 814 AutocompleteMatch::Type type, |
815 int accepted_suggestion, | 815 int accepted_suggestion, |
816 bool is_keyword, | 816 bool is_keyword, |
817 bool prevent_inline_autocomplete, | 817 bool prevent_inline_autocomplete, |
818 MatchMap* map) { | 818 MatchMap* map) { |
819 AutocompleteMatch match(this, relevance, false, type); | 819 // TODO(dominich): Confidence. In this case, the confidence must depend on the |
| 820 // source. Scored terms can be calculated based on score, but other sources |
| 821 // need more care. Eg, suggest. |
| 822 AutocompleteMatch match(this, relevance, 0.0f, false, type); |
820 std::vector<size_t> content_param_offsets; | 823 std::vector<size_t> content_param_offsets; |
821 const TemplateURL& provider = is_keyword ? providers_.keyword_provider() : | 824 const TemplateURL& provider = is_keyword ? providers_.keyword_provider() : |
822 providers_.default_provider(); | 825 providers_.default_provider(); |
823 match.template_url = &provider; | 826 match.template_url = &provider; |
824 match.contents.assign(query_string); | 827 match.contents.assign(query_string); |
825 // We do intra-string highlighting for suggestions - the suggested segment | 828 // We do intra-string highlighting for suggestions - the suggested segment |
826 // will be highlighted, e.g. for input_text = "you" the suggestion may be | 829 // will be highlighted, e.g. for input_text = "you" the suggestion may be |
827 // "youtube", so we'll bold the "tube" section: you*tube*. | 830 // "youtube", so we'll bold the "tube" section: you*tube*. |
828 if (input_text != query_string) { | 831 if (input_text != query_string) { |
829 size_t input_position = match.contents.find(input_text); | 832 size_t input_position = match.contents.find(input_text); |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
910 if (!i.second && (match.relevance > i.first->second.relevance)) | 913 if (!i.second && (match.relevance > i.first->second.relevance)) |
911 i.first->second = match; | 914 i.first->second = match; |
912 } | 915 } |
913 | 916 |
914 AutocompleteMatch SearchProvider::NavigationToMatch( | 917 AutocompleteMatch SearchProvider::NavigationToMatch( |
915 const NavigationResult& navigation, | 918 const NavigationResult& navigation, |
916 int relevance, | 919 int relevance, |
917 bool is_keyword) { | 920 bool is_keyword) { |
918 const string16& input_text = | 921 const string16& input_text = |
919 is_keyword ? keyword_input_text_ : input_.text(); | 922 is_keyword ? keyword_input_text_ : input_.text(); |
920 AutocompleteMatch match(this, relevance, false, | 923 // TODO(dominich): Confidence calculation. |
| 924 AutocompleteMatch match(this, relevance, 0.0f, false, |
921 AutocompleteMatch::NAVSUGGEST); | 925 AutocompleteMatch::NAVSUGGEST); |
922 match.destination_url = navigation.url; | 926 match.destination_url = navigation.url; |
923 match.contents = | 927 match.contents = |
924 StringForURLDisplay(navigation.url, true, !HasHTTPScheme(input_text)); | 928 StringForURLDisplay(navigation.url, true, !HasHTTPScheme(input_text)); |
925 AutocompleteMatch::ClassifyMatchInString(input_text, match.contents, | 929 AutocompleteMatch::ClassifyMatchInString(input_text, match.contents, |
926 ACMatchClassification::URL, | 930 ACMatchClassification::URL, |
927 &match.contents_class); | 931 &match.contents_class); |
928 | 932 |
929 match.description = navigation.site_name; | 933 match.description = navigation.site_name; |
930 AutocompleteMatch::ClassifyMatchInString(input_text, navigation.site_name, | 934 AutocompleteMatch::ClassifyMatchInString(input_text, navigation.site_name, |
(...skipping 13 matching lines...) Expand all Loading... |
944 | 948 |
945 return match; | 949 return match; |
946 } | 950 } |
947 | 951 |
948 void SearchProvider::UpdateDone() { | 952 void SearchProvider::UpdateDone() { |
949 // We're done when there are no more suggest queries pending (this is set to 1 | 953 // We're done when there are no more suggest queries pending (this is set to 1 |
950 // when the timer is started) and we're not waiting on instant. | 954 // when the timer is started) and we're not waiting on instant. |
951 done_ = ((suggest_results_pending_ == 0) && | 955 done_ = ((suggest_results_pending_ == 0) && |
952 (instant_finalized_ || !InstantController::IsEnabled(profile_))); | 956 (instant_finalized_ || !InstantController::IsEnabled(profile_))); |
953 } | 957 } |
OLD | NEW |