| Index: chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc
|
| index 43f863441e2a3447abc92eacca1fb4b90f5a6cdc..dd8aaf7efede949e515e3d3883c90526a37cc3a1 100644
|
| --- a/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc
|
| @@ -28,6 +28,9 @@ const char kUkmFailedProvisionaLoadName[] =
|
| "PageTiming.NavigationToFailedProvisionalLoad";
|
| const char kUkmEffectiveConnectionType[] =
|
| "Net.EffectiveConnectionType.OnNavigationStart";
|
| +const char kUkmHttpRttEstimate[] = "Net.HttpRttEstimate.OnNavigationStart";
|
| +const char kUkmTransportRttEstimate[] =
|
| + "Net.TransportRttEstimate.OnNavigationStart";
|
| const char kUkmNetErrorCode[] = "Net.ErrorCode.OnFailedProvisionalLoad";
|
| const char kUkmPageTransition[] = "Navigation.PageTransition";
|
|
|
| @@ -81,6 +84,8 @@ UkmPageLoadMetricsObserver::ObservePolicy UkmPageLoadMetricsObserver::OnStart(
|
| if (network_quality_provider_) {
|
| effective_connection_type_ =
|
| network_quality_provider_->GetEffectiveConnectionType();
|
| + http_rtt_estimate_ = network_quality_provider_->GetHttpRTT();
|
| + transport_rtt_estimate_ = network_quality_provider_->GetTransportRTT();
|
| }
|
| page_transition_ = navigation_handle->GetPageTransition();
|
| return CONTINUE_OBSERVING;
|
| @@ -187,6 +192,16 @@ void UkmPageLoadMetricsObserver::RecordPageLoadExtraInfoMetrics(
|
| builder->AddMetric(internal::kUkmEffectiveConnectionType,
|
| static_cast<int64_t>(effective_connection_type_));
|
| }
|
| + if (http_rtt_estimate_) {
|
| + builder->AddMetric(
|
| + internal::kUkmHttpRttEstimate,
|
| + static_cast<int64_t>(http_rtt_estimate_.value().InMilliseconds()));
|
| + }
|
| + if (transport_rtt_estimate_) {
|
| + builder->AddMetric(
|
| + internal::kUkmTransportRttEstimate,
|
| + static_cast<int64_t>(transport_rtt_estimate_.value().InMilliseconds()));
|
| + }
|
| // page_transition_ fits in a uint32_t, so we can safely cast to int64_t.
|
| builder->AddMetric(internal::kUkmPageTransition,
|
| static_cast<int64_t>(page_transition_));
|
|
|