From cc80d8fcd8a926bfa77f325d24897df192c8fa8b Mon Sep 17 00:00:00 2001 From: Valentin Gosu Date: Thu, 20 Apr 2017 16:42:10 +0800 Subject: [PATCH] Bug 1354409 - Add telemetry for how often we race network and cache r=michal MozReview-Commit-ID: 1D1KyGbLxdW --HG-- extra : rebase_source : 5bfeed6c1fb8f1379844947bd391ac352700b411 --- netwerk/protocol/http/nsHttpChannel.cpp | 17 +++++++++++++++++ toolkit/components/telemetry/Histograms.json | 8 ++++++++ 2 files changed, 25 insertions(+) diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp index f00fb8bb4e1c..c21fe4a1ec1b 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp @@ -7003,6 +7003,23 @@ nsHttpChannel::OnStopRequest(nsIRequest *request, nsISupports *ctxt, nsresult st } } + 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 conv = do_QueryInterface(mCompressListener); if (conv) { conv->GetDecodedDataLength(&mDecodedBodySize); diff --git a/toolkit/components/telemetry/Histograms.json b/toolkit/components/telemetry/Histograms.json index f3bfc4ab439b..57532d16669e 100644 --- a/toolkit/components/telemetry/Histograms.json +++ b/toolkit/components/telemetry/Histograms.json @@ -2057,6 +2057,14 @@ "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",