Index: components/search_engines/template_url_parser.cc |
diff --git a/components/search_engines/template_url_parser.cc b/components/search_engines/template_url_parser.cc |
index 9c93747b27b419ef410f78226027f78762959461..e3eec92f67d54ad73816851fa771332f1518a6eb 100644 |
--- a/components/search_engines/template_url_parser.cc |
+++ b/components/search_engines/template_url_parser.cc |
@@ -13,6 +13,7 @@ |
#include "base/logging.h" |
#include "base/macros.h" |
+#include "base/memory/ptr_util.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/string_util.h" |
#include "base/strings/utf_string_conversions.h" |
@@ -140,12 +141,13 @@ class TemplateURLParsingContext { |
static void EndElementImpl(void* ctx, const xmlChar* name); |
static void CharactersImpl(void* ctx, const xmlChar* ch, int len); |
- // Returns a heap-allocated TemplateURL representing the result of parsing. |
- // This will be NULL if parsing failed or if the results were invalid for some |
- // reason (e.g. the resulting URL was not HTTP[S], a name wasn't supplied, |
- // a resulting TemplateURLRef was invalid, etc.). |
- TemplateURL* GetTemplateURL(const SearchTermsData& search_terms_data, |
- bool show_in_default_list); |
+ // Returns a TemplateURL representing the result of parsing. This will be |
+ // null if parsing failed or if the results were invalid for some reason (e.g. |
+ // the resulting URL was not HTTP[S], a name wasn't supplied, a resulting |
+ // TemplateURLRef was invalid, etc.). |
+ std::unique_ptr<TemplateURL> GetTemplateURL( |
+ const SearchTermsData& search_terms_data, |
+ bool show_in_default_list); |
private: |
// Key is UTF8 encoded. |
@@ -299,14 +301,14 @@ void TemplateURLParsingContext::CharactersImpl(void* ctx, |
base::StringPiece(reinterpret_cast<const char*>(ch), len)); |
} |
-TemplateURL* TemplateURLParsingContext::GetTemplateURL( |
+std::unique_ptr<TemplateURL> TemplateURLParsingContext::GetTemplateURL( |
const SearchTermsData& search_terms_data, |
bool show_in_default_list) { |
// TODO(jcampan): Support engines that use POST; see http://crbug.com/18107 |
if (method_ == TemplateURLParsingContext::POST || |
data_.short_name().empty() || !IsHTTPRef(data_.url()) || |
!IsHTTPRef(data_.suggestions_url)) |
- return NULL; |
+ return nullptr; |
if (suggestion_method_ == TemplateURLParsingContext::POST) |
data_.suggestions_url.clear(); |
@@ -324,15 +326,16 @@ TemplateURL* TemplateURLParsingContext::GetTemplateURL( |
data_.show_in_default_list = show_in_default_list; |
// Bail if the search URL is empty or if either TemplateURLRef is invalid. |
- std::unique_ptr<TemplateURL> template_url(new TemplateURL(data_)); |
+ std::unique_ptr<TemplateURL> template_url = |
+ base::MakeUnique<TemplateURL>(data_); |
if (template_url->url().empty() || |
!template_url->url_ref().IsValid(search_terms_data) || |
(!template_url->suggestions_url().empty() && |
!template_url->suggestions_url_ref().IsValid(search_terms_data))) { |
- return NULL; |
+ return nullptr; |
} |
- return template_url.release(); |
+ return template_url; |
} |
// static |
@@ -490,7 +493,7 @@ TemplateURLParsingContext::ElementType |
// TemplateURLParser ---------------------------------------------------------- |
// static |
-TemplateURL* TemplateURLParser::Parse( |
+std::unique_ptr<TemplateURL> TemplateURLParser::Parse( |
const SearchTermsData& search_terms_data, |
bool show_in_default_list, |
const char* data, |
@@ -511,6 +514,6 @@ TemplateURL* TemplateURLParser::Parse( |
static_cast<int>(length)); |
xmlSubstituteEntitiesDefault(last_sub_entities_value); |
- return error ? |
- NULL : context.GetTemplateURL(search_terms_data, show_in_default_list); |
+ return error ? nullptr : context.GetTemplateURL(search_terms_data, |
+ show_in_default_list); |
} |