Bug 1354409 - Add telemetry for how often we race network and cache r=michal
MozReview-Commit-ID: 1D1KyGbLxdW
--- a/netwerk/protocol/http/nsHttpChannel.cpp
+++ b/netwerk/protocol/http/nsHttpChannel.cpp
@@ -6977,16 +6977,33 @@ nsHttpChannel::OnStopRequest(nsIRequest
nsresult rv = gHttpHandler->CancelTransaction(mTransaction, status);
if (NS_FAILED(rv)) {
LOG((" CancelTransaction failed (%08x)",
static_cast<uint32_t>(rv)));
}
}
}
+ enum RaceCacheAndNetStatus
+ {
+ kDidNotRaceUsedNetwork = 0,
+ kDidNotRaceUsedCache = 1,
+ kRaceUsedNetwork = 2,
+ kRaceUsedCache = 3
+ };
+
+ RaceCacheAndNetStatus rcwnStatus = kDidNotRaceUsedNetwork;
+ if (request == mTransactionPump) {
+ rcwnStatus = mRaceCacheWithNetwork ? kRaceUsedNetwork : kDidNotRaceUsedNetwork;
+ } else if (request == mCachePump) {
+ rcwnStatus = mRaceCacheWithNetwork ? kRaceUsedCache : kDidNotRaceUsedCache;
+ }
+ Telemetry::Accumulate(Telemetry::NETWORK_RACE_CACHE_WITH_NETWORK_USAGE,
+ rcwnStatus);
+
nsCOMPtr<nsICompressConvStats> conv = do_QueryInterface(mCompressListener);
if (conv) {
conv->GetDecodedDataLength(&mDecodedBodySize);
}
if (mTransaction) {
// determine if we should call DoAuthRetry
bool authRetry = mAuthRetryPending && NS_SUCCEEDED(status);
--- a/toolkit/components/telemetry/Histograms.json
+++ b/toolkit/components/telemetry/Histograms.json
@@ -2142,16 +2142,24 @@
"expires_in_version": "58",
"alert_emails": ["necko@mozilla.com"],
"bug_numbers": [1347948],
"kind": "exponential",
"high": 60000,
"n_buckets": 100,
"description": "Time in milliseconds that http channel spent suspended between AsyncOpen and OnStartRequest."
},
+ "NETWORK_RACE_CACHE_WITH_NETWORK_USAGE": {
+ "expires_in_version": "58",
+ "alert_emails": ["necko@mozilla.com"],
+ "bug_numbers": [1354409],
+ "kind": "enumerated",
+ "n_values": 4,
+ "description": "Whether we raced network with the cache. (0=network & no racing, 1=cache & no racing, 2=network & raced, 3=cache & raced)"
+ },
"HTTP_AUTH_DIALOG_STATS": {
"expires_in_version": "never",
"kind": "enumerated",
"n_values": 4,
"description": "Stats about what kind of resource requested http authentication. (0=top-level doc, 1=same origin subresources, 2=cross-origin subresources, 3=xhr)"
},
"HTTP_AUTH_TYPE_STATS": {
"alert_emails": ["rbarnes@mozilla.com"],