| Index: chrome/browser/webdata/web_database.h
|
| diff --git a/chrome/browser/webdata/web_database.h b/chrome/browser/webdata/web_database.h
|
| index 6a24985bfbe88f484c4da3b9cee8f7a8a894f626..e186f34558ab329b69ec9a40359df391db4b76d8 100644
|
| --- a/chrome/browser/webdata/web_database.h
|
| +++ b/chrome/browser/webdata/web_database.h
|
| @@ -5,20 +5,14 @@
|
| #ifndef CHROME_BROWSER_WEBDATA_WEB_DATABASE_H_
|
| #define CHROME_BROWSER_WEBDATA_WEB_DATABASE_H_
|
|
|
| +#include <map>
|
| +
|
| #include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/scoped_vector.h"
|
| +#include "chrome/browser/webdata/web_database_table.h"
|
| #include "sql/connection.h"
|
| #include "sql/init_status.h"
|
| #include "sql/meta_table.h"
|
|
|
| -class AutofillTable;
|
| -class KeywordTable;
|
| -class LoginsTable;
|
| -class TokenServiceTable;
|
| -class WebAppsTable;
|
| -class WebDatabaseTable;
|
| -class WebIntentsTable;
|
| -
|
| namespace base {
|
| class FilePath;
|
| }
|
| @@ -40,10 +34,22 @@ class WebDatabase {
|
| WebDatabase();
|
| virtual ~WebDatabase();
|
|
|
| + // Adds a database table. Ownership remains with the caller, which
|
| + // must ensure that the lifetime of |table| exceeds this object's
|
| + // lifetime. Must only be called before Init.
|
| + void AddTable(WebDatabaseTable* table);
|
| +
|
| + // Retrieves a table based on its |key|.
|
| + WebDatabaseTable* GetTable(WebDatabaseTable::TypeKey key);
|
| +
|
| // Initialize the database given a name. The name defines where the SQLite
|
| // file is. If this returns an error code, no other method should be called.
|
| // Requires the |app_locale| to be passed as a parameter as the locale can
|
| // only safely be queried on the UI thread.
|
| + //
|
| + // Before calling this method, you must call AddTable for any
|
| + // WebDatabaseTable objects that are supposed to participate in
|
| + // managing the database.
|
| sql::InitStatus Init(
|
| const base::FilePath& db_name, const std::string& app_locale);
|
|
|
| @@ -51,12 +57,6 @@ class WebDatabase {
|
| void BeginTransaction();
|
| void CommitTransaction();
|
|
|
| - virtual AutofillTable* GetAutofillTable();
|
| - virtual KeywordTable* GetKeywordTable();
|
| - virtual LoginsTable* GetLoginsTable();
|
| - virtual TokenServiceTable* GetTokenServiceTable();
|
| - virtual WebAppsTable* GetWebAppsTable();
|
| -
|
| // Exposed for testing only.
|
| sql::Connection* GetSQLConnection();
|
|
|
| @@ -69,20 +69,10 @@ class WebDatabase {
|
| sql::Connection db_;
|
| sql::MetaTable meta_table_;
|
|
|
| - // TODO(joi): All of the typed pointers are going in a future
|
| - // change, as we remove knowledge of the specific types from this
|
| - // class.
|
| - AutofillTable* autofill_table_;
|
| - KeywordTable* keyword_table_;
|
| - LoginsTable* logins_table_;
|
| - TokenServiceTable* token_service_table_;
|
| - WebAppsTable* web_apps_table_;
|
| - // TODO(thakis): Add a migration to delete this table, then remove this.
|
| - WebIntentsTable* web_intents_table_;
|
| -
|
| - // Owns all the different database tables that have been added to
|
| - // this object.
|
| - ScopedVector<WebDatabaseTable> tables_;
|
| + // Map of all the different tables that have been added to this
|
| + // object. Non-owning.
|
| + typedef std::map<WebDatabaseTable::TypeKey, WebDatabaseTable*> TableMap;
|
| + TableMap tables_;
|
|
|
| scoped_ptr<content::NotificationService> notification_service_;
|
|
|
|
|