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

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

Issue 226283009: Make AutocompleteInput::Parse() more strict: return QUERY for all inputs that (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 8 months 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
OLDNEW
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 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
502 // 502 //
503 // We display this to the user when there's a reasonable chance they actually 503 // We display this to the user when there's a reasonable chance they actually
504 // care: 504 // care:
505 // * Their input can be opened as a URL, and 505 // * Their input can be opened as a URL, and
506 // * We parsed the input as a URL, or it starts with an explicit "http:" or 506 // * We parsed the input as a URL, or it starts with an explicit "http:" or
507 // "https:". 507 // "https:".
508 // that is when their input can be opened as a URL. 508 // that is when their input can be opened as a URL.
509 // Otherwise, this is just low-quality noise. In the cases where we've parsed 509 // Otherwise, this is just low-quality noise. In the cases where we've parsed
510 // as UNKNOWN, we'll still show an accidental search infobar if need be. 510 // as UNKNOWN, we'll still show an accidental search infobar if need be.
511 bool have_what_you_typed_match = 511 bool have_what_you_typed_match =
512 params->input.canonicalized_url().is_valid() &&
513 (params->input.type() != AutocompleteInput::QUERY) && 512 (params->input.type() != AutocompleteInput::QUERY) &&
514 ((params->input.type() != AutocompleteInput::UNKNOWN) || 513 ((params->input.type() != AutocompleteInput::UNKNOWN) ||
515 (classifier.type() == VisitClassifier::UNVISITED_INTRANET) || 514 (classifier.type() == VisitClassifier::UNVISITED_INTRANET) ||
516 !params->trim_http || 515 !params->trim_http ||
517 (AutocompleteInput::NumNonHostComponents(params->input.parts()) > 0)); 516 (AutocompleteInput::NumNonHostComponents(params->input.parts()) > 0));
518 AutocompleteMatch what_you_typed_match(SuggestExactInput( 517 AutocompleteMatch what_you_typed_match(SuggestExactInput(
519 params->input.text(), params->input.canonicalized_url(), 518 params->input.text(), params->input.canonicalized_url(),
520 params->trim_http)); 519 params->trim_http));
521 what_you_typed_match.relevance = CalculateRelevance(WHAT_YOU_TYPED, 0); 520 what_you_typed_match.relevance = CalculateRelevance(WHAT_YOU_TYPED, 0);
522 521
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 if ((input.type() == AutocompleteInput::INVALID) || 693 if ((input.type() == AutocompleteInput::INVALID) ||
695 (input.type() == AutocompleteInput::FORCED_QUERY)) 694 (input.type() == AutocompleteInput::FORCED_QUERY))
696 return; 695 return;
697 696
698 // Create a match for exactly what the user typed. This will only be used as 697 // Create a match for exactly what the user typed. This will only be used as
699 // a fallback in case we can't get the history service or URL DB; otherwise, 698 // a fallback in case we can't get the history service or URL DB; otherwise,
700 // we'll run this again in DoAutocomplete() and use that result instead. 699 // we'll run this again in DoAutocomplete() and use that result instead.
701 const bool trim_http = !AutocompleteInput::HasHTTPScheme(input.text()); 700 const bool trim_http = !AutocompleteInput::HasHTTPScheme(input.text());
702 // Don't do this for queries -- while we can sometimes mark up a match for 701 // Don't do this for queries -- while we can sometimes mark up a match for
703 // this, it's not what the user wants, and just adds noise. 702 // this, it's not what the user wants, and just adds noise.
704 if ((input.type() != AutocompleteInput::QUERY) && 703 if (input.type() != AutocompleteInput::QUERY) {
705 input.canonicalized_url().is_valid()) {
706 AutocompleteMatch what_you_typed(SuggestExactInput( 704 AutocompleteMatch what_you_typed(SuggestExactInput(
707 input.text(), input.canonicalized_url(), trim_http)); 705 input.text(), input.canonicalized_url(), trim_http));
708 what_you_typed.relevance = CalculateRelevance(WHAT_YOU_TYPED, 0); 706 what_you_typed.relevance = CalculateRelevance(WHAT_YOU_TYPED, 0);
709 matches_.push_back(what_you_typed); 707 matches_.push_back(what_you_typed);
710 } 708 }
711 709
712 // We'll need the history service to run both passes, so try to obtain it. 710 // We'll need the history service to run both passes, so try to obtain it.
713 if (!profile_) 711 if (!profile_)
714 return; 712 return;
715 HistoryService* const history_service = 713 HistoryService* const history_service =
(...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 // If HistoryURL retrieves any matches (and hence we reach this code), we 1156 // If HistoryURL retrieves any matches (and hence we reach this code), we
1159 // are guaranteed that the beginning of input_text must be a word break. 1157 // are guaranteed that the beginning of input_text must be a word break.
1160 history::WordStarts offsets(1, 0u); 1158 history::WordStarts offsets(1, 0u);
1161 description_matches = 1159 description_matches =
1162 history::ScoredHistoryMatch::FilterTermMatchesByWordStarts( 1160 history::ScoredHistoryMatch::FilterTermMatchesByWordStarts(
1163 description_matches, offsets, description_word_starts, 0, 1161 description_matches, offsets, description_word_starts, 0,
1164 std::string::npos); 1162 std::string::npos);
1165 return SpansFromTermMatch( 1163 return SpansFromTermMatch(
1166 description_matches, clean_description.length(), false); 1164 description_matches, clean_description.length(), false);
1167 } 1165 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698