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

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

Issue 11493003: Remove the protector service. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix implicit ExtensionSystem -> TemplateURLService dependency Created 8 years 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
diff --git a/chrome/browser/webdata/keyword_table.cc b/chrome/browser/webdata/keyword_table.cc
index 6d3a06453dafdd7a3ff111088450ef46809bba3a..0e2ea85b122dc84f9daa026d2d1b614a228b7540 100644
--- a/chrome/browser/webdata/keyword_table.cc
+++ b/chrome/browser/webdata/keyword_table.cc
@@ -10,17 +10,12 @@
#include "base/json/json_writer.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
-#include "base/metrics/histogram.h"
-#include "base/metrics/stats_counters.h"
#include "base/string_number_conversions.h"
#include "base/string_split.h"
#include "base/string_util.h"
-#include "base/stringprintf.h"
#include "base/utf_string_conversions.h"
#include "base/values.h"
#include "chrome/browser/history/history_database.h"
-#include "chrome/browser/protector/histograms.h"
-#include "chrome/browser/protector/protector_utils.h"
#include "chrome/browser/search_engines/search_terms_data.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/search_engines/template_url_service.h"
@@ -34,10 +29,6 @@ using base::Time;
// static
const char KeywordTable::kDefaultSearchProviderKey[] =
"Default Search Provider ID";
-const char KeywordTable::kDefaultSearchIDBackupKey[] =
- "Default Search Provider ID Backup";
-const char KeywordTable::kBackupSignatureKey[] =
- "Default Search Provider ID Backup Signature";
namespace {
@@ -123,34 +114,32 @@ void BindURLToStatement(const TemplateURLData& data,
} // anonymous namespace
KeywordTable::KeywordTable(sql::Connection* db, sql::MetaTable* meta_table)
- : WebDatabaseTable(db, meta_table),
- backup_overwritten_(false) {
+ : WebDatabaseTable(db, meta_table) {
}
KeywordTable::~KeywordTable() {}
bool KeywordTable::Init() {
return db_->DoesTableExist("keywords") ||
- (db_->Execute("CREATE TABLE keywords ("
- "id INTEGER PRIMARY KEY,"
- "short_name VARCHAR NOT NULL,"
- "keyword VARCHAR NOT NULL,"
- "favicon_url VARCHAR NOT NULL,"
- "url VARCHAR NOT NULL,"
- "safe_for_autoreplace INTEGER,"
- "originating_url VARCHAR,"
- "date_created INTEGER DEFAULT 0,"
- "usage_count INTEGER DEFAULT 0,"
- "input_encodings VARCHAR,"
- "show_in_default_list INTEGER,"
- "suggest_url VARCHAR,"
- "prepopulate_id INTEGER DEFAULT 0,"
- "created_by_policy INTEGER DEFAULT 0,"
- "instant_url VARCHAR,"
- "last_modified INTEGER DEFAULT 0,"
- "sync_guid VARCHAR,"
- "alternate_urls VARCHAR)") &&
- UpdateBackupSignature(WebDatabase::kCurrentVersionNumber));
+ db_->Execute("CREATE TABLE keywords ("
+ "id INTEGER PRIMARY KEY,"
+ "short_name VARCHAR NOT NULL,"
+ "keyword VARCHAR NOT NULL,"
+ "favicon_url VARCHAR NOT NULL,"
+ "url VARCHAR NOT NULL,"
+ "safe_for_autoreplace INTEGER,"
+ "originating_url VARCHAR,"
+ "date_created INTEGER DEFAULT 0,"
+ "usage_count INTEGER DEFAULT 0,"
+ "input_encodings VARCHAR,"
+ "show_in_default_list INTEGER,"
+ "suggest_url VARCHAR,"
+ "prepopulate_id INTEGER DEFAULT 0,"
+ "created_by_policy INTEGER DEFAULT 0,"
+ "instant_url VARCHAR,"
+ "last_modified INTEGER DEFAULT 0,"
+ "sync_guid VARCHAR,"
+ "alternate_urls VARCHAR)");
}
bool KeywordTable::IsSyncable() {
@@ -164,7 +153,7 @@ bool KeywordTable::AddKeyword(const TemplateURLData& data) {
sql::Statement s(db_->GetUniqueStatement(query.c_str()));
BindURLToStatement(data, &s, 0, 1);
- return s.Run() && UpdateBackupSignature(WebDatabase::kCurrentVersionNumber);
+ return s.Run();
}
bool KeywordTable::RemoveKeyword(TemplateURLID id) {
@@ -173,7 +162,7 @@ bool KeywordTable::RemoveKeyword(TemplateURLID id) {
db_->GetUniqueStatement("DELETE FROM keywords WHERE id = ?"));
s.BindInt64(0, id);
- return s.Run() && UpdateBackupSignature(WebDatabase::kCurrentVersionNumber);
+ return s.Run();
}
bool KeywordTable::GetKeywords(Keywords* keywords) {
@@ -206,15 +195,11 @@ bool KeywordTable::UpdateKeyword(const TemplateURLData& data) {
"alternate_urls=? WHERE id=?"));
BindURLToStatement(data, &s, 17, 0); // "17" binds id() as the last item.
- return s.Run() && UpdateBackupSignature(WebDatabase::kCurrentVersionNumber);
+ return s.Run();
}
bool KeywordTable::SetDefaultSearchProviderID(int64 id) {
- // Added for http://crbug.com/116952.
- UMA_HISTOGRAM_COUNTS_100("Search.DefaultSearchProviderID",
- static_cast<int32>(id));
- return meta_table_->SetValue(kDefaultSearchProviderKey, id) &&
- UpdateBackupSignature(WebDatabase::kCurrentVersionNumber);
+ return meta_table_->SetValue(kDefaultSearchProviderKey, id);
}
int64 KeywordTable::GetDefaultSearchProviderID() {
@@ -223,83 +208,6 @@ int64 KeywordTable::GetDefaultSearchProviderID() {
return value;
}
-bool KeywordTable::GetDefaultSearchProviderBackup(TemplateURLData* backup) {
- if (!IsBackupSignatureValid(WebDatabase::kCurrentVersionNumber))
- return false;
-
- int64 backup_id = kInvalidTemplateURLID;
- if (!meta_table_->GetValue(kDefaultSearchIDBackupKey, &backup_id)) {
- LOG(ERROR) << "No default search id backup found.";
- return false;
- }
- std::string query("SELECT " + GetKeywordColumns() +
- " FROM keywords_backup WHERE id=?");
- sql::Statement s(db_->GetUniqueStatement(query.c_str()));
- s.BindInt64(0, backup_id);
-
- if (!s.Step()) {
- LOG_IF(ERROR, s.Succeeded())
- << "No default search provider with backup id.";
- return false;
- }
-
- if (!GetKeywordDataFromStatement(s, backup))
- return false;
-
- // ID has no meaning for the backup and should be kInvalidTemplateURLID in
- // case the TemplateURL will be added to keywords if missing.
- backup->id = kInvalidTemplateURLID;
- return true;
-}
-
-bool KeywordTable::DidDefaultSearchProviderChange() {
- if (!IsBackupSignatureValid(WebDatabase::kCurrentVersionNumber)) {
- UMA_HISTOGRAM_ENUMERATION(
- protector::kProtectorHistogramDefaultSearchProvider,
- protector::kProtectorErrorBackupInvalid,
- protector::kProtectorErrorCount);
- LOG(ERROR) << "Backup signature is invalid.";
- return true;
- }
-
- int64 backup_id = kInvalidTemplateURLID;
- meta_table_->GetValue(kDefaultSearchIDBackupKey, &backup_id);
- int64 current_id = GetDefaultSearchProviderID();
- if (backup_id == current_id) {
- // Either this is a new profile and both IDs are kInvalidTemplateURLID or
- // the search engines with the ids are equal.
- if (backup_id == kInvalidTemplateURLID) {
- UMA_HISTOGRAM_ENUMERATION(
- protector::kProtectorHistogramDefaultSearchProvider,
- backup_overwritten_ ?
- protector::kProtectorErrorOverwrittenByMigration :
- protector::kProtectorErrorValueValidZero,
- protector::kProtectorErrorCount);
- return false;
- }
- std::string backup_url;
- std::string current_url;
- if (GetKeywordAsString(backup_id, "keywords_backup", &backup_url) &&
- GetKeywordAsString(current_id, "keywords", &current_url) &&
- current_url == backup_url) {
- UMA_HISTOGRAM_ENUMERATION(
- protector::kProtectorHistogramDefaultSearchProvider,
- backup_overwritten_ ?
- protector::kProtectorErrorOverwrittenByMigration :
- protector::kProtectorErrorValueValid,
- protector::kProtectorErrorCount);
- return false;
- }
- }
-
- UMA_HISTOGRAM_ENUMERATION(
- protector::kProtectorHistogramDefaultSearchProvider,
- protector::kProtectorErrorValueChanged,
- protector::kProtectorErrorCount);
- LOG(WARNING) << "Default Search Provider has changed.";
- return true;
-}
-
bool KeywordTable::SetBuiltinKeywordVersion(int version) {
return meta_table_->SetValue(kBuiltinKeywordVersion, version);
}
@@ -377,10 +285,26 @@ bool KeywordTable::MigrateToVersion39AddSyncGUIDColumn() {
}
bool KeywordTable::MigrateToVersion44AddDefaultSearchProviderBackup() {
- if (IsBackupSignatureValid(44))
- return true;
- backup_overwritten_ = true;
- return UpdateBackupSignature(44);
+ sql::Transaction transaction(db_);
+ if (!transaction.Begin())
+ return false;
+
+ int64 default_search_id = GetDefaultSearchProviderID();
+ if (!meta_table_->SetValue("Default Search Provider ID Backup",
+ default_search_id))
+ return false;
+
+ // Backup of all keywords.
+ if (db_->DoesTableExist("keywords_backup") &&
+ !db_->Execute("DROP TABLE keywords_backup"))
+ return false;
+
+ std::string query("CREATE TABLE keywords_backup AS SELECT " +
+ ColumnsForVersion(44, false) + " FROM keywords ORDER BY id ASC");
+ if (!db_->Execute(query.c_str()))
+ return false;
+
+ return transaction.Commit();
}
bool KeywordTable::MigrateToVersion45RemoveLogoIDAndAutogenerateColumns() {
@@ -396,17 +320,11 @@ bool KeywordTable::MigrateToVersion45RemoveLogoIDAndAutogenerateColumns() {
if (!MigrateKeywordsTableForVersion45("keywords"))
return false;
- if (IsBackupSignatureValid(44)) {
- // Migrate the keywords backup table as well.
- if (!MigrateKeywordsTableForVersion45("keywords_backup") || !SignBackup(45))
- return false;
- } else {
- // Old backup was invalid; drop the table entirely, which will trigger the
- // protector code to prompt the user and recreate the table.
- if (db_->DoesTableExist("keywords_backup") &&
- !db_->Execute("DROP TABLE keywords_backup"))
- return false;
- }
+ // Migrate the keywords backup table as well.
+ if (!MigrateKeywordsTableForVersion45("keywords_backup") ||
+ !meta_table_->SetValue("Default Search Provider ID Backup Signature",
+ ""))
+ return false;
return transaction.Commit();
}
@@ -422,19 +340,27 @@ bool KeywordTable::MigrateToVersion47AddAlternateURLsColumn() {
"alternate_urls VARCHAR DEFAULT ''"))
return false;
- if (IsBackupSignatureValid(46)) {
- // Migrate the keywords backup table as well.
- if (!db_->Execute("ALTER TABLE keywords_backup ADD COLUMN "
- "alternate_urls VARCHAR DEFAULT ''") ||
- !SignBackup(47))
- return false;
- } else {
- // Old backup was invalid; drop the table entirely, which will trigger the
- // protector code to prompt the user and recreate the table.
- if (db_->DoesTableExist("keywords_backup") &&
- !db_->Execute("DROP TABLE keywords_backup"))
- return false;
- }
+ // Migrate the keywords backup table as well.
+ if (!db_->Execute("ALTER TABLE keywords_backup ADD COLUMN "
+ "alternate_urls VARCHAR DEFAULT ''") ||
+ !meta_table_->SetValue("Default Search Provider ID Backup Signature",
+ ""))
+ return false;
+
+ return transaction.Commit();
+}
+
+bool KeywordTable::MigrateToVersion48RemoveKeywordsBackup() {
+ sql::Transaction transaction(db_);
+ if (!transaction.Begin())
+ return false;
+
+ if (!meta_table_->DeleteKey("Default Search Provider ID Backup") ||
+ !meta_table_->DeleteKey("Default Search Provider ID Backup Signature"))
+ return false;
+
+ if (!db_->Execute("DROP TABLE keywords_backup"))
+ return false;
return transaction.Commit();
}
@@ -483,25 +409,6 @@ bool KeywordTable::GetKeywordDataFromStatement(const sql::Statement& s,
return true;
}
-bool KeywordTable::GetSignatureData(int table_version, std::string* backup) {
- DCHECK(backup);
-
- int64 backup_value = kInvalidTemplateURLID;
- if (!meta_table_->GetValue(kDefaultSearchIDBackupKey, &backup_value)) {
- LOG(ERROR) << "No backup id for signing.";
- return false;
- }
-
- std::string keywords_backup_data;
- if (!GetTableContents("keywords_backup", table_version,
- &keywords_backup_data)) {
- LOG(ERROR) << "Can't get keywords backup data";
- return false;
- }
- *backup = base::Int64ToString(backup_value) + keywords_backup_data;
- return true;
-}
-
bool KeywordTable::GetTableContents(const char* table_name,
int table_version,
std::string* contents) {
@@ -521,57 +428,6 @@ bool KeywordTable::GetTableContents(const char* table_name,
return s.Succeeded();
}
-bool KeywordTable::UpdateBackupSignature(int table_version) {
- sql::Transaction transaction(db_);
- if (!transaction.Begin())
- return false;
-
- int64 id = kInvalidTemplateURLID;
- if (!UpdateDefaultSearchProviderIDBackup(&id)) {
- LOG(ERROR) << "Failed to update default search id backup.";
- return false;
- }
-
- // Backup of all keywords.
- if (db_->DoesTableExist("keywords_backup") &&
- !db_->Execute("DROP TABLE keywords_backup"))
- return false;
-
- std::string query("CREATE TABLE keywords_backup AS SELECT " +
- ColumnsForVersion(table_version, false) +
- " FROM keywords ORDER BY id ASC");
- if (!db_->Execute(query.c_str())) {
- LOG(ERROR) << "Failed to create keywords_backup table.";
- return false;
- }
-
- return SignBackup(table_version) && transaction.Commit();
-}
-
-bool KeywordTable::SignBackup(int table_version) {
- std::string data_to_sign;
- if (!GetSignatureData(table_version, &data_to_sign)) {
- LOG(ERROR) << "No data to sign.";
- return false;
- }
-
- std::string signature = protector::SignSetting(data_to_sign);
- if (signature.empty()) {
- LOG(ERROR) << "Signature is empty";
- return false;
- }
-
- return meta_table_->SetValue(kBackupSignatureKey, signature);
-}
-
-bool KeywordTable::IsBackupSignatureValid(int table_version) {
- std::string signature;
- std::string signature_data;
- return meta_table_->GetValue(kBackupSignatureKey, &signature) &&
- GetSignatureData(table_version, &signature_data) &&
- protector::IsSettingValid(signature_data, signature);
-}
-
bool KeywordTable::GetKeywordAsString(TemplateURLID id,
const std::string& table_name,
std::string* result) {
@@ -594,19 +450,6 @@ bool KeywordTable::GetKeywordAsString(TemplateURLID id,
return true;
}
-bool KeywordTable::UpdateDefaultSearchProviderIDBackup(TemplateURLID* id) {
- DCHECK(id);
- int64 default_search_id = GetDefaultSearchProviderID();
- if (!meta_table_->SetValue(kDefaultSearchIDBackupKey,
- default_search_id)) {
- LOG(ERROR) << "Can't write default search id backup.";
- return false;
- }
-
- *id = default_search_id;
- return true;
-}
-
bool KeywordTable::MigrateKeywordsTableForVersion45(const std::string& name) {
// Create a new table without the columns we're dropping.
if (!db_->Execute("CREATE TABLE keywords_temp ("
« 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