Index: chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
index 4f1635151f42b52ef3e52a75ff967db51a72ba94..3f13df0ce8d73eb99779610a5b9f59252207edf1 100644 |
--- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
+++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc |
@@ -53,6 +53,8 @@ const char kClientRedirectWithoutPaint[] = |
"PageLoad.Internal.ClientRedirect.NavigationWithoutPaint"; |
const char kCommitToCompleteNoTimingIPCs[] = |
"PageLoad.Internal.CommitToComplete.NoTimingIPCs"; |
+const char kPageLoadCompletedAfterAppBackground[] = |
+ "PageLoad.Internal.PageLoadCompleted.AfterAppBackground"; |
} // namespace internal |
@@ -247,6 +249,7 @@ PageLoadTracker::PageLoadTracker( |
int aborted_chain_size, |
int aborted_chain_size_same_url) |
: did_stop_tracking_(false), |
+ app_entered_background_(false), |
navigation_start_(navigation_handle->NavigationStart()), |
url_(navigation_handle->GetURL()), |
abort_type_(ABORT_NONE), |
@@ -263,6 +266,10 @@ PageLoadTracker::PageLoadTracker( |
} |
PageLoadTracker::~PageLoadTracker() { |
+ if (app_entered_background_) { |
+ UMA_HISTOGRAM_BOOLEAN(internal::kPageLoadCompletedAfterAppBackground, true); |
Alexei Svitkine (slow)
2016/07/29 17:31:27
Each histogram macro resolves to a lot of machine
Bryan McQuade
2016/07/29 17:48:10
Ah, right, thanks for reminding me about this. Don
|
+ } |
+ |
if (did_stop_tracking_) |
return; |
@@ -398,6 +405,14 @@ void PageLoadTracker::OnInputEvent(const blink::WebInputEvent& event) { |
} |
} |
+void PageLoadTracker::FlushMetricsOnAppEnterBackground() { |
+ if (!app_entered_background_) { |
+ UMA_HISTOGRAM_BOOLEAN(internal::kPageLoadCompletedAfterAppBackground, |
+ false); |
+ app_entered_background_ = true; |
+ } |
+} |
+ |
void PageLoadTracker::NotifyClientRedirectTo( |
const PageLoadTracker& destination) { |
if (timing_.first_paint) { |
@@ -805,6 +820,17 @@ void MetricsWebContentsObserver::OnInputEvent( |
committed_load_->OnInputEvent(event); |
} |
+void MetricsWebContentsObserver::FlushMetricsOnAppEnterBackground() { |
+ if (committed_load_) |
+ committed_load_->FlushMetricsOnAppEnterBackground(); |
+ for (const auto& kv : provisional_loads_) { |
+ kv.second->FlushMetricsOnAppEnterBackground(); |
+ } |
+ for (const auto& tracker : aborted_provisional_loads_) { |
+ tracker->FlushMetricsOnAppEnterBackground(); |
+ } |
+} |
+ |
void MetricsWebContentsObserver::DidRedirectNavigation( |
content::NavigationHandle* navigation_handle) { |
if (!navigation_handle->IsInMainFrame()) |