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

Unified Diff: chrome/browser/autocomplete/search_provider.cc

Issue 10908044: Refuse invalid SearchProvider and OSDD suggest URLs; etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Restore GURL validity DCHECKs, fix comment. Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/autocomplete/search_provider.h ('k') | chrome/browser/search_engines/template_url_parser.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/autocomplete/search_provider.cc
diff --git a/chrome/browser/autocomplete/search_provider.cc b/chrome/browser/autocomplete/search_provider.cc
index 3795df0e834fca1daa2054176615df105a8ac95b..d2d47a04ad0df42323a248c1558484bfa4df5d85 100644
--- a/chrome/browser/autocomplete/search_provider.cc
+++ b/chrome/browser/autocomplete/search_provider.cc
@@ -312,20 +312,11 @@ void SearchProvider::Run() {
DCHECK(!done_);
suggest_results_pending_ = 0;
time_suggest_request_sent_ = base::TimeTicks::Now();
- const TemplateURL* default_url = providers_.GetDefaultProviderURL();
- if (default_url && !default_url->suggestions_url().empty()) {
- suggest_results_pending_++;
- LogOmniboxSuggestRequest(REQUEST_SENT);
- default_fetcher_.reset(CreateSuggestFetcher(kDefaultProviderURLFetcherID,
- default_url->suggestions_url_ref(), input_.text()));
- }
- const TemplateURL* keyword_url = providers_.GetKeywordProviderURL();
- if (keyword_url && !keyword_url->suggestions_url().empty()) {
- suggest_results_pending_++;
- LogOmniboxSuggestRequest(REQUEST_SENT);
- keyword_fetcher_.reset(CreateSuggestFetcher(kKeywordProviderURLFetcherID,
- keyword_url->suggestions_url_ref(), keyword_input_text_));
- }
+
+ default_fetcher_.reset(CreateSuggestFetcher(kDefaultProviderURLFetcherID,
+ providers_.GetDefaultProviderURL(), input_.text()));
+ keyword_fetcher_.reset(CreateSuggestFetcher(kKeywordProviderURLFetcherID,
+ providers_.GetKeywordProviderURL(), keyword_input_text_));
// Both the above can fail if the providers have been modified or deleted
// since the query began.
@@ -641,13 +632,22 @@ void SearchProvider::ApplyCalculatedNavigationRelevance(NavigationResults* list,
net::URLFetcher* SearchProvider::CreateSuggestFetcher(
int id,
- const TemplateURLRef& suggestions_url,
+ const TemplateURL* template_url,
const string16& text) {
- DCHECK(suggestions_url.SupportsReplacement());
- net::URLFetcher* fetcher = net::URLFetcher::Create(id,
- GURL(suggestions_url.ReplaceSearchTerms(
- TemplateURLRef::SearchTermsArgs(text))),
- net::URLFetcher::GET, this);
+ if (!template_url || template_url->suggestions_url().empty())
+ return NULL;
+
+ // Bail if the suggestion URL is invalid with the given replacements.
+ GURL suggest_url(template_url->suggestions_url_ref().ReplaceSearchTerms(
+ TemplateURLRef::SearchTermsArgs(text)));
+ if (!suggest_url.is_valid())
+ return NULL;
+
+ suggest_results_pending_++;
+ LogOmniboxSuggestRequest(REQUEST_SENT);
+
+ net::URLFetcher* fetcher =
+ net::URLFetcher::Create(id, suggest_url, net::URLFetcher::GET, this);
fetcher->SetRequestContext(profile_->GetRequestContext());
fetcher->SetLoadFlags(net::LOAD_DO_NOT_SAVE_COOKIES);
fetcher->Start();
« no previous file with comments | « chrome/browser/autocomplete/search_provider.h ('k') | chrome/browser/search_engines/template_url_parser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698