Bug 1883391 - add telemetry to collect delta between OnDataFinished and OnStopRequest in CSSLoader. r=necko-reviewers,valentin

Differential Revision: https://phabricator.services.mozilla.com/D203945
This commit is contained in:
sunil mayya 2024-03-10 19:03:13 +00:00
parent 1c941a3509
commit 1a9a659014
3 changed files with 28 additions and 0 deletions

View file

@ -7,6 +7,7 @@
#include "mozilla/css/StreamLoader.h"
#include "mozilla/StaticPrefs_network.h"
#include "mozilla/Encoding.h"
#include "mozilla/glean/GleanMetrics.h"
#include "mozilla/TaskQueue.h"
#include "nsContentUtils.h"
#include "nsIChannel.h"
@ -116,6 +117,13 @@ StreamLoader::OnStopRequest(nsIRequest* aRequest, nsresult aStatus) {
// Resolution of parse promise fires onLoadEvent and this should not happen
// before main thread OnStopRequest is dispatched.
if (NS_IsMainThread()) {
if (mOnDataFinishedTime) {
// collect telemetry for the delta between OnDataFinished and
// OnStopRequest
TimeDuration delta = (TimeStamp::Now() - mOnDataFinishedTime);
glean::networking::http_content_cssloader_ondatafinished_to_onstop_delay
.AccumulateRawDuration(delta);
}
mSheetLoadData->mSheet->BlockOrUnblockParsePromise(false);
}
@ -230,6 +238,9 @@ void StreamLoader::HandleBOM() {
NS_IMETHODIMP
StreamLoader::OnDataFinished(nsresult aResult) {
if (StaticPrefs::network_send_OnDataFinished_cssLoader()) {
MOZ_ASSERT(mOnDataFinishedTime.IsNull(),
"OnDataFinished should only be called once");
mOnDataFinishedTime = TimeStamp::Now();
return OnStopRequest(mRequest, aResult);
}

View file

@ -60,6 +60,8 @@ class StreamLoader : public nsIThreadRetargetableStreamListener {
bool mOnStopProcessingDone{false};
RefPtr<SheetLoadDataHolder> mMainThreadSheetLoadData;
mozilla::TimeStamp mOnDataFinishedTime;
#ifdef NIGHTLY_BUILD
bool mChannelOpenFailed = false;
#endif

View file

@ -500,6 +500,21 @@ networking:
- rjesup@mozilla.com
expires: 130
http_content_cssloader_ondatafinished_to_onstop_delay:
type: timing_distribution
time_unit: millisecond
description: >
The time between processing OnDataFinished and processing OnStopRequest for CSSLoader in the content process
bugs:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1883391
data_reviews:
- https://bugzilla.mozilla.org/show_bug.cgi?id=1883391
data_sensitivity:
- technical
notification_emails:
- necko@mozilla.com
expires: 130
http_1_download_throughput:
type: custom_distribution
unit: mbps