| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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/history_url_provider.h" | 5 #include "chrome/browser/autocomplete/history_url_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 627 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 638 if (best_prefix == NULL) { | 638 if (best_prefix == NULL) { |
| 639 AutocompleteMatch::ClassifyMatchInString(text, match.contents, | 639 AutocompleteMatch::ClassifyMatchInString(text, match.contents, |
| 640 ACMatchClassification::URL, | 640 ACMatchClassification::URL, |
| 641 &match.contents_class); | 641 &match.contents_class); |
| 642 } else { | 642 } else { |
| 643 AutocompleteMatch::ClassifyLocationInString( | 643 AutocompleteMatch::ClassifyLocationInString( |
| 644 best_prefix->prefix.length() - offset, text.length(), | 644 best_prefix->prefix.length() - offset, text.length(), |
| 645 match.contents.length(), ACMatchClassification::URL, | 645 match.contents.length(), ACMatchClassification::URL, |
| 646 &match.contents_class); | 646 &match.contents_class); |
| 647 } | 647 } |
| 648 | |
| 649 match.is_history_what_you_typed_match = true; | |
| 650 } | 648 } |
| 651 | 649 |
| 652 return match; | 650 return match; |
| 653 } | 651 } |
| 654 | 652 |
| 655 void HistoryURLProvider::ExecuteWithDB(HistoryURLProviderParams* params, | 653 void HistoryURLProvider::ExecuteWithDB(HistoryURLProviderParams* params, |
| 656 history::HistoryBackend* backend, | 654 history::HistoryBackend* backend, |
| 657 history::URLDatabase* db) { | 655 history::URLDatabase* db) { |
| 658 // We may get called with a NULL database if it couldn't be properly | 656 // We may get called with a NULL database if it couldn't be properly |
| 659 // initialized. | 657 // initialized. |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 ((params->input.type() != metrics::OmniboxInputType::UNKNOWN) || | 769 ((params->input.type() != metrics::OmniboxInputType::UNKNOWN) || |
| 772 (classifier.type() == VisitClassifier::UNVISITED_INTRANET) || | 770 (classifier.type() == VisitClassifier::UNVISITED_INTRANET) || |
| 773 !params->trim_http || | 771 !params->trim_http || |
| 774 (AutocompleteInput::NumNonHostComponents(params->input.parts()) > 0) || | 772 (AutocompleteInput::NumNonHostComponents(params->input.parts()) > 0) || |
| 775 !params->default_search_provider); | 773 !params->default_search_provider); |
| 776 const bool have_shorter_suggestion_suitable_for_inline_autocomplete = | 774 const bool have_shorter_suggestion_suitable_for_inline_autocomplete = |
| 777 PromoteOrCreateShorterSuggestion(db, params); | 775 PromoteOrCreateShorterSuggestion(db, params); |
| 778 | 776 |
| 779 // Check whether what the user typed appears in history. | 777 // Check whether what the user typed appears in history. |
| 780 const bool can_check_history_for_exact_match = | 778 const bool can_check_history_for_exact_match = |
| 781 // Checking what_you_typed_match.is_history_what_you_typed_match tells us | 779 // Checking what_you_typed_match.allowed_to_be_default_match tells us |
| 782 // whether SuggestExactInput() succeeded in constructing a valid match. | 780 // whether SuggestExactInput() succeeded in constructing a valid match. |
| 783 params->what_you_typed_match.is_history_what_you_typed_match && | 781 params->what_you_typed_match.allowed_to_be_default_match && |
| 784 // Additionally, in the case where the user has typed "foo.com" and | 782 // Additionally, in the case where the user has typed "foo.com" and |
| 785 // visited (but not typed) "foo/", and the input is "foo", the first pass | 783 // visited (but not typed) "foo/", and the input is "foo", the first pass |
| 786 // will fall into the FRONT_HISTORY_MATCH case for "foo.com" but the | 784 // will fall into the FRONT_HISTORY_MATCH case for "foo.com" but the |
| 787 // second pass can suggest the exact input as a better URL. Since we need | 785 // second pass can suggest the exact input as a better URL. Since we need |
| 788 // both passes to agree, and since during the first pass there's no way to | 786 // both passes to agree, and since during the first pass there's no way to |
| 789 // know about "foo/", ensure that if the promote type was set to | 787 // know about "foo/", ensure that if the promote type was set to |
| 790 // FRONT_HISTORY_MATCH during the first pass, the second pass will not | 788 // FRONT_HISTORY_MATCH during the first pass, the second pass will not |
| 791 // consider the exact suggestion to be in history and therefore will not | 789 // consider the exact suggestion to be in history and therefore will not |
| 792 // suggest the exact input as a better match. (Note that during the first | 790 // suggest the exact input as a better match. (Note that during the first |
| 793 // pass, this conditional will always succeed since |promote_type| is | 791 // pass, this conditional will always succeed since |promote_type| is |
| (...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1181 AutocompleteMatch::ClassifyLocationInString(base::string16::npos, 0, | 1179 AutocompleteMatch::ClassifyLocationInString(base::string16::npos, 0, |
| 1182 match.contents.length(), ACMatchClassification::URL, | 1180 match.contents.length(), ACMatchClassification::URL, |
| 1183 &match.contents_class); | 1181 &match.contents_class); |
| 1184 } | 1182 } |
| 1185 match.description = info.title(); | 1183 match.description = info.title(); |
| 1186 match.description_class = | 1184 match.description_class = |
| 1187 ClassifyDescription(params.input.text(), match.description); | 1185 ClassifyDescription(params.input.text(), match.description); |
| 1188 RecordAdditionalInfoFromUrlRow(info, &match); | 1186 RecordAdditionalInfoFromUrlRow(info, &match); |
| 1189 return match; | 1187 return match; |
| 1190 } | 1188 } |
| OLD | NEW |