Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(294)

Side by Side Diff: chrome/browser/autocomplete/history_url_provider.cc

Issue 8497050: Correctly score intranet URLs with typed_counts of 0 as UNVISITED_INTRANET if they are on known h... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/autocomplete/history_url_provider_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/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 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 case VisitClassifier::VISITED: 698 case VisitClassifier::VISITED:
699 // We have data for this match, use it. 699 // We have data for this match, use it.
700 match->deletable = true; 700 match->deletable = true;
701 match->description = classifier.url_row().title(); 701 match->description = classifier.url_row().title();
702 AutocompleteMatch::ClassifyMatchInString( 702 AutocompleteMatch::ClassifyMatchInString(
703 input.text(), 703 input.text(),
704 classifier.url_row().title(), 704 classifier.url_row().title(),
705 ACMatchClassification::NONE, &match->description_class); 705 ACMatchClassification::NONE, &match->description_class);
706 if (!classifier.url_row().typed_count()) { 706 if (!classifier.url_row().typed_count()) {
707 // If we reach here, we must be in the second pass, and we must not have 707 // If we reach here, we must be in the second pass, and we must not have
708 // promoted this match as an exact match during the first pass. That 708 // this row's data available during the first pass. That means we
709 // means it will have been outscored by the "search what you typed 709 // either scored it as WHAT_YOU_TYPED or UNVISITED_INTRANET, and to
710 // match". We need to maintain that ordering in order to not make the 710 // maintain the ordering between passes consistent, we need to score it
711 // destination for the user's typing change depending on when they hit 711 // the same way here.
712 // enter. So lower the score here enough to let the search provider 712 type = CanFindIntranetURL(db, input) ?
713 // continue to outscore this match. 713 UNVISITED_INTRANET : WHAT_YOU_TYPED;
714 type = WHAT_YOU_TYPED;
715 } 714 }
716 break; 715 break;
717 case VisitClassifier::UNVISITED_INTRANET: 716 case VisitClassifier::UNVISITED_INTRANET:
718 type = UNVISITED_INTRANET; 717 type = UNVISITED_INTRANET;
719 break; 718 break;
720 default: 719 default:
721 DCHECK_EQ(VisitClassifier::UNVISITED, classifier.type()); 720 DCHECK_EQ(VisitClassifier::UNVISITED, classifier.type());
722 break; 721 break;
723 } 722 }
724 723
(...skipping 20 matching lines...) Expand all
745 // Normally passing the first two conditions below ought to guarantee the 744 // Normally passing the first two conditions below ought to guarantee the
746 // third condition, but because FixupUserInput() can run and modify the 745 // third condition, but because FixupUserInput() can run and modify the
747 // input's text and parts between Parse() and here, it seems better to be 746 // input's text and parts between Parse() and here, it seems better to be
748 // paranoid and check. 747 // paranoid and check.
749 if ((input.type() != AutocompleteInput::UNKNOWN) || 748 if ((input.type() != AutocompleteInput::UNKNOWN) ||
750 !LowerCaseEqualsASCII(input.scheme(), chrome::kHttpScheme) || 749 !LowerCaseEqualsASCII(input.scheme(), chrome::kHttpScheme) ||
751 !input.parts().host.is_nonempty()) 750 !input.parts().host.is_nonempty())
752 return false; 751 return false;
753 const std::string host(UTF16ToUTF8( 752 const std::string host(UTF16ToUTF8(
754 input.text().substr(input.parts().host.begin, input.parts().host.len))); 753 input.text().substr(input.parts().host.begin, input.parts().host.len)));
755 if (net::RegistryControlledDomainService::GetRegistryLength(host, false) != 0) 754 return (net::RegistryControlledDomainService::GetRegistryLength(host,
756 return false; 755 false) == 0) && db->IsTypedHost(host);
757 return db->IsTypedHost(host);
758 } 756 }
759 757
760 bool HistoryURLProvider::PromoteMatchForInlineAutocomplete( 758 bool HistoryURLProvider::PromoteMatchForInlineAutocomplete(
761 HistoryURLProviderParams* params, 759 HistoryURLProviderParams* params,
762 const history::HistoryMatch& match, 760 const history::HistoryMatch& match,
763 const history::HistoryMatches& matches) { 761 const history::HistoryMatches& matches) {
764 // Promote the first match if it's been typed at least n times, where n == 1 762 // Promote the first match if it's been typed at least n times, where n == 1
765 // for "simple" (host-only) URLs and n == 2 for others. We set a higher bar 763 // for "simple" (host-only) URLs and n == 2 for others. We set a higher bar
766 // for these long URLs because it's less likely that users will want to visit 764 // for these long URLs because it's less likely that users will want to visit
767 // them again. Even though we don't increment the typed_count for pasted-in 765 // them again. Even though we don't increment the typed_count for pasted-in
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 &match.contents_class); 931 &match.contents_class);
934 } 932 }
935 match.description = info.title(); 933 match.description = info.title();
936 AutocompleteMatch::ClassifyMatchInString(params->input.text(), 934 AutocompleteMatch::ClassifyMatchInString(params->input.text(),
937 info.title(), 935 info.title(),
938 ACMatchClassification::NONE, 936 ACMatchClassification::NONE,
939 &match.description_class); 937 &match.description_class);
940 938
941 return match; 939 return match;
942 } 940 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/autocomplete/history_url_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698