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

Unified Diff: chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc

Issue 2174423004: Add page load metrics for no-store forward back navigations. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update histograms.xml and add another histogram Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
diff --git a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
index 4cdc73f92eb24c8bb6258533f2fccfd523006ca1..cc5c8d92380d1f58fa9c2d70d24b47ecb053dcc5 100644
--- a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
+++ b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
@@ -12,6 +12,7 @@
#include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
#include "components/rappor/rappor_service.h"
#include "components/rappor/rappor_utils.h"
+#include "net/http/http_response_headers.h"
#include "ui/base/page_transition_types.h"
namespace {
@@ -120,6 +121,9 @@ const char kBackgroundHistogramParseBlockedOnScriptLoadDocumentWrite[] =
"PageLoad.ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite."
"Background";
+const char kHistogramFirstContentfulPaintNoStore[] =
+ "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.NoStore";
+
const char kHistogramLoadTypeFirstContentfulPaintReload[] =
"PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
"Reload";
@@ -129,6 +133,9 @@ const char kHistogramLoadTypeFirstContentfulPaintReloadByGesture[] =
const char kHistogramLoadTypeFirstContentfulPaintForwardBack[] =
"PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
"ForwardBackNavigation";
+const char kHistogramLoadTypeFirstContentfulPaintForwardBackNoStore[] =
+ "PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
+ "ForwardBackNavigation.NoStore";
const char kHistogramLoadTypeFirstContentfulPaintNewNavigation[] =
"PageLoad.PaintTiming.NavigationToFirstContentfulPaint.LoadType."
"NewNavigation";
@@ -138,6 +145,9 @@ const char kHistogramLoadTypeParseStartReload[] =
const char kHistogramLoadTypeParseStartForwardBack[] =
"PageLoad.ParseTiming.NavigationToParseStart.LoadType."
"ForwardBackNavigation";
+const char kHistogramLoadTypeParseStartForwardBackNoStore[] =
+ "PageLoad.ParseTiming.NavigationToParseStart.LoadType."
+ "ForwardBackNavigation.NoStore";
const char kHistogramLoadTypeParseStartNewNavigation[] =
"PageLoad.ParseTiming.NavigationToParseStart.LoadType.NewNavigation";
@@ -165,7 +175,8 @@ const char kRapporMetricsNameCoarseTiming[] =
CorePageLoadMetricsObserver::CorePageLoadMetricsObserver()
: transition_(ui::PAGE_TRANSITION_LINK),
- initiated_by_user_gesture_(false) {}
+ initiated_by_user_gesture_(false),
+ was_no_store_main_resource_(false) {}
CorePageLoadMetricsObserver::~CorePageLoadMetricsObserver() {}
@@ -173,6 +184,12 @@ void CorePageLoadMetricsObserver::OnCommit(
content::NavigationHandle* navigation_handle) {
transition_ = navigation_handle->GetPageTransition();
initiated_by_user_gesture_ = navigation_handle->HasUserGesture();
+ const net::HttpResponseHeaders* headers =
+ navigation_handle->GetResponseHeaders();
+ if (headers) {
+ was_no_store_main_resource_ =
+ headers->HasHeaderValue("cache-control", "no-store");
+ }
}
void CorePageLoadMetricsObserver::OnDomContentLoadedEventStart(
@@ -277,6 +294,11 @@ void CorePageLoadMetricsObserver::OnFirstContentfulPaint(
internal::kHistogramParseStartToFirstContentfulPaint,
timing.first_contentful_paint.value() - timing.parse_start.value());
+ if (was_no_store_main_resource_) {
+ PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstContentfulPaintNoStore,
+ timing.first_contentful_paint.value());
+ }
+
switch (GetPageLoadType(transition_)) {
case LOAD_TYPE_RELOAD:
PAGE_LOAD_HISTOGRAM(
@@ -292,6 +314,12 @@ void CorePageLoadMetricsObserver::OnFirstContentfulPaint(
PAGE_LOAD_HISTOGRAM(
internal::kHistogramLoadTypeFirstContentfulPaintForwardBack,
timing.first_contentful_paint.value());
+ if (was_no_store_main_resource_) {
+ PAGE_LOAD_HISTOGRAM(
+ internal::
+ kHistogramLoadTypeFirstContentfulPaintForwardBackNoStore,
+ timing.first_contentful_paint.value());
+ }
break;
case LOAD_TYPE_NEW_NAVIGATION:
PAGE_LOAD_HISTOGRAM(
@@ -327,6 +355,11 @@ void CorePageLoadMetricsObserver::OnParseStart(
case LOAD_TYPE_FORWARD_BACK:
PAGE_LOAD_HISTOGRAM(internal::kHistogramLoadTypeParseStartForwardBack,
timing.parse_start.value());
+ if (was_no_store_main_resource_) {
+ PAGE_LOAD_HISTOGRAM(
+ internal::kHistogramLoadTypeParseStartForwardBackNoStore,
+ timing.parse_start.value());
+ }
break;
case LOAD_TYPE_NEW_NAVIGATION:
PAGE_LOAD_HISTOGRAM(internal::kHistogramLoadTypeParseStartNewNavigation,

Powered by Google App Engine
This is Rietveld 408576698