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

Unified Diff: chrome/browser/extensions/activity_log/activity_database.cc

Issue 18660004: Extension activity log database refactoring (step 1) (Closed) Base URL: http://git.chromium.org/chromium/src.git@incognito-tests
Patch Set: Fix potential null pointer dereference Created 7 years, 5 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
Index: chrome/browser/extensions/activity_log/activity_database.cc
diff --git a/chrome/browser/extensions/activity_log/activity_database.cc b/chrome/browser/extensions/activity_log/activity_database.cc
index 20f4b985b99276d5d22a523cdac13313f212385a..d228f418655fc56a5f8d55a01060dae4566f6234 100644
--- a/chrome/browser/extensions/activity_log/activity_database.cc
+++ b/chrome/browser/extensions/activity_log/activity_database.cc
@@ -34,8 +34,9 @@ bool SortActionsByTime(const scoped_refptr<extensions::Action> a,
namespace extensions {
-ActivityDatabase::ActivityDatabase()
- : testing_clock_(NULL),
+ActivityDatabase::ActivityDatabase(ActivityDatabaseCallbacks* callbacks)
+ : policy_callbacks_(callbacks),
+ testing_clock_(NULL),
valid_db_(false),
already_closed_(false),
did_init_(false) {
@@ -76,16 +77,7 @@ void ActivityDatabase::Init(const base::FilePath& db_name) {
db_.Preload();
- // Create the DOMAction database.
- if (!DOMAction::InitializeTable(&db_))
- return LogInitFailure();
-
- // Create the APIAction database.
- if (!APIAction::InitializeTable(&db_))
- return LogInitFailure();
-
- // Create the BlockedAction database.
- if (!BlockedAction::InitializeTable(&db_))
+ if (!policy_callbacks_->DatabaseInitCallback(&db_))
return LogInitFailure();
sql::InitStatus stat = committer.Commit() ? sql::INIT_OK : sql::INIT_FAILURE;
@@ -221,6 +213,9 @@ void ActivityDatabase::Close() {
}
valid_db_ = false;
already_closed_ = true;
+ // Call DatabaseCloseCallback() just before deleting the ActivityDatabase
+ // itself--these two objects should have the same lifetime.
+ policy_callbacks_->DatabaseCloseCallback();
delete this;
}

Powered by Google App Engine
This is Rietveld 408576698