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

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

Issue 2699933003: Generalize abort tracking to page end state tracking (Closed)
Patch Set: fix histogram typo Created 3 years, 10 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/core_page_load_metrics_obse rver.h" 5 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 const char kHistogramLoadTypeFirstContentfulPaintForwardBack[] = 150 const char kHistogramLoadTypeFirstContentfulPaintForwardBack[] =
151 "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType." 151 "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
152 "ForwardBackNavigation"; 152 "ForwardBackNavigation";
153 const char kHistogramLoadTypeFirstContentfulPaintForwardBackNoStore[] = 153 const char kHistogramLoadTypeFirstContentfulPaintForwardBackNoStore[] =
154 "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType." 154 "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
155 "ForwardBackNavigation.NoStore"; 155 "ForwardBackNavigation.NoStore";
156 const char kHistogramLoadTypeFirstContentfulPaintNewNavigation[] = 156 const char kHistogramLoadTypeFirstContentfulPaintNewNavigation[] =
157 "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType." 157 "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
158 "NewNavigation"; 158 "NewNavigation";
159 159
160 const char kHistogramPageTimingPageEnd[] =
161 "PageLoad.PageTiming.NavigationToPageEnd";
162 const char kHistogramPageTimingFirstPaintToPageEnd[] =
163 "PageLoad.PageTiming.FirstPaintToPageEnd";
164
165 const char kHistogramPageTimingFirstBackground[] =
166 "PageLoad.PageTiming.NavigationToFirstBackground";
167 const char kHistogramPageTimingFirstPaintToFirstBackground[] =
168 "PageLoad.PageTiming.FirstPaintToFirstBackground";
169
160 const char kHistogramLoadTypeParseStartReload[] = 170 const char kHistogramLoadTypeParseStartReload[] =
161 "PageLoad.ParseTiming.NavigationToParseStart.LoadType.Reload"; 171 "PageLoad.ParseTiming.NavigationToParseStart.LoadType.Reload";
162 const char kHistogramLoadTypeParseStartForwardBack[] = 172 const char kHistogramLoadTypeParseStartForwardBack[] =
163 "PageLoad.ParseTiming.NavigationToParseStart.LoadType." 173 "PageLoad.ParseTiming.NavigationToParseStart.LoadType."
164 "ForwardBackNavigation"; 174 "ForwardBackNavigation";
165 const char kHistogramLoadTypeParseStartForwardBackNoStore[] = 175 const char kHistogramLoadTypeParseStartForwardBackNoStore[] =
166 "PageLoad.ParseTiming.NavigationToParseStart.LoadType." 176 "PageLoad.ParseTiming.NavigationToParseStart.LoadType."
167 "ForwardBackNavigation.NoStore"; 177 "ForwardBackNavigation.NoStore";
168 const char kHistogramLoadTypeParseStartNewNavigation[] = 178 const char kHistogramLoadTypeParseStartNewNavigation[] =
169 "PageLoad.ParseTiming.NavigationToParseStart.LoadType.NewNavigation"; 179 "PageLoad.ParseTiming.NavigationToParseStart.LoadType.NewNavigation";
170 180
171 const char kHistogramFirstForeground[] = 181 const char kHistogramFirstForeground[] =
172 "PageLoad.Timing2.NavigationToFirstForeground"; 182 "PageLoad.PageTiming.NavigationToFirstForeground";
173 183
174 const char kHistogramFailedProvisionalLoad[] = 184 const char kHistogramFailedProvisionalLoad[] =
175 "PageLoad.Timing2.NavigationToFailedProvisionalLoad"; 185 "PageLoad.PageTiming.NavigationToFailedProvisionalLoad";
176 186
177 const char kHistogramForegroundToFirstPaint[] = 187 const char kHistogramForegroundToFirstPaint[] =
178 "PageLoad.PaintTiming.ForegroundToFirstPaint"; 188 "PageLoad.PaintTiming.ForegroundToFirstPaint";
179 189
180 const char kHistogramCacheRequestPercentParseStop[] = 190 const char kHistogramCacheRequestPercentParseStop[] =
181 "PageLoad.Experimental.Cache.RequestPercent.ParseStop"; 191 "PageLoad.Experimental.Cache.RequestPercent.ParseStop";
182 const char kHistogramCacheTotalRequestsParseStop[] = 192 const char kHistogramCacheTotalRequestsParseStop[] =
183 "PageLoad.Experimental.Cache.TotalRequests.ParseStop"; 193 "PageLoad.Experimental.Cache.TotalRequests.ParseStop";
184 const char kHistogramTotalRequestsParseStop[] = 194 const char kHistogramTotalRequestsParseStop[] =
185 "PageLoad.Experimental.TotalRequests.ParseStop"; 195 "PageLoad.Experimental.TotalRequests.ParseStop";
(...skipping 439 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 ++num_network_resources_; 635 ++num_network_resources_;
626 network_bytes_ += extra_request_info.raw_body_bytes; 636 network_bytes_ += extra_request_info.raw_body_bytes;
627 } 637 }
628 } 638 }
629 639
630 void CorePageLoadMetricsObserver::RecordTimingHistograms( 640 void CorePageLoadMetricsObserver::RecordTimingHistograms(
631 const page_load_metrics::PageLoadTiming& timing, 641 const page_load_metrics::PageLoadTiming& timing,
632 const page_load_metrics::PageLoadExtraInfo& info) { 642 const page_load_metrics::PageLoadExtraInfo& info) {
633 // Log time to first foreground / time to first background. Log counts that we 643 // Log time to first foreground / time to first background. Log counts that we
634 // started a relevant page load in the foreground / background. 644 // started a relevant page load in the foreground / background.
635 if (!info.started_in_foreground) { 645 if (!info.started_in_foreground && info.first_foreground_time) {
636 if (info.first_foreground_time) 646 PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstForeground,
637 PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstForeground, 647 info.first_foreground_time.value());
638 info.first_foreground_time.value());
639 } 648 }
640 649
641 if (timing.first_paint && !timing.first_meaningful_paint) { 650 if (timing.first_paint && !timing.first_meaningful_paint) {
642 RecordFirstMeaningfulPaintStatus( 651 RecordFirstMeaningfulPaintStatus(
643 timing.first_contentful_paint ? 652 timing.first_contentful_paint ?
644 internal::FIRST_MEANINGFUL_PAINT_DID_NOT_REACH_NETWORK_STABLE : 653 internal::FIRST_MEANINGFUL_PAINT_DID_NOT_REACH_NETWORK_STABLE :
645 internal::FIRST_MEANINGFUL_PAINT_DID_NOT_REACH_FIRST_CONTENTFUL_PAINT); 654 internal::FIRST_MEANINGFUL_PAINT_DID_NOT_REACH_FIRST_CONTENTFUL_PAINT);
646 } 655 }
647 656
648 if (timing.first_paint) { 657 if (timing.first_paint) {
(...skipping 12 matching lines...) Expand all
661 } 670 }
662 if (timing.first_meaningful_paint) { 671 if (timing.first_meaningful_paint) {
663 if (first_user_interaction_after_first_paint_.is_null()) { 672 if (first_user_interaction_after_first_paint_.is_null()) {
664 PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaintNoUserInput, 673 PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaintNoUserInput,
665 timing.first_meaningful_paint.value()); 674 timing.first_meaningful_paint.value());
666 } else { 675 } else {
667 PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaintHadUserInput, 676 PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaintHadUserInput,
668 timing.first_meaningful_paint.value()); 677 timing.first_meaningful_paint.value());
669 } 678 }
670 } 679 }
680
681 if (!info.started_in_foreground)
682 return;
683
684 if (info.first_background_time) {
685 PAGE_LOAD_HISTOGRAM(internal::kHistogramPageTimingFirstBackground,
686 info.first_background_time.value());
687 if (timing.first_paint &&
688 timing.first_paint <= info.first_background_time) {
689 PAGE_LOAD_HISTOGRAM(
690 internal::kHistogramPageTimingFirstPaintToFirstBackground,
691 info.first_background_time.value() - timing.first_paint.value());
692 }
693 } else if (info.page_end_time) {
694 PAGE_LOAD_HISTOGRAM(internal::kHistogramPageTimingPageEnd,
695 info.page_end_time.value());
696 if (timing.first_paint && timing.first_paint <= info.page_end_time) {
697 PAGE_LOAD_HISTOGRAM(
698 internal::kHistogramPageTimingFirstPaintToPageEnd,
699 info.page_end_time.value() - timing.first_paint.value());
700 }
701 }
671 } 702 }
672 703
673 void CorePageLoadMetricsObserver::RecordByteAndResourceHistograms( 704 void CorePageLoadMetricsObserver::RecordByteAndResourceHistograms(
674 const page_load_metrics::PageLoadTiming& timing, 705 const page_load_metrics::PageLoadTiming& timing,
675 const page_load_metrics::PageLoadExtraInfo& info) { 706 const page_load_metrics::PageLoadExtraInfo& info) {
676 DCHECK_GE(network_bytes_, 0); 707 DCHECK_GE(network_bytes_, 0);
677 DCHECK_GE(cache_bytes_, 0); 708 DCHECK_GE(cache_bytes_, 0);
678 int64_t total_bytes = network_bytes_ + cache_bytes_; 709 int64_t total_bytes = network_bytes_ + cache_bytes_;
679 710
680 PAGE_BYTES_HISTOGRAM(internal::kHistogramNetworkBytes, network_bytes_); 711 PAGE_BYTES_HISTOGRAM(internal::kHistogramNetworkBytes, network_bytes_);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 std::move(sample)); 755 std::move(sample));
725 } 756 }
726 757
727 // Log the eTLD+1 of sites that did not report first meaningful paint. 758 // Log the eTLD+1 of sites that did not report first meaningful paint.
728 if (timing.first_paint && !timing.first_meaningful_paint) { 759 if (timing.first_paint && !timing.first_meaningful_paint) {
729 rappor::SampleDomainAndRegistryFromGURL( 760 rappor::SampleDomainAndRegistryFromGURL(
730 rappor_service, 761 rappor_service,
731 internal::kRapporMetricsNameFirstMeaningfulPaintNotRecorded, info.url); 762 internal::kRapporMetricsNameFirstMeaningfulPaintNotRecorded, info.url);
732 } 763 }
733 } 764 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698