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

Unified Diff: chrome/browser/search_engines/template_url.cc

Issue 9982018: Move most TemplateURL data members to a new struct, TemplateURLData. This allows us to eliminate t… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/browser/search_engines/template_url_fetcher.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/search_engines/template_url.cc
===================================================================
--- chrome/browser/search_engines/template_url.cc (revision 130759)
+++ chrome/browser/search_engines/template_url.cc (working copy)
@@ -22,8 +22,6 @@
#include "net/base/escape.h"
#include "ui/base/l10n/l10n_util.h"
-using content::UserMetricsAction;
-
// TODO(pastarmovj): Remove google_update_settings and user_metrics when the
// CollectRLZMetrics function is not needed anymore.
@@ -568,77 +566,90 @@
}
+// TemplateURLData ------------------------------------------------------------
+
+TemplateURLData::TemplateURLData()
+ : show_in_default_list(false),
+ safe_for_autoreplace(false),
+ id(0),
+ date_created(base::Time::Now()),
+ last_modified(base::Time::Now()),
+ created_by_policy(false),
+ usage_count(0),
+ prepopulate_id(0),
+ sync_guid(guid::GenerateGUID()),
+ autogenerate_keyword_(false),
+ keyword_generated_(false) {
+}
+
+TemplateURLData::~TemplateURLData() {
+}
+
+void TemplateURLData::SetKeyword(const string16& keyword) const {
+ // Case sensitive keyword matching is confusing. As such, we force all
+ // keywords to be lower case.
+ keyword_ = base::i18n::ToLower(keyword);
+ autogenerate_keyword_ = false;
+}
+
+const string16& TemplateURLData::keyword(const TemplateURL* t_url) const {
+ EnsureKeyword(t_url);
+ return keyword_;
+}
+
+void TemplateURLData::SetAutogenerateKeyword(bool autogenerate_keyword) const {
+ autogenerate_keyword_ = autogenerate_keyword;
+ if (autogenerate_keyword_) {
+ keyword_.clear();
+ keyword_generated_ = false;
+ }
+}
+
+void TemplateURLData::EnsureKeyword(const TemplateURL* t_url) const {
+ if (autogenerate_keyword_ && !keyword_generated_) {
+ // Generate a keyword and cache it.
+ keyword_ = base::i18n::ToLower(TemplateURLService::GenerateKeyword(
+ TemplateURLService::GenerateSearchURL(t_url).GetWithEmptyPath(), true));
+ keyword_generated_ = true;
+ }
+}
+
+void TemplateURLData::SetURL(const std::string& url) {
+ url_ = url;
+}
+
+
// TemplateURL ----------------------------------------------------------------
-TemplateURL::TemplateURL()
- : autogenerate_keyword_(false),
- keyword_generated_(false),
- show_in_default_list_(false),
- safe_for_autoreplace_(false),
- id_(0),
- date_created_(base::Time::Now()),
- last_modified_(base::Time::Now()),
- created_by_policy_(false),
- usage_count_(0),
- prepopulate_id_(0),
- sync_guid_(guid::GenerateGUID()),
+TemplateURL::TemplateURL(const TemplateURLData& data)
+ : data_(data),
url_ref_(ALLOW_THIS_IN_INITIALIZER_LIST(this), TemplateURLRef::SEARCH),
suggestions_url_ref_(ALLOW_THIS_IN_INITIALIZER_LIST(this),
TemplateURLRef::SUGGEST),
instant_url_ref_(ALLOW_THIS_IN_INITIALIZER_LIST(this),
TemplateURLRef::INSTANT) {
+ SetPrepopulateId(data_.prepopulate_id);
}
TemplateURL::TemplateURL(const TemplateURL& other)
- : short_name_(other.short_name_),
- url_(other.url_),
- suggestions_url_(other.suggestions_url_),
- instant_url_(other.instant_url_),
- originating_url_(other.originating_url_),
- keyword_(other.keyword_),
- autogenerate_keyword_(other.autogenerate_keyword_),
- keyword_generated_(other.keyword_generated_),
- show_in_default_list_(other.show_in_default_list_),
- safe_for_autoreplace_(other.safe_for_autoreplace_),
- favicon_url_(other.favicon_url_),
- input_encodings_(other.input_encodings_),
- id_(other.id_),
- date_created_(other.date_created_),
- last_modified_(other.last_modified_),
- created_by_policy_(other.created_by_policy_),
- usage_count_(other.usage_count_),
- sync_guid_(other.sync_guid_),
+ : data_(other.data_),
url_ref_(ALLOW_THIS_IN_INITIALIZER_LIST(this), TemplateURLRef::SEARCH),
suggestions_url_ref_(ALLOW_THIS_IN_INITIALIZER_LIST(this),
TemplateURLRef::SUGGEST),
instant_url_ref_(ALLOW_THIS_IN_INITIALIZER_LIST(this),
TemplateURLRef::INSTANT) {
- CopyURLRefs(other);
+ SetPrepopulateId(data_.prepopulate_id);
}
TemplateURL& TemplateURL::operator=(const TemplateURL& other) {
if (this == &other)
return *this;
- short_name_ = other.short_name_;
- url_ = other.url_;
- suggestions_url_ = other.suggestions_url_;
- instant_url_ = other.instant_url_;
- originating_url_ = other.originating_url_;
- keyword_ = other.keyword_;
- autogenerate_keyword_ = other.autogenerate_keyword_;
- keyword_generated_ = other.keyword_generated_;
- show_in_default_list_ = other.show_in_default_list_;
- safe_for_autoreplace_ = other.safe_for_autoreplace_;
- favicon_url_ = other.favicon_url_;
- input_encodings_ = other.input_encodings_;
- id_ = other.id_;
- date_created_ = other.date_created_;
- last_modified_ = other.last_modified_;
- created_by_policy_ = other.created_by_policy_;
- usage_count_ = other.usage_count_;
- sync_guid_ = other.sync_guid_;
- CopyURLRefs(other);
+ data_ = other.data_;
+ url_ref_.InvalidateCachedValues();
+ suggestions_url_ref_.InvalidateCachedValues();
+ instant_url_ref_.InvalidateCachedValues();
+ SetPrepopulateId(data_.prepopulate_id);
return *this;
}
@@ -662,60 +673,41 @@
}
string16 TemplateURL::AdjustedShortNameForLocaleDirection() const {
- string16 bidi_safe_short_name = short_name_;
+ string16 bidi_safe_short_name = data_.short_name;
base::i18n::AdjustStringForLocaleDirection(&bidi_safe_short_name);
return bidi_safe_short_name;
}
-void TemplateURL::SetURL(const std::string& url) {
- url_ = url;
- url_ref_.InvalidateCachedValues();
+bool TemplateURL::ShowInDefaultList() const {
+ return data_.show_in_default_list && url_ref_.SupportsReplacement();
}
-void TemplateURL::SetSuggestionsURL(const std::string& url) {
- suggestions_url_ = url;
- suggestions_url_ref_.InvalidateCachedValues();
+bool TemplateURL::SupportsReplacement() const {
+ UIThreadSearchTermsData search_terms_data;
+ return SupportsReplacementUsingTermsData(search_terms_data);
}
-void TemplateURL::SetInstantURL(const std::string& url) {
- instant_url_ = url;
- instant_url_ref_.InvalidateCachedValues();
+bool TemplateURL::SupportsReplacementUsingTermsData(
+ const SearchTermsData& search_terms_data) const {
+ return url_ref_.SupportsReplacementUsingTermsData(search_terms_data);
}
-void TemplateURL::set_keyword(const string16& keyword) {
- // Case sensitive keyword matching is confusing. As such, we force all
- // keywords to be lower case.
- keyword_ = base::i18n::ToLower(keyword);
- autogenerate_keyword_ = false;
+std::string TemplateURL::GetExtensionId() const {
+ DCHECK(IsExtensionKeyword());
+ return GURL(data_.url()).host();
}
-const string16& TemplateURL::keyword() const {
- EnsureKeyword();
- return keyword_;
+bool TemplateURL::IsExtensionKeyword() const {
+ return GURL(data_.url()).SchemeIs(chrome::kExtensionScheme);
}
-void TemplateURL::EnsureKeyword() const {
- if (autogenerate_keyword_ && !keyword_generated_) {
- // Generate a keyword and cache it.
- keyword_ = TemplateURLService::GenerateKeyword(
- TemplateURLService::GenerateSearchURL(this).GetWithEmptyPath(), true);
- keyword_generated_ = true;
- }
-}
-
-bool TemplateURL::ShowInDefaultList() const {
- return show_in_default_list() && url_ref_.SupportsReplacement();
-}
-
-void TemplateURL::CopyURLRefs(const TemplateURL& other) {
+void TemplateURL::SetURL(const std::string& url) {
+ data_.SetURL(url);
url_ref_.InvalidateCachedValues();
- suggestions_url_ref_.InvalidateCachedValues();
- instant_url_ref_.InvalidateCachedValues();
- SetPrepopulateId(other.prepopulate_id_);
}
void TemplateURL::SetPrepopulateId(int id) {
- prepopulate_id_ = id;
+ data_.prepopulate_id = id;
const bool prepopulated = id > 0;
suggestions_url_ref_.prepopulated_ = prepopulated;
url_ref_.prepopulated_ = prepopulated;
@@ -726,27 +718,5 @@
url_ref_.InvalidateCachedValues();
suggestions_url_ref_.InvalidateCachedValues();
instant_url_ref_.InvalidateCachedValues();
- if (autogenerate_keyword_) {
- keyword_.clear();
- keyword_generated_ = false;
- }
+ data_.SetAutogenerateKeyword(data_.autogenerate_keyword());
}
-
-bool TemplateURL::SupportsReplacement() const {
- UIThreadSearchTermsData search_terms_data;
- return SupportsReplacementUsingTermsData(search_terms_data);
-}
-
-bool TemplateURL::SupportsReplacementUsingTermsData(
- const SearchTermsData& search_terms_data) const {
- return url_ref_.SupportsReplacementUsingTermsData(search_terms_data);
-}
-
-std::string TemplateURL::GetExtensionId() const {
- DCHECK(IsExtensionKeyword());
- return GURL(url_).host();
-}
-
-bool TemplateURL::IsExtensionKeyword() const {
- return GURL(url_).SchemeIs(chrome::kExtensionScheme);
-}
« no previous file with comments | « chrome/browser/search_engines/template_url.h ('k') | chrome/browser/search_engines/template_url_fetcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698