Index: components/webdata/common/web_database_backend.h |
diff --git a/components/webdata/common/web_database_backend.h b/components/webdata/common/web_database_backend.h |
index 341bb76d7ac5a095943fcd281970fc7316083309..a3ae1fc8a1d3a9429f06629782adc5b1f7cf521d 100644 |
--- a/components/webdata/common/web_database_backend.h |
+++ b/components/webdata/common/web_database_backend.h |
@@ -39,7 +39,11 @@ class WEBDATA_EXPORT WebDatabaseBackend |
virtual ~Delegate() {} |
// Invoked when the backend has finished loading the db. |
- virtual void DBLoaded(sql::InitStatus status) = 0; |
+ // |status| is the result of initializing the db. |
+ // |diagnostics| contains diagnostic information about the db, and it will |
+ // only be populated when an error occurs. |
+ virtual void DBLoaded(sql::InitStatus status, |
+ const std::string& diagnostics) = 0; |
}; |
WebDatabaseBackend( |
@@ -90,6 +94,9 @@ class WEBDATA_EXPORT WebDatabaseBackend |
virtual ~WebDatabaseBackend(); |
private: |
+ // Invoked on a db error. |
+ void DatabaseErrorCallback(int error, sql::Statement* statement); |
+ |
// Commit the current transaction. |
void Commit(); |
@@ -119,6 +126,14 @@ class WEBDATA_EXPORT WebDatabaseBackend |
// fails), used to avoid continually trying to reinit if the db init fails. |
bool init_complete_; |
+ // True if a catastrophic database error occurs and further error callbacks |
+ // from the database should be ignored. |
+ bool catastrophic_error_occurred_; |
+ |
+ // If a catastrophic database error has occurred, this contains any available |
+ // diagnostic information. |
+ std::string diagnostics_; |
+ |
// Delegate. See the class definition above for more information. |
std::unique_ptr<Delegate> delegate_; |