Chromium Code Reviews| Index: chrome/browser/search_engines/template_url_parser.cc |
| diff --git a/chrome/browser/search_engines/template_url_parser.cc b/chrome/browser/search_engines/template_url_parser.cc |
| index 8f6db40776b6e7ac27ee8be9d594bb0b82ebede9..9ab4a1e9a70d30a273e2bed1b349f21b20607826 100644 |
| --- a/chrome/browser/search_engines/template_url_parser.cc |
| +++ b/chrome/browser/search_engines/template_url_parser.cc |
| @@ -13,6 +13,7 @@ |
| #include "base/string_util.h" |
| #include "base/strings/string_number_conversions.h" |
| #include "base/utf_string_conversions.h" |
| +#include "chrome/browser/search_engines/search_terms_data.h" |
| #include "chrome/browser/search_engines/template_url.h" |
| #include "chrome/browser/search_engines/template_url_service.h" |
| #include "chrome/common/url_constants.h" |
| @@ -309,10 +310,19 @@ TemplateURL* TemplateURLParsingContext::GetTemplateURL( |
| // Bail if the search URL is empty or if either TemplateURLRef is invalid. |
| scoped_ptr<TemplateURL> template_url(new TemplateURL(profile, data_)); |
| - if (template_url->url().empty() || !template_url->url_ref().IsValid() || |
| + // Do not use a UIThreadSearchTermsData if a profile wasn't provided as it |
| + // results in the same thing (relevant UIThreadSearchTermsData methods default |
| + // to SearchTermsData methods when the profile is NULL), but prevents |
| + // validity checks on non-UI threads. |
|
Peter Kasting
2013/04/17 22:50:06
This comment is extremely confusing. I would remo
gab
2013/04/18 15:00:27
Done.
|
| + scoped_ptr<SearchTermsData> search_terms_data(profile ? |
| + new UIThreadSearchTermsData(profile) : new SearchTermsData()); |
| + if (template_url->url().empty() || |
| + !template_url->url_ref().IsValidUsingTermsData(*search_terms_data) || |
| (!template_url->suggestions_url().empty() && |
| - !template_url->suggestions_url_ref().IsValid())) |
| + !template_url->suggestions_url_ref(). |
| + IsValidUsingTermsData(*search_terms_data))) { |
| return NULL; |
| + } |
| return template_url.release(); |
| } |