| Index: webkit/dom_storage/dom_storage_cached_area.cc
|
| diff --git a/webkit/dom_storage/dom_storage_cached_area.cc b/webkit/dom_storage/dom_storage_cached_area.cc
|
| index 6b20886bcb27d9894d4cbb3fb06175a08b3923a9..30d6291d32a5e184f9aa013b3f4a81b658b23a02 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() {
|
|
|