| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/histogram.h" | 10 #include "base/histogram.h" |
| (...skipping 729 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 740 } | 740 } |
| 741 } | 741 } |
| 742 | 742 |
| 743 void HistoryURLProvider::CullRedirects(history::HistoryBackend* backend, | 743 void HistoryURLProvider::CullRedirects(history::HistoryBackend* backend, |
| 744 HistoryMatches* matches, | 744 HistoryMatches* matches, |
| 745 size_t max_results) const { | 745 size_t max_results) const { |
| 746 for (size_t source = 0; | 746 for (size_t source = 0; |
| 747 (source < matches->size()) && (source < max_results); ) { | 747 (source < matches->size()) && (source < max_results); ) { |
| 748 const GURL& url = (*matches)[source].url_info.url(); | 748 const GURL& url = (*matches)[source].url_info.url(); |
| 749 // TODO(brettw) this should go away when everything uses GURL. | 749 // TODO(brettw) this should go away when everything uses GURL. |
| 750 HistoryService::RedirectList redirects; | 750 history::RedirectList redirects; |
| 751 backend->GetMostRecentRedirectsFrom(url, &redirects); | 751 backend->GetMostRecentRedirectsFrom(url, &redirects); |
| 752 if (!redirects.empty()) { | 752 if (!redirects.empty()) { |
| 753 // Remove all but the first occurrence of any of these redirects in the | 753 // Remove all but the first occurrence of any of these redirects in the |
| 754 // search results. We also must add the URL we queried for, since it may | 754 // search results. We also must add the URL we queried for, since it may |
| 755 // not be the first match and we'd want to remove it. | 755 // not be the first match and we'd want to remove it. |
| 756 // | 756 // |
| 757 // For example, when A redirects to B and our matches are [A, X, B], | 757 // For example, when A redirects to B and our matches are [A, X, B], |
| 758 // we'll get B as the redirects from, and we want to remove the second | 758 // we'll get B as the redirects from, and we want to remove the second |
| 759 // item of that pair, removing B. If A redirects to B and our matches are | 759 // item of that pair, removing B. If A redirects to B and our matches are |
| 760 // [B, X, A], we'll want to remove A instead. | 760 // [B, X, A], we'll want to remove A instead. |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 832 history_match.input_location - offset, params->input.text().length(), | 832 history_match.input_location - offset, params->input.text().length(), |
| 833 match.contents.length(), ACMatchClassification::URL, | 833 match.contents.length(), ACMatchClassification::URL, |
| 834 &match.contents_class); | 834 &match.contents_class); |
| 835 match.description = info.title(); | 835 match.description = info.title(); |
| 836 AutocompleteMatch::ClassifyMatchInString(params->input.text(), info.title(), | 836 AutocompleteMatch::ClassifyMatchInString(params->input.text(), info.title(), |
| 837 ACMatchClassification::NONE, | 837 ACMatchClassification::NONE, |
| 838 &match.description_class); | 838 &match.description_class); |
| 839 | 839 |
| 840 return match; | 840 return match; |
| 841 } | 841 } |
| OLD | NEW |