| 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;
|
| }
|
|
|
|
|