summaryrefslogtreecommitdiffstats
path: root/webkit/dom_storage/dom_storage_cached_area.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/dom_storage/dom_storage_cached_area.cc')
-rw-r--r--webkit/dom_storage/dom_storage_cached_area.cc26
1 files changed, 25 insertions, 1 deletions
diff --git a/webkit/dom_storage/dom_storage_cached_area.cc b/webkit/dom_storage/dom_storage_cached_area.cc
index 6b20886..30d6291 100644
--- a/webkit/dom_storage/dom_storage_cached_area.cc
+++ b/webkit/dom_storage/dom_storage_cached_area.cc
@@ -154,10 +154,34 @@ void DomStorageCachedArea::Prime(int connection_id) {
connection_id, &values,
base::Bind(&DomStorageCachedArea::OnLoadComplete,
weak_factory_.GetWeakPtr()));
+ base::TimeDelta time_to_prime = base::TimeTicks::Now() - before;
+ // Keeping this histogram named the same (without the ForRenderer suffix)
+ // to maintain histogram continuity.
UMA_HISTOGRAM_TIMES("LocalStorage.TimeToPrimeLocalStorage",
- base::TimeTicks::Now() - before);
+ time_to_prime);
map_ = new DomStorageMap(dom_storage::kPerAreaQuota);
map_->SwapValues(&values);
+
+ size_t local_storage_size_kb = map_->bytes_used() / 1024;
+ // Track localStorage size, from 0-6MB. Note that the maximum size should be
+ // 5MB, but we add some slop since we want to make sure the max size is always
+ // above what we see in practice, since histograms can't change.
+ UMA_HISTOGRAM_CUSTOM_COUNTS("LocalStorage.RendererLocalStorageSizeInKB",
+ local_storage_size_kb,
+ 0, 6 * 1024, 50);
+ if (local_storage_size_kb < 100) {
+ UMA_HISTOGRAM_TIMES(
+ "LocalStorage.RendererTimeToPrimeLocalStorageUnder100KB",
+ time_to_prime);
+ } else if (local_storage_size_kb < 1000) {
+ UMA_HISTOGRAM_TIMES(
+ "LocalStorage.RendererTimeToPrimeLocalStorage100KBTo1MB",
+ time_to_prime);
+ } else {
+ UMA_HISTOGRAM_TIMES(
+ "LocalStorage.RendererTimeToPrimeLocalStorage1MBTo5MB",
+ time_to_prime);
+ }
}
void DomStorageCachedArea::Reset() {