Upload histogram data for cache state of requests.
commitd84033d4c99da29d3baae15784335f31a14b3c38
authorellyjones <ellyjones@chromium.org>
Thu, 12 Feb 2015 19:20:34 +0000 (12 11:20 -0800)
committerCommit bot <commit-bot@chromium.org>
Thu, 12 Feb 2015 19:21:17 +0000 (12 19:21 +0000)
tree4e4f4e2067a2522f62f3dcbf9a98ca6c22926418
parent59114e6e4736489f3a30eb30acccc1b59829c5f1
Upload histogram data for cache state of requests.

Add a method UploadCacheStateStats() to ChromeNetworkDelegate, and a helper method CanMimeTypeBeDeltaEncoded(). UploadCacheStateStats() is responsible for four histograms:

* Net.CacheState.AllRequests, which counts the cache state of all requests;
* Net.CacheState.EncodeableRequests, which counts the cache state of requests whose mime type makes them delta-encodeable;
* Net.CacheState.AllBytes, which counts the number of bytes sent total in CACHE_STATE_NO_LONGER_VALID;
* Net.CacheState.EncodeableBytes, which counts the number of bytes sent total in CACHE_STATE_NO_LONGER_VALID whose mime type makes them delta-encodeable.

The four cache states are:
* CACHE_STATE_FROM_CACHE (requested entity is un-expired in cache)
* CACHE_STATE_STILL_VALID (requested entity is expired in cache but still valid)
* CACHE_STATE_NO_LONGER_VALID (requested entity is expired in cache and no longer valid)
* CACHE_STATE_NO_ENTRY (requested entity is not in cache)

BUG=444916
TEST=adhoc
Load a page with a lot of resources (I used http://www.cnn.com), check
chrome://histograms for Net.CacheState.*, reload the page, reload the
histograms. You should see entries in both Requests histograms, and plausible byte counts in both Bytes histograms.

Review URL: https://codereview.chromium.org/887493002

Cr-Commit-Position: refs/heads/master@{#316019}
chrome/browser/net/chrome_network_delegate.cc
tools/metrics/histograms/histograms.xml