summaryrefslogtreecommitdiffstats
path: root/chrome/browser/webdata/web_database.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/webdata/web_database.cc')
-rw-r--r--chrome/browser/webdata/web_database.cc41
1 files changed, 30 insertions, 11 deletions
diff --git a/chrome/browser/webdata/web_database.cc b/chrome/browser/webdata/web_database.cc
index 005c8b2..17b0baf 100644
--- a/chrome/browser/webdata/web_database.cc
+++ b/chrome/browser/webdata/web_database.cc
@@ -56,8 +56,9 @@ using webkit_glue::PasswordForm;
// input_encodings Semicolon separated list of supported input
// encodings, may be empty.
// suggest_url
-// prepopulate_id See TemplateURL::prepoulate_id.
+// prepopulate_id See TemplateURL::prepopulate_id.
// autogenerate_keyword
+// logo_id See TemplateURL::logo_id
//
// logins
// origin_url
@@ -157,8 +158,9 @@ namespace {
typedef std::vector<Tuple3<int64, string16, string16> > AutofillElementList;
// Current version number.
-const int kCurrentVersionNumber = 24;
-const int kCompatibleVersionNumber = 21;
+const int kCurrentVersionNumber = 25;
+const int kCompatibleVersionNumber = 25;
+const int kUrlIdPosition = 14;
// Keys used in the meta table.
const char* kDefaultSearchProviderKey = "Default Search Provider ID";
@@ -209,6 +211,7 @@ void BindURLToStatement(const TemplateURL& url, sql::Statement* s) {
s->BindString(10, std::string());
s->BindInt(11, url.prepopulate_id());
s->BindInt(12, url.autogenerate_keyword() ? 1 : 0);
+ s->BindInt(13, url.logo_id());
}
void InitPasswordFormFromStatement(PasswordForm* form, sql::Statement* s) {
@@ -623,7 +626,8 @@ bool WebDatabase::InitKeywordsTable() {
"input_encodings VARCHAR,"
"suggest_url VARCHAR,"
"prepopulate_id INTEGER DEFAULT 0,"
- "autogenerate_keyword INTEGER DEFAULT 0)")) {
+ "autogenerate_keyword INTEGER DEFAULT 0,"
+ "logo_id INTEGER DEFAULT 0)")) {
NOTREACHED();
return false;
}
@@ -829,14 +833,14 @@ bool WebDatabase::AddKeyword(const TemplateURL& url) {
"(short_name, keyword, favicon_url, url, safe_for_autoreplace, "
"originating_url, date_created, usage_count, input_encodings, "
"show_in_default_list, suggest_url, prepopulate_id, "
- "autogenerate_keyword, id) VALUES "
- "(?,?,?,?,?,?,?,?,?,?,?,?,?,?)"));
+ "autogenerate_keyword, logo_id, id) VALUES "
+ "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"));
if (!s) {
NOTREACHED() << "Statement prepare failed";
return false;
}
BindURLToStatement(url, &s);
- s.BindInt64(13, url.id());
+ s.BindInt64(kUrlIdPosition, url.id());
if (!s.Run()) {
NOTREACHED();
return false;
@@ -860,7 +864,7 @@ bool WebDatabase::GetKeywords(std::vector<TemplateURL*>* urls) {
"SELECT id, short_name, keyword, favicon_url, url, "
"safe_for_autoreplace, originating_url, date_created, "
"usage_count, input_encodings, show_in_default_list, "
- "suggest_url, prepopulate_id, autogenerate_keyword "
+ "suggest_url, prepopulate_id, autogenerate_keyword, logo_id "
"FROM keywords ORDER BY id ASC"));
if (!s) {
NOTREACHED() << "Statement prepare failed";
@@ -908,6 +912,8 @@ bool WebDatabase::GetKeywords(std::vector<TemplateURL*>* urls) {
template_url->set_autogenerate_keyword(s.ColumnInt(13) == 1);
+ template_url->set_logo_id(s.ColumnInt(14));
+
urls->push_back(template_url);
}
return s.Succeeded();
@@ -920,14 +926,14 @@ bool WebDatabase::UpdateKeyword(const TemplateURL& url) {
"SET short_name=?, keyword=?, favicon_url=?, url=?, "
"safe_for_autoreplace=?, originating_url=?, date_created=?, "
"usage_count=?, input_encodings=?, show_in_default_list=?, "
- "suggest_url=?, prepopulate_id=?, autogenerate_keyword=? "
- "WHERE id=?"));
+ "suggest_url=?, prepopulate_id=?, autogenerate_keyword=?, "
+ "logo_id=? WHERE id=?"));
if (!s) {
NOTREACHED() << "Statement prepare failed";
return false;
}
BindURLToStatement(url, &s);
- s.BindInt64(13, url.id());
+ s.BindInt64(kUrlIdPosition, url.id());
return s.Run();
}
@@ -1974,6 +1980,19 @@ void WebDatabase::MigrateOldVersionsAsNeeded() {
// FALL THROUGH
}
+ case 24:
+ // Add the logo_id column.
+ if (!db_.Execute("ALTER TABLE keywords ADD COLUMN logo_id "
+ "INTEGER DEFAULT 0")) {
+ NOTREACHED();
+ LOG(WARNING) << "Unable to update web database to version 25.";
+ return;
+ }
+ meta_table_.SetVersionNumber(25);
+ meta_table_.SetCompatibleVersionNumber(
+ std::min(25, kCompatibleVersionNumber));
+ // FALL THROUGH
+
// Add successive versions here. Each should set the version number and
// compatible version number as appropriate, then fall through to the next
// case.