Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(728)

Side by Side Diff: chrome/browser/page_load_metrics/observers/ukm_page_load_metrics_observer.cc

Issue 2874663005: [Page Load Metrics] Add mojom file to page load metrics. (Closed)
Patch Set: Remove unnecessary variable Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 UkmPageLoadMetricsObserver::ObservePolicy UkmPageLoadMetricsObserver::OnCommit( 94 UkmPageLoadMetricsObserver::ObservePolicy UkmPageLoadMetricsObserver::OnCommit(
95 content::NavigationHandle* navigation_handle) { 95 content::NavigationHandle* navigation_handle) {
96 // The PageTransition for the navigation may be updated on commit. 96 // The PageTransition for the navigation may be updated on commit.
97 page_transition_ = navigation_handle->GetPageTransition(); 97 page_transition_ = navigation_handle->GetPageTransition();
98 return CONTINUE_OBSERVING; 98 return CONTINUE_OBSERVING;
99 } 99 }
100 100
101 UkmPageLoadMetricsObserver::ObservePolicy 101 UkmPageLoadMetricsObserver::ObservePolicy
102 UkmPageLoadMetricsObserver::FlushMetricsOnAppEnterBackground( 102 UkmPageLoadMetricsObserver::FlushMetricsOnAppEnterBackground(
103 const page_load_metrics::PageLoadTiming& timing, 103 const page_load_metrics::mojom::PageLoadTiming& timing,
104 const page_load_metrics::PageLoadExtraInfo& info) { 104 const page_load_metrics::PageLoadExtraInfo& info) {
105 RecordPageLoadExtraInfoMetrics(info, base::TimeTicks::Now()); 105 RecordPageLoadExtraInfoMetrics(info, base::TimeTicks::Now());
106 RecordTimingMetrics(timing); 106 RecordTimingMetrics(timing);
107 return STOP_OBSERVING; 107 return STOP_OBSERVING;
108 } 108 }
109 109
110 UkmPageLoadMetricsObserver::ObservePolicy UkmPageLoadMetricsObserver::OnHidden( 110 UkmPageLoadMetricsObserver::ObservePolicy UkmPageLoadMetricsObserver::OnHidden(
111 const page_load_metrics::PageLoadTiming& timing, 111 const page_load_metrics::mojom::PageLoadTiming& timing,
112 const page_load_metrics::PageLoadExtraInfo& info) { 112 const page_load_metrics::PageLoadExtraInfo& info) {
113 RecordPageLoadExtraInfoMetrics( 113 RecordPageLoadExtraInfoMetrics(
114 info, base::TimeTicks() /* no app_background_time */); 114 info, base::TimeTicks() /* no app_background_time */);
115 RecordTimingMetrics(timing); 115 RecordTimingMetrics(timing);
116 return STOP_OBSERVING; 116 return STOP_OBSERVING;
117 } 117 }
118 118
119 void UkmPageLoadMetricsObserver::OnFailedProvisionalLoad( 119 void UkmPageLoadMetricsObserver::OnFailedProvisionalLoad(
120 const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info, 120 const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info,
121 const page_load_metrics::PageLoadExtraInfo& extra_info) { 121 const page_load_metrics::PageLoadExtraInfo& extra_info) {
122 RecordPageLoadExtraInfoMetrics( 122 RecordPageLoadExtraInfoMetrics(
123 extra_info, base::TimeTicks() /* no app_background_time */); 123 extra_info, base::TimeTicks() /* no app_background_time */);
124 124
125 ukm::UkmService* ukm_service = g_browser_process->ukm_service(); 125 ukm::UkmService* ukm_service = g_browser_process->ukm_service();
126 std::unique_ptr<ukm::UkmEntryBuilder> builder = 126 std::unique_ptr<ukm::UkmEntryBuilder> builder =
127 ukm_service->GetEntryBuilder(source_id_, internal::kUkmPageLoadEventName); 127 ukm_service->GetEntryBuilder(source_id_, internal::kUkmPageLoadEventName);
128 // Error codes have negative values, however we log net error code enum values 128 // Error codes have negative values, however we log net error code enum values
129 // for UMA histograms using the equivalent positive value. For consistency in 129 // for UMA histograms using the equivalent positive value. For consistency in
130 // UKM, we convert to a positive value here. 130 // UKM, we convert to a positive value here.
131 int64_t net_error_code = static_cast<int64_t>(failed_load_info.error) * -1; 131 int64_t net_error_code = static_cast<int64_t>(failed_load_info.error) * -1;
132 DCHECK_GE(net_error_code, 0); 132 DCHECK_GE(net_error_code, 0);
133 builder->AddMetric(internal::kUkmNetErrorCode, net_error_code); 133 builder->AddMetric(internal::kUkmNetErrorCode, net_error_code);
134 builder->AddMetric( 134 builder->AddMetric(
135 internal::kUkmFailedProvisionaLoadName, 135 internal::kUkmFailedProvisionaLoadName,
136 failed_load_info.time_to_failed_provisional_load.InMilliseconds()); 136 failed_load_info.time_to_failed_provisional_load.InMilliseconds());
137 } 137 }
138 138
139 void UkmPageLoadMetricsObserver::OnComplete( 139 void UkmPageLoadMetricsObserver::OnComplete(
140 const page_load_metrics::PageLoadTiming& timing, 140 const page_load_metrics::mojom::PageLoadTiming& timing,
141 const page_load_metrics::PageLoadExtraInfo& info) { 141 const page_load_metrics::PageLoadExtraInfo& info) {
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::mojom::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_timing.parse_start) { 152 if (timing.parse_timing->parse_start) {
153 builder->AddMetric( 153 builder->AddMetric(
154 internal::kUkmParseStartName, 154 internal::kUkmParseStartName,
155 timing.parse_timing.parse_start.value().InMilliseconds()); 155 timing.parse_timing->parse_start.value().InMilliseconds());
156 } 156 }
157 if (timing.document_timing.dom_content_loaded_event_start) { 157 if (timing.document_timing->dom_content_loaded_event_start) {
158 builder->AddMetric( 158 builder->AddMetric(
159 internal::kUkmDomContentLoadedName, 159 internal::kUkmDomContentLoadedName,
160 timing.document_timing.dom_content_loaded_event_start.value() 160 timing.document_timing->dom_content_loaded_event_start.value()
161 .InMilliseconds()); 161 .InMilliseconds());
162 } 162 }
163 if (timing.document_timing.load_event_start) { 163 if (timing.document_timing->load_event_start) {
164 builder->AddMetric( 164 builder->AddMetric(
165 internal::kUkmLoadEventName, 165 internal::kUkmLoadEventName,
166 timing.document_timing.load_event_start.value().InMilliseconds()); 166 timing.document_timing->load_event_start.value().InMilliseconds());
167 } 167 }
168 if (timing.paint_timing.first_contentful_paint) { 168 if (timing.paint_timing->first_contentful_paint) {
169 builder->AddMetric( 169 builder->AddMetric(
170 internal::kUkmFirstContentfulPaintName, 170 internal::kUkmFirstContentfulPaintName,
171 timing.paint_timing.first_contentful_paint.value().InMilliseconds()); 171 timing.paint_timing->first_contentful_paint.value().InMilliseconds());
172 } 172 }
173 if (timing.paint_timing.first_meaningful_paint) { 173 if (timing.paint_timing->first_meaningful_paint) {
174 builder->AddMetric( 174 builder->AddMetric(
175 internal::kUkmFirstMeaningfulPaintName, 175 internal::kUkmFirstMeaningfulPaintName,
176 timing.paint_timing.first_meaningful_paint.value().InMilliseconds()); 176 timing.paint_timing->first_meaningful_paint.value().InMilliseconds());
177 } 177 }
178 } 178 }
179 179
180 void UkmPageLoadMetricsObserver::RecordPageLoadExtraInfoMetrics( 180 void UkmPageLoadMetricsObserver::RecordPageLoadExtraInfoMetrics(
181 const page_load_metrics::PageLoadExtraInfo& info, 181 const page_load_metrics::PageLoadExtraInfo& info,
182 base::TimeTicks app_background_time) { 182 base::TimeTicks app_background_time) {
183 ukm::UkmService* ukm_service = g_browser_process->ukm_service(); 183 ukm::UkmService* ukm_service = g_browser_process->ukm_service();
184 ukm_service->UpdateSourceURL(source_id_, info.start_url); 184 ukm_service->UpdateSourceURL(source_id_, info.start_url);
185 ukm_service->UpdateSourceURL(source_id_, info.url); 185 ukm_service->UpdateSourceURL(source_id_, info.url);
186 186
(...skipping 17 matching lines...) Expand all
204 } 204 }
205 if (transport_rtt_estimate_) { 205 if (transport_rtt_estimate_) {
206 builder->AddMetric( 206 builder->AddMetric(
207 internal::kUkmTransportRttEstimate, 207 internal::kUkmTransportRttEstimate,
208 static_cast<int64_t>(transport_rtt_estimate_.value().InMilliseconds())); 208 static_cast<int64_t>(transport_rtt_estimate_.value().InMilliseconds()));
209 } 209 }
210 // 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.
211 builder->AddMetric(internal::kUkmPageTransition, 211 builder->AddMetric(internal::kUkmPageTransition,
212 static_cast<int64_t>(page_transition_)); 212 static_cast<int64_t>(page_transition_));
213 } 213 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698