From 8e1e3cafa53e9de96a37495a47b74f89bf2911a0 Mon Sep 17 00:00:00 2001 From: aee Date: Wed, 10 Jul 2024 11:01:12 -0700 Subject: [PATCH] Move where performance entry's reponseEnd is recorded. (#3782) b/231748800 --- .../performance_resource_timing_test.html | 20 +++++++++---------- cobalt/dom/performance_resource_timing.cc | 8 ++++++-- cobalt/dom/performance_resource_timing.h | 2 +- net/base/load_timing_info.h | 1 + net/url_request/url_request.cc | 1 + 5 files changed, 19 insertions(+), 13 deletions(-) diff --git a/cobalt/black_box_tests/testdata/performance_resource_timing_test.html b/cobalt/black_box_tests/testdata/performance_resource_timing_test.html index a7ffe19b7458..f2bff0bb9337 100644 --- a/cobalt/black_box_tests/testdata/performance_resource_timing_test.html +++ b/cobalt/black_box_tests/testdata/performance_resource_timing_test.html @@ -20,19 +20,19 @@ diff --git a/cobalt/dom/performance_resource_timing.cc b/cobalt/dom/performance_resource_timing.cc index 5f1d163f97d9..388f7b46109b 100644 --- a/cobalt/dom/performance_resource_timing.cc +++ b/cobalt/dom/performance_resource_timing.cc @@ -43,7 +43,7 @@ PerformanceResourceTiming::PerformanceResourceTiming( cache_mode_(kPerformanceResourceTimingCacheMode), timing_info_(timing_info), time_origin_(time_origin), - timing_info_response_end_(performance->Now()) {} + fallback_response_end_(performance->Now()) {} std::string PerformanceResourceTiming::initiator_type() const { return initiator_type_; @@ -114,7 +114,11 @@ DOMHighResTimeStamp PerformanceResourceTiming::response_start() const { } DOMHighResTimeStamp PerformanceResourceTiming::response_end() const { - return timing_info_response_end_; + if (timing_info_.response_end.is_null()) { + return fallback_response_end_; + } + return Performance::MonotonicTimeToDOMHighResTimeStamp( + time_origin_, timing_info_.response_end); } uint64_t PerformanceResourceTiming::transfer_size() const { diff --git a/cobalt/dom/performance_resource_timing.h b/cobalt/dom/performance_resource_timing.h index 0932d41a2070..0cebd3988129 100644 --- a/cobalt/dom/performance_resource_timing.h +++ b/cobalt/dom/performance_resource_timing.h @@ -77,7 +77,7 @@ class PerformanceResourceTiming : public PerformanceEntry { std::string requested_url_; net::LoadTimingInfo timing_info_; base::TimeTicks time_origin_; - DOMHighResTimeStamp timing_info_response_end_; + DOMHighResTimeStamp fallback_response_end_; DISALLOW_COPY_AND_ASSIGN(PerformanceResourceTiming); }; diff --git a/net/base/load_timing_info.h b/net/base/load_timing_info.h index 0511dd3572c5..17b939c292d7 100644 --- a/net/base/load_timing_info.h +++ b/net/base/load_timing_info.h @@ -203,6 +203,7 @@ struct NET_EXPORT LoadTimingInfo { uint64_t encoded_body_size; std::string alpn_negotiated_protocol; std::string connection_info_string; + base::TimeTicks response_end; #endif // defined(STARBOARD) }; diff --git a/net/url_request/url_request.cc b/net/url_request/url_request.cc index aad82eb75dec..69c0cd8b2866 100644 --- a/net/url_request/url_request.cc +++ b/net/url_request/url_request.cc @@ -1132,6 +1132,7 @@ void URLRequest::NotifyRequestCompleted() { load_timing_info_.encoded_body_size = static_cast(GetTotalReceivedBytes()); load_timing_info_.alpn_negotiated_protocol = response_info_.alpn_negotiated_protocol; load_timing_info_.connection_info_string = HttpResponseInfo::ConnectionInfoToString(response_info_.connection_info); + load_timing_info_.response_end = base::TimeTicks::Now(); if (load_timing_info_callback_) { load_timing_info_callback_.Run(load_timing_info_); }