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

Unified Diff: chrome/browser/webdata/keyword_table.cc

Issue 10021008: Reland r131019: Move most TemplateURL data members to a new struct, TemplateURLData. This allows us… (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/webdata/keyword_table.h ('k') | chrome/browser/webdata/keyword_table_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/webdata/keyword_table.cc
===================================================================
--- chrome/browser/webdata/keyword_table.cc (revision 131175)
+++ chrome/browser/webdata/keyword_table.cc (working copy)
@@ -47,37 +47,38 @@
"suggest_url || prepopulate_id || autogenerate_keyword || logo_id || "
"created_by_policy || instant_url || last_modified || sync_guid";
-// Inserts the data from |url| into |s|. |s| is assumed to have slots for all
+// Inserts the data from |data| into |s|. |s| is assumed to have slots for all
// the columns in the keyword table. |id_column| is the slot number to bind
-// |url|'s id() to; |starting_column| is the slot number of the first of a
+// |data|'s id() to; |starting_column| is the slot number of the first of a
// contiguous set of slots to bind all the other fields to.
void BindURLToStatement(const TemplateURL& url,
sql::Statement* s,
int id_column,
int starting_column) {
- s->BindInt64(id_column, url.id());
- s->BindString16(starting_column, url.short_name());
- s->BindString16(starting_column + 1, url.keyword());
- s->BindString(starting_column + 2, url.favicon_url().is_valid() ?
- history::HistoryDatabase::GURLToDatabaseURL(url.favicon_url()) :
+ const TemplateURLData& data = url.data();
+ s->BindInt64(id_column, data.id);
+ s->BindString16(starting_column, data.short_name);
+ s->BindString16(starting_column + 1, data.keyword(&url));
+ s->BindString(starting_column + 2, data.favicon_url.is_valid() ?
+ history::HistoryDatabase::GURLToDatabaseURL(data.favicon_url) :
std::string());
- s->BindString(starting_column + 3, url.url());
- s->BindBool(starting_column + 4, url.safe_for_autoreplace());
- s->BindString(starting_column + 5, url.originating_url().is_valid() ?
- history::HistoryDatabase::GURLToDatabaseURL(url.originating_url()) :
+ s->BindString(starting_column + 3, data.url());
+ s->BindBool(starting_column + 4, data.safe_for_autoreplace);
+ s->BindString(starting_column + 5, data.originating_url.is_valid() ?
+ history::HistoryDatabase::GURLToDatabaseURL(data.originating_url) :
std::string());
- s->BindInt64(starting_column + 6, url.date_created().ToTimeT());
- s->BindInt(starting_column + 7, url.usage_count());
- s->BindString(starting_column + 8, JoinString(url.input_encodings(), ';'));
- s->BindBool(starting_column + 9, url.show_in_default_list());
- s->BindString(starting_column + 10, url.suggestions_url());
- s->BindInt(starting_column + 11, url.prepopulate_id());
- s->BindInt(starting_column + 12, url.autogenerate_keyword() ? 1 : 0);
+ s->BindInt64(starting_column + 6, data.date_created.ToTimeT());
+ s->BindInt(starting_column + 7, data.usage_count);
+ s->BindString(starting_column + 8, JoinString(data.input_encodings, ';'));
+ s->BindBool(starting_column + 9, data.show_in_default_list);
+ s->BindString(starting_column + 10, data.suggestions_url);
+ s->BindInt(starting_column + 11, data.prepopulate_id);
+ s->BindBool(starting_column + 12, data.autogenerate_keyword());
s->BindInt(starting_column + 13, 0);
- s->BindBool(starting_column + 14, url.created_by_policy());
- s->BindString(starting_column + 15, url.instant_url());
- s->BindInt64(starting_column + 16, url.last_modified().ToTimeT());
- s->BindString(starting_column + 17, url.sync_guid());
+ s->BindBool(starting_column + 14, data.created_by_policy);
+ s->BindString(starting_column + 15, data.instant_url);
+ s->BindInt64(starting_column + 16, data.last_modified.ToTimeT());
+ s->BindString(starting_column + 17, data.sync_guid);
}
// Signs search provider id and returns its signature.
@@ -148,8 +149,10 @@
" FROM keywords ORDER BY id ASC");
sql::Statement s(db_->GetUniqueStatement(query.c_str()));
- while (s.Step())
- keywords->push_back(GetKeywordDataFromStatement(s));
+ while (s.Step()) {
+ keywords->push_back(TemplateURLData());
+ GetKeywordDataFromStatement(s, &keywords->back());
+ }
return s.Succeeded();
}
@@ -180,14 +183,14 @@
return value;
}
-TemplateURL* KeywordTable::GetDefaultSearchProviderBackup() {
+bool KeywordTable::GetDefaultSearchProviderBackup(TemplateURLData* backup) {
if (!IsBackupSignatureValid())
- return NULL;
+ return false;
int64 backup_id = kInvalidTemplateURLID;
if (!meta_table_->GetValue(kDefaultSearchIDBackupKey, &backup_id)) {
LOG(ERROR) << "No default search id backup found.";
- return NULL;
+ return false;
}
std::string query("SELECT " + std::string(kKeywordColumns) +
" FROM keywords_backup WHERE id=?");
@@ -200,11 +203,11 @@
return NULL;
}
- TemplateURL* template_url = GetKeywordDataFromStatement(s);
+ GetKeywordDataFromStatement(s, backup);
// ID has no meaning for the backup and should be kInvalidTemplateURLID in
// case the TemplateURL will be added to keywords if missing.
- template_url->set_id(kInvalidTemplateURLID);
- return template_url;
+ backup->id = kInvalidTemplateURLID;
+ return true;
}
bool KeywordTable::DidDefaultSearchProviderChange() {
@@ -327,35 +330,27 @@
}
// static
-TemplateURL* KeywordTable::GetKeywordDataFromStatement(
- const sql::Statement& s) {
- TemplateURL* url = new TemplateURL;
- url->set_id(s.ColumnInt64(0));
- url->set_short_name(s.ColumnString16(1));
- url->set_keyword(s.ColumnString16(2));
- std::string tmp(s.ColumnString(3));
- if (!tmp.empty())
- url->set_favicon_url(GURL(tmp));
- url->SetURL(s.ColumnString(4));
- url->set_safe_for_autoreplace(s.ColumnBool(5));
- tmp = s.ColumnString(6);
- if (!tmp.empty())
- url->set_originating_url(GURL(tmp));
- url->set_date_created(Time::FromTimeT(s.ColumnInt64(7)));
- url->set_usage_count(s.ColumnInt(8));
- std::vector<std::string> encodings;
- base::SplitString(s.ColumnString(9), ';', &encodings);
- url->set_input_encodings(encodings);
- url->set_show_in_default_list(s.ColumnBool(10));
- url->SetSuggestionsURL(s.ColumnString(11));
- url->SetPrepopulateId(s.ColumnInt(12));
- url->set_autogenerate_keyword(s.ColumnBool(13));
- url->set_created_by_policy(s.ColumnBool(15));
- url->SetInstantURL(s.ColumnString(16));
- url->set_last_modified(Time::FromTimeT(s.ColumnInt64(17)));
- url->set_sync_guid(s.ColumnString(18));
-
- return url;
+void KeywordTable::GetKeywordDataFromStatement(const sql::Statement& s,
+ TemplateURLData* data) {
+ DCHECK(data);
+ data->short_name = s.ColumnString16(1);
+ data->SetKeyword(s.ColumnString16(2));
+ data->SetAutogenerateKeyword(s.ColumnBool(13));
+ data->SetURL(s.ColumnString(4));
+ data->suggestions_url = s.ColumnString(11);
+ data->instant_url = s.ColumnString(16);
+ data->favicon_url = GURL(s.ColumnString(3));
+ data->originating_url = GURL(s.ColumnString(6));
+ data->show_in_default_list = s.ColumnBool(10);
+ data->safe_for_autoreplace = s.ColumnBool(5);
+ base::SplitString(s.ColumnString(9), ';', &data->input_encodings);
+ data->id = s.ColumnInt64(0);
+ data->date_created = Time::FromTimeT(s.ColumnInt64(7));
+ data->last_modified = Time::FromTimeT(s.ColumnInt64(17));
+ data->created_by_policy = s.ColumnBool(15);
+ data->usage_count = s.ColumnInt(8);
+ data->prepopulate_id = s.ColumnInt(12);
+ data->sync_guid = s.ColumnString(18);
}
bool KeywordTable::GetSignatureData(std::string* backup) {
« no previous file with comments | « chrome/browser/webdata/keyword_table.h ('k') | chrome/browser/webdata/keyword_table_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698