| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/webdata/keyword_table.h" | 5 #include "chrome/browser/webdata/keyword_table.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/metrics/stats_counters.h" | 9 #include "base/metrics/stats_counters.h" |
| 10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 DCHECK(url.id()); | 140 DCHECK(url.id()); |
| 141 // Be sure to change kUrlIdPosition if you add columns | 141 // Be sure to change kUrlIdPosition if you add columns |
| 142 sql::Statement s(db_->GetUniqueStatement( | 142 sql::Statement s(db_->GetUniqueStatement( |
| 143 "INSERT INTO keywords " | 143 "INSERT INTO keywords " |
| 144 "(short_name, keyword, favicon_url, url, safe_for_autoreplace, " | 144 "(short_name, keyword, favicon_url, url, safe_for_autoreplace, " |
| 145 "originating_url, date_created, usage_count, input_encodings, " | 145 "originating_url, date_created, usage_count, input_encodings, " |
| 146 "show_in_default_list, suggest_url, prepopulate_id, " | 146 "show_in_default_list, suggest_url, prepopulate_id, " |
| 147 "autogenerate_keyword, logo_id, created_by_policy, instant_url, " | 147 "autogenerate_keyword, logo_id, created_by_policy, instant_url, " |
| 148 "last_modified, sync_guid, id) VALUES " | 148 "last_modified, sync_guid, id) VALUES " |
| 149 "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")); | 149 "(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)")); |
| 150 if (!s) { | |
| 151 NOTREACHED() << "Statement prepare failed"; | |
| 152 return false; | |
| 153 } | |
| 154 BindURLToStatement(url, &s); | 150 BindURLToStatement(url, &s); |
| 155 s.BindInt64(kUrlIdPosition, url.id()); | 151 s.BindInt64(kUrlIdPosition, url.id()); |
| 152 |
| 156 if (!s.Run()) { | 153 if (!s.Run()) { |
| 157 NOTREACHED(); | |
| 158 return false; | 154 return false; |
| 159 } | 155 } |
| 160 return UpdateBackupSignature(); | 156 return UpdateBackupSignature(); |
| 161 } | 157 } |
| 162 | 158 |
| 163 bool KeywordTable::RemoveKeyword(TemplateURLID id) { | 159 bool KeywordTable::RemoveKeyword(TemplateURLID id) { |
| 164 DCHECK(id); | 160 DCHECK(id); |
| 165 sql::Statement s(db_->GetUniqueStatement("DELETE FROM keywords WHERE id=?")); | 161 sql::Statement s( |
| 166 if (!s) { | 162 db_->GetUniqueStatement("DELETE FROM keywords WHERE id = ?")); |
| 167 NOTREACHED() << "Statement prepare failed"; | |
| 168 return false; | |
| 169 } | |
| 170 s.BindInt64(0, id); | 163 s.BindInt64(0, id); |
| 164 |
| 171 return s.Run() && UpdateBackupSignature(); | 165 return s.Run() && UpdateBackupSignature(); |
| 172 } | 166 } |
| 173 | 167 |
| 174 bool KeywordTable::GetKeywords(std::vector<TemplateURL*>* urls) { | 168 bool KeywordTable::GetKeywords(std::vector<TemplateURL*>* urls) { |
| 175 sql::Statement s(db_->GetUniqueStatement( | 169 sql::Statement s(db_->GetUniqueStatement( |
| 176 "SELECT id, short_name, keyword, favicon_url, url, " | 170 "SELECT id, short_name, keyword, favicon_url, url, " |
| 177 "safe_for_autoreplace, originating_url, date_created, " | 171 "safe_for_autoreplace, originating_url, date_created, " |
| 178 "usage_count, input_encodings, show_in_default_list, " | 172 "usage_count, input_encodings, show_in_default_list, " |
| 179 "suggest_url, prepopulate_id, autogenerate_keyword, logo_id, " | 173 "suggest_url, prepopulate_id, autogenerate_keyword, logo_id, " |
| 180 "created_by_policy, instant_url, last_modified, sync_guid " | 174 "created_by_policy, instant_url, last_modified, sync_guid " |
| 181 "FROM keywords ORDER BY id ASC")); | 175 "FROM keywords ORDER BY id ASC")); |
| 182 if (!s) { | 176 |
| 183 NOTREACHED() << "Statement prepare failed"; | |
| 184 return false; | |
| 185 } | |
| 186 while (s.Step()) { | 177 while (s.Step()) { |
| 187 TemplateURL* template_url = new TemplateURL(); | 178 TemplateURL* template_url = new TemplateURL(); |
| 188 GetURLFromStatement(s, template_url); | 179 GetURLFromStatement(s, template_url); |
| 189 urls->push_back(template_url); | 180 urls->push_back(template_url); |
| 190 } | 181 } |
| 191 return s.Succeeded(); | 182 return s.Succeeded(); |
| 192 } | 183 } |
| 193 | 184 |
| 194 bool KeywordTable::UpdateKeyword(const TemplateURL& url) { | 185 bool KeywordTable::UpdateKeyword(const TemplateURL& url) { |
| 195 DCHECK(url.id()); | 186 DCHECK(url.id()); |
| 196 // Be sure to change kUrlIdPosition if you add columns | 187 // Be sure to change kUrlIdPosition if you add columns |
| 197 sql::Statement s(db_->GetUniqueStatement( | 188 sql::Statement s(db_->GetUniqueStatement( |
| 198 "UPDATE keywords " | 189 "UPDATE keywords " |
| 199 "SET short_name=?, keyword=?, favicon_url=?, url=?, " | 190 "SET short_name=?, keyword=?, favicon_url=?, url=?, " |
| 200 "safe_for_autoreplace=?, originating_url=?, date_created=?, " | 191 "safe_for_autoreplace=?, originating_url=?, date_created=?, " |
| 201 "usage_count=?, input_encodings=?, show_in_default_list=?, " | 192 "usage_count=?, input_encodings=?, show_in_default_list=?, " |
| 202 "suggest_url=?, prepopulate_id=?, autogenerate_keyword=?, " | 193 "suggest_url=?, prepopulate_id=?, autogenerate_keyword=?, " |
| 203 "logo_id=?, created_by_policy=?, instant_url=?, last_modified=?, " | 194 "logo_id=?, created_by_policy=?, instant_url=?, last_modified=?, " |
| 204 "sync_guid=? WHERE id=?")); | 195 "sync_guid=? WHERE id=?")); |
| 205 if (!s) { | |
| 206 NOTREACHED() << "Statement prepare failed"; | |
| 207 return false; | |
| 208 } | |
| 209 BindURLToStatement(url, &s); | 196 BindURLToStatement(url, &s); |
| 210 s.BindInt64(kUrlIdPosition, url.id()); | 197 s.BindInt64(kUrlIdPosition, url.id()); |
| 198 |
| 211 return s.Run() && UpdateBackupSignature(); | 199 return s.Run() && UpdateBackupSignature(); |
| 212 } | 200 } |
| 213 | 201 |
| 214 bool KeywordTable::SetDefaultSearchProviderID(int64 id) { | 202 bool KeywordTable::SetDefaultSearchProviderID(int64 id) { |
| 215 return meta_table_->SetValue(kDefaultSearchProviderKey, id) && | 203 return meta_table_->SetValue(kDefaultSearchProviderKey, id) && |
| 216 UpdateBackupSignature(); | 204 UpdateBackupSignature(); |
| 217 } | 205 } |
| 218 | 206 |
| 219 int64 KeywordTable::GetDefaultSearchProviderID() { | 207 int64 KeywordTable::GetDefaultSearchProviderID() { |
| 220 int64 value = 0; | 208 int64 value = 0; |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 619 return false; | 607 return false; |
| 620 } | 608 } |
| 621 if (!meta_table_->SetValue(kDefaultSearchBackupKey, backup_url)) { | 609 if (!meta_table_->SetValue(kDefaultSearchBackupKey, backup_url)) { |
| 622 LOG(WARNING) << "Failed to update the keyword backup"; | 610 LOG(WARNING) << "Failed to update the keyword backup"; |
| 623 return false; | 611 return false; |
| 624 } | 612 } |
| 625 | 613 |
| 626 *backup = backup_url; | 614 *backup = backup_url; |
| 627 return true; | 615 return true; |
| 628 } | 616 } |
| OLD | NEW |