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

Unified Diff: chrome/browser/extensions/api_actions.cc

Issue 12262025: Alter the ActivityLog db table schemas. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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/extensions/api_actions.h ('k') | chrome/browser/extensions/blocked_actions.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api_actions.cc
diff --git a/chrome/browser/extensions/api_actions.cc b/chrome/browser/extensions/api_actions.cc
index 7897696f4a0a554dc708c93ca30aaf85fa6427d7..ebd47258ccea62dc5c9329ce086fd1e4cd9332c9 100644
--- a/chrome/browser/extensions/api_actions.cc
+++ b/chrome/browser/extensions/api_actions.cc
@@ -13,14 +13,11 @@ using content::BrowserThread;
namespace extensions {
const char* APIAction::kTableName = "activitylog_apis";
-const char* APIAction::kTableStructure = "("
+const char* APIAction::kTableBasicFields =
"extension_id LONGVARCHAR NOT NULL, "
- "time INTEGER NOT NULL, "
- "api_type LONGVARCHAR NOT NULL, "
- "api_action_type LONGVARCHAR NOT NULL, "
- "target_type LONGVARCHAR NOT NULL, "
- "api_call LONGVARCHAR NOT NULL, "
- "extra LONGVARCHAR NOT NULL)";
+ "time INTEGER NOT NULL";
+const char* APIAction::kTableContentFields[] =
+ {"api_type", "api_action_type", "target_type", "api_call", "args", "extra"};
APIAction::APIAction(const std::string& extension_id,
const base::Time& time,
@@ -28,6 +25,7 @@ APIAction::APIAction(const std::string& extension_id,
const Verb verb,
const Target target,
const std::string& api_call,
+ const std::string& args,
const std::string& extra)
: extension_id_(extension_id),
time_(time),
@@ -35,6 +33,7 @@ APIAction::APIAction(const std::string& extension_id,
verb_(verb),
target_(target),
api_call_(api_call),
+ args_(args),
extra_(extra) { }
APIAction::~APIAction() {
@@ -42,31 +41,17 @@ APIAction::~APIAction() {
// static
bool APIAction::InitializeTable(sql::Connection* db) {
- if (!db->DoesTableExist(kTableName)) {
- std::string table_creator = base::StringPrintf(
- "CREATE TABLE %s %s", kTableName, kTableStructure);
- if (!db->Execute(table_creator.c_str()))
- return false;
- } else if (!db->DoesColumnExist(kTableName, "api_type")) {
- // Old versions of the table lack the api_type column. Add it if
- // needed, with values defaulting to "CALL".
- //
- // TODO(mvrable): Remove this update code once we're fairly certain that
- // everyone will have converted to the new schema.
- std::string table_updater = base::StringPrintf(
- "ALTER TABLE %s ADD COLUMN api_type LONGVARCHAR; "
- "UPDATE %s SET api_type = 'CALL'",
- kTableName, kTableName);
- if (!db->Execute(table_updater.c_str()))
- return false;
- }
- return true;
+ return InitializeTableInternal(db,
+ kTableName,
+ kTableBasicFields,
+ kTableContentFields,
+ arraysize(kTableContentFields));
}
void APIAction::Record(sql::Connection* db) {
std::string sql_str = "INSERT INTO " + std::string(kTableName)
+ " (extension_id, time, api_type, api_action_type, target_type,"
- " api_call, extra) VALUES (?,?,?,?,?,?,?)";
+ " api_call, args, extra) VALUES (?,?,?,?,?,?,?,?)";
sql::Statement statement(db->GetCachedStatement(
sql::StatementID(SQL_FROM_HERE), sql_str.c_str()));
statement.BindString(0, extension_id_);
@@ -75,8 +60,8 @@ void APIAction::Record(sql::Connection* db) {
statement.BindString(3, VerbAsString());
statement.BindString(4, TargetAsString());
statement.BindString(5, api_call_);
- statement.BindString(6, extra_);
-
+ statement.BindString(6, args_);
+ statement.BindString(7, extra_);
if (!statement.Run())
LOG(ERROR) << "Activity log database I/O failed: " << sql_str;
}
@@ -90,7 +75,7 @@ std::string APIAction::PrettyPrintForDebug() {
// TODO(felt): implement this for real when the UI is redesigned.
return "ID: " + extension_id_ + + ", CATEGORY: " + TypeAsString() +
", VERB: " + VerbAsString() + ", TARGET: " + TargetAsString() +
- ", API: " + api_call_;
+ ", API: " + api_call_ + ", ARGS: " + args_;
}
std::string APIAction::TypeAsString() const {
« no previous file with comments | « chrome/browser/extensions/api_actions.h ('k') | chrome/browser/extensions/blocked_actions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698