diff options
Diffstat (limited to 'webkit/dom_storage/session_storage_database.cc')
-rw-r--r-- | webkit/dom_storage/session_storage_database.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/webkit/dom_storage/session_storage_database.cc b/webkit/dom_storage/session_storage_database.cc index b22ea30..d3613d4 100644 --- a/webkit/dom_storage/session_storage_database.cc +++ b/webkit/dom_storage/session_storage_database.cc @@ -6,6 +6,7 @@ #include "base/file_util.h" #include "base/logging.h" +#include "base/metrics/histogram.h" #include "base/stringprintf.h" #include "base/string_number_conversions.h" #include "base/utf_string_conversions.h" @@ -16,6 +17,19 @@ #include "third_party/leveldatabase/src/include/leveldb/options.h" #include "third_party/leveldatabase/src/include/leveldb/write_batch.h" +#define SESSION_STORAGE_UMA_NAME "SessionStorageDatabase.Open" + +namespace { + +enum SessionStorageUMA { + SESSION_STORAGE_UMA_SUCCESS, + SESSION_STORAGE_UMA_RECREATED, + SESSION_STORAGE_UMA_FAIL, + SESSION_STORAGE_UMA_MAX +}; + +} // namespace + // Layout of the database: // | key | value | // ----------------------------------------------------------------------- @@ -286,10 +300,20 @@ bool SessionStorageDatabase::LazyOpen(bool create_if_needed) { if (!s.ok()) { LOG(WARNING) << "Failed to open leveldb in " << file_path_.value() << ", error: " << s.ToString(); + UMA_HISTOGRAM_ENUMERATION(SESSION_STORAGE_UMA_NAME, + SESSION_STORAGE_UMA_FAIL, + SESSION_STORAGE_UMA_MAX); DCHECK(db == NULL); db_error_ = true; return false; } + UMA_HISTOGRAM_ENUMERATION(SESSION_STORAGE_UMA_NAME, + SESSION_STORAGE_UMA_RECREATED, + SESSION_STORAGE_UMA_MAX); + } else { + UMA_HISTOGRAM_ENUMERATION(SESSION_STORAGE_UMA_NAME, + SESSION_STORAGE_UMA_SUCCESS, + SESSION_STORAGE_UMA_MAX); } db_.reset(db); return true; |