Add IsCloningDataFinishedBeforeResponseComplete histogram
This is a follow up for crrev.com/c/6101238. To ensure if the speculative fix introduced in crrev.com/c/6101238 actually works, and understand how often the case happens, this CL adds the new boolean metrics. Bug: 384414080 Change-Id: I25d75a1408a69b5fe4752b9714913084308eeb17 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6096624 Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org> Reviewed-by: Keita Suzuki <suzukikeita@chromium.org> Commit-Queue: Shunya Shishido <sisidovski@chromium.org> Cr-Commit-Position: refs/heads/main@{#1397774}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
9ba2ac0a23
commit
dae92c40de
content/common/service_worker
tools/metrics/histograms/metadata/service
@ -33,6 +33,17 @@ const char kMainResourceHistogramForRaceNetworkFetchEvent[] =
|
||||
"ServiceWorker.FetchEvent.MainResource.RaceNetworkRequest";
|
||||
const char kSubresourceHistogramForRaceNetworkFetchEvent[] =
|
||||
"ServiceWorker.FetchEvent.Subresource.RaceNetworkRequest";
|
||||
|
||||
void RecordRaceNetworkRequestCloningResponseForFetchHandlerHistogram(
|
||||
bool is_main_resource,
|
||||
bool is_cloning_data_finished_before_response_complete) {
|
||||
base::UmaHistogramBoolean(
|
||||
base::StrCat({is_main_resource
|
||||
? kMainResourceHistogramForRaceNetworkFetchEvent
|
||||
: kSubresourceHistogramForRaceNetworkFetchEvent,
|
||||
".IsCloningDataFinishedBeforeResponseComplete"}),
|
||||
is_cloning_data_finished_before_response_complete);
|
||||
}
|
||||
} // namespace
|
||||
|
||||
ServiceWorkerRaceNetworkRequestURLLoaderClient::
|
||||
@ -382,6 +393,9 @@ void ServiceWorkerRaceNetworkRequestURLLoaderClient::CompleteResponse() {
|
||||
// ServiceWorkerStaticRouterRaceNetworkRequestPerformanceImprovement feature
|
||||
// is enabled.
|
||||
forwarding_client_->OnComplete(completion_status_.value());
|
||||
RecordRaceNetworkRequestCloningResponseForFetchHandlerHistogram(
|
||||
is_main_resource_,
|
||||
/*is_cloning_data_finished_before_response_complete=*/true);
|
||||
}
|
||||
}
|
||||
|
||||
@ -689,6 +703,9 @@ void ServiceWorkerRaceNetworkRequestURLLoaderClient::
|
||||
// completed as well.
|
||||
forwarding_client_->OnComplete(completion_status_.value());
|
||||
write_buffer_manager_for_fetch_handler_.ResetProducer();
|
||||
RecordRaceNetworkRequestCloningResponseForFetchHandlerHistogram(
|
||||
is_main_resource_,
|
||||
/*is_cloning_data_finished_before_response_complete=*/false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -456,6 +456,25 @@ chromium-metrics-reviews@google.com.
|
||||
</token>
|
||||
</histogram>
|
||||
|
||||
<histogram
|
||||
name="ServiceWorker.FetchEvent.{Resource}.RaceNetworkRequest.IsCloningDataFinishedBeforeResponseComplete"
|
||||
enum="Boolean" expires_after="2025-05-11">
|
||||
<owner>sisidovski@chromium.org</owner>
|
||||
<owner>chrome-worker@google.com</owner>
|
||||
<summary>
|
||||
Recorded as true when the data cloning from the original response to the
|
||||
data pipe for the fetch handler is completed, but still the completion
|
||||
status via `ServiceWorkerRaceNetworkRequestURLLoaderClient::OnComplete()` is
|
||||
not invoked.
|
||||
|
||||
This metric is recorded per {Resource}.
|
||||
</summary>
|
||||
<token key="Resource">
|
||||
<variant name="MainResource" summary="main resource"/>
|
||||
<variant name="Subresource" summary="subresource"/>
|
||||
</token>
|
||||
</histogram>
|
||||
|
||||
<histogram
|
||||
name="ServiceWorker.FetchEvent.{Resource}.RaceNetworkRequest.Redirect"
|
||||
enum="Boolean" expires_after="2025-01-26">
|
||||
|
Reference in New Issue
Block a user