| 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 7b8f7b8f772cd59318134ae87e51277d26a645c6..0a1bf48d2475c23ef94aaf2c9fa5c120d7301306 100644
|
| --- a/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer.cc
|
| @@ -473,6 +473,16 @@ void PageLoadTracker::FlushMetricsOnAppEnterBackground() {
|
| RecordAppBackgroundPageLoadCompleted(false);
|
| app_entered_background_ = true;
|
| }
|
| +
|
| + const PageLoadExtraInfo info = ComputePageLoadExtraInfo();
|
| + for (auto it = observers_.begin(); it != observers_.end();) {
|
| + if ((*it)->FlushMetricsOnAppEnterBackground(timing_, info) ==
|
| + PageLoadMetricsObserver::STOP_OBSERVING) {
|
| + it = observers_.erase(it);
|
| + } else {
|
| + ++it;
|
| + }
|
| + }
|
| }
|
|
|
| void PageLoadTracker::NotifyClientRedirectTo(
|
| @@ -915,6 +925,11 @@ void MetricsWebContentsObserver::OnInputEvent(
|
| }
|
|
|
| void MetricsWebContentsObserver::FlushMetricsOnAppEnterBackground() {
|
| + // Signal to observers that we've been backgrounded, in cases where the
|
| + // FlushMetricsOnAppEnterBackground callback gets invoked before the
|
| + // associated WasHidden callback.
|
| + WasHidden();
|
| +
|
| if (committed_load_)
|
| committed_load_->FlushMetricsOnAppEnterBackground();
|
| for (const auto& kv : provisional_loads_) {
|
|
|