Index: components/history/core/browser/history_backend.h |
diff --git a/components/history/core/browser/history_backend.h b/components/history/core/browser/history_backend.h |
index 0b952b4b4b8ac365694ec5fb0558123917c14526..aeecc96ab01663b118f0bcafaa8501c00f830d13 100644 |
--- a/components/history/core/browser/history_backend.h |
+++ b/components/history/core/browser/history_backend.h |
@@ -113,7 +113,10 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
virtual ~Delegate() {} |
// Called when the database cannot be read correctly for some reason. |
- virtual void NotifyProfileError(sql::InitStatus init_status) = 0; |
+ // |diagnostics| contains information about the underlying database |
+ // which can help in identifying the cause of the profile error. |
+ virtual void NotifyProfileError(sql::InitStatus init_status, |
+ const std::string& diagnostics) = 0; |
// Sets the in-memory history backend. The in-memory backend is created by |
// the main backend. For non-unit tests, this happens on the background |
@@ -879,6 +882,10 @@ class HistoryBackend : public base::RefCountedThreadSafe<HistoryBackend>, |
// Listens for the system being under memory pressure. |
std::unique_ptr<base::MemoryPressureListener> memory_pressure_listener_; |
+ // Contains diagnostic information about the sql database that is non-empty |
+ // when a catastrophic error occurs. |
+ std::string db_diagnostics_; |
+ |
// Map from host to index in the TopHosts list. It is updated only by |
// TopHosts(), so it's usually stale. |
mutable base::hash_map<std::string, int> host_ranks_; |