| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_obser
ver.h" | 5 #include "chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_obser
ver.h" |
| 6 #include "chrome/browser/browser_process.h" | 6 #include "chrome/browser/browser_process.h" |
| 7 #include "chrome/browser/net/nqe/ui_network_quality_estimator_service.h" | 7 #include "chrome/browser/net/nqe/ui_network_quality_estimator_service.h" |
| 8 #include "chrome/browser/net/nqe/ui_network_quality_estimator_service_factory.h" | 8 #include "chrome/browser/net/nqe/ui_network_quality_estimator_service_factory.h" |
| 9 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" | 9 #include "chrome/browser/page_load_metrics/page_load_metrics_util.h" |
| 10 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 RecordPageLoadExtraInfoMetrics( | 142 RecordPageLoadExtraInfoMetrics( |
| 143 info, base::TimeTicks() /* no app_background_time */); | 143 info, base::TimeTicks() /* no app_background_time */); |
| 144 RecordTimingMetrics(timing); | 144 RecordTimingMetrics(timing); |
| 145 } | 145 } |
| 146 | 146 |
| 147 void UkmPageLoadMetricsObserver::RecordTimingMetrics( | 147 void UkmPageLoadMetricsObserver::RecordTimingMetrics( |
| 148 const page_load_metrics::PageLoadTiming& timing) { | 148 const page_load_metrics::PageLoadTiming& timing) { |
| 149 ukm::UkmService* ukm_service = g_browser_process->ukm_service(); | 149 ukm::UkmService* ukm_service = g_browser_process->ukm_service(); |
| 150 std::unique_ptr<ukm::UkmEntryBuilder> builder = | 150 std::unique_ptr<ukm::UkmEntryBuilder> builder = |
| 151 ukm_service->GetEntryBuilder(source_id_, internal::kUkmPageLoadEventName); | 151 ukm_service->GetEntryBuilder(source_id_, internal::kUkmPageLoadEventName); |
| 152 if (timing.parse_start) { | 152 if (timing.parse_timing.parse_start) { |
| 153 builder->AddMetric(internal::kUkmParseStartName, | 153 builder->AddMetric( |
| 154 timing.parse_start.value().InMilliseconds()); | 154 internal::kUkmParseStartName, |
| 155 timing.parse_timing.parse_start.value().InMilliseconds()); |
| 155 } | 156 } |
| 156 if (timing.dom_content_loaded_event_start) { | 157 if (timing.document_timing.dom_content_loaded_event_start) { |
| 157 builder->AddMetric( | 158 builder->AddMetric( |
| 158 internal::kUkmDomContentLoadedName, | 159 internal::kUkmDomContentLoadedName, |
| 159 timing.dom_content_loaded_event_start.value().InMilliseconds()); | 160 timing.document_timing.dom_content_loaded_event_start.value() |
| 161 .InMilliseconds()); |
| 160 } | 162 } |
| 161 if (timing.load_event_start) { | 163 if (timing.document_timing.load_event_start) { |
| 162 builder->AddMetric(internal::kUkmLoadEventName, | 164 builder->AddMetric( |
| 163 timing.load_event_start.value().InMilliseconds()); | 165 internal::kUkmLoadEventName, |
| 166 timing.document_timing.load_event_start.value().InMilliseconds()); |
| 164 } | 167 } |
| 165 if (timing.first_contentful_paint) { | 168 if (timing.paint_timing.first_contentful_paint) { |
| 166 builder->AddMetric(internal::kUkmFirstContentfulPaintName, | 169 builder->AddMetric( |
| 167 timing.first_contentful_paint.value().InMilliseconds()); | 170 internal::kUkmFirstContentfulPaintName, |
| 171 timing.paint_timing.first_contentful_paint.value().InMilliseconds()); |
| 168 } | 172 } |
| 169 if (timing.first_meaningful_paint) { | 173 if (timing.paint_timing.first_meaningful_paint) { |
| 170 builder->AddMetric(internal::kUkmFirstMeaningfulPaintName, | 174 builder->AddMetric( |
| 171 timing.first_meaningful_paint.value().InMilliseconds()); | 175 internal::kUkmFirstMeaningfulPaintName, |
| 176 timing.paint_timing.first_meaningful_paint.value().InMilliseconds()); |
| 172 } | 177 } |
| 173 } | 178 } |
| 174 | 179 |
| 175 void UkmPageLoadMetricsObserver::RecordPageLoadExtraInfoMetrics( | 180 void UkmPageLoadMetricsObserver::RecordPageLoadExtraInfoMetrics( |
| 176 const page_load_metrics::PageLoadExtraInfo& info, | 181 const page_load_metrics::PageLoadExtraInfo& info, |
| 177 base::TimeTicks app_background_time) { | 182 base::TimeTicks app_background_time) { |
| 178 ukm::UkmService* ukm_service = g_browser_process->ukm_service(); | 183 ukm::UkmService* ukm_service = g_browser_process->ukm_service(); |
| 179 ukm_service->UpdateSourceURL(source_id_, info.start_url); | 184 ukm_service->UpdateSourceURL(source_id_, info.start_url); |
| 180 ukm_service->UpdateSourceURL(source_id_, info.url); | 185 ukm_service->UpdateSourceURL(source_id_, info.url); |
| 181 | 186 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 199 } | 204 } |
| 200 if (transport_rtt_estimate_) { | 205 if (transport_rtt_estimate_) { |
| 201 builder->AddMetric( | 206 builder->AddMetric( |
| 202 internal::kUkmTransportRttEstimate, | 207 internal::kUkmTransportRttEstimate, |
| 203 static_cast<int64_t>(transport_rtt_estimate_.value().InMilliseconds())); | 208 static_cast<int64_t>(transport_rtt_estimate_.value().InMilliseconds())); |
| 204 } | 209 } |
| 205 // page_transition_ fits in a uint32_t, so we can safely cast to int64_t. | 210 // page_transition_ fits in a uint32_t, so we can safely cast to int64_t. |
| 206 builder->AddMetric(internal::kUkmPageTransition, | 211 builder->AddMetric(internal::kUkmPageTransition, |
| 207 static_cast<int64_t>(page_transition_)); | 212 static_cast<int64_t>(page_transition_)); |
| 208 } | 213 } |
| OLD | NEW |