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

Unified Diff: chrome/browser/page_load_metrics/page_load_metrics_initialize.cc

Issue 2423383002: [Prerender] first contentful paint histograms. (Closed)
Patch Set: MSVC compilation error Created 3 years, 12 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/page_load_metrics_initialize.cc
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
index a88d9a5125b0652080a03e116e1772b267dabc1b..2080bf23393b93780edcd8421dee1d1f39f7bc33 100644
--- a/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
+++ b/chrome/browser/page_load_metrics/page_load_metrics_initialize.cc
@@ -20,6 +20,7 @@
#include "chrome/browser/page_load_metrics/observers/google_captcha_observer.h"
#include "chrome/browser/page_load_metrics/observers/https_engagement_metrics/https_engagement_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/no_state_prefetch_page_load_metrics_observer.h"
+#include "chrome/browser/page_load_metrics/observers/prerender_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/previews_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/protocol_page_load_metrics_observer.h"
#include "chrome/browser/page_load_metrics/observers/service_worker_page_load_metrics_observer.h"
@@ -43,11 +44,12 @@ class PageLoadMetricsEmbedder
~PageLoadMetricsEmbedder() override;
// page_load_metrics::PageLoadMetricsEmbedderInterface:
- bool IsPrerendering(content::WebContents* web_contents) override;
bool IsNewTabPageUrl(const GURL& url) override;
void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override;
private:
+ bool IsPrerendering() const;
+
content::WebContents* const web_contents_;
DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsEmbedder);
@@ -61,40 +63,49 @@ PageLoadMetricsEmbedder::~PageLoadMetricsEmbedder() {}
void PageLoadMetricsEmbedder::RegisterObservers(
page_load_metrics::PageLoadTracker* tracker) {
- // These classes are owned by the metrics.
- tracker->AddObserver(base::MakeUnique<AbortsPageLoadMetricsObserver>());
- tracker->AddObserver(base::MakeUnique<AMPPageLoadMetricsObserver>());
- tracker->AddObserver(base::MakeUnique<CorePageLoadMetricsObserver>());
- tracker->AddObserver(
- base::MakeUnique<
- data_reduction_proxy::DataReductionProxyMetricsObserver>());
- tracker->AddObserver(base::MakeUnique<FromGWSPageLoadMetricsObserver>());
- tracker->AddObserver(
- base::MakeUnique<google_captcha_observer::GoogleCaptchaObserver>());
- tracker->AddObserver(
- base::MakeUnique<DocumentWritePageLoadMetricsObserver>());
- tracker->AddObserver(
- base::WrapUnique(new previews::PreviewsPageLoadMetricsObserver()));
- tracker->AddObserver(
- base::MakeUnique<ServiceWorkerPageLoadMetricsObserver>());
- tracker->AddObserver(base::MakeUnique<HttpsEngagementPageLoadMetricsObserver>(
- web_contents_->GetBrowserContext()));
- tracker->AddObserver(base::MakeUnique<CssScanningMetricsObserver>());
- tracker->AddObserver(base::MakeUnique<ProtocolPageLoadMetricsObserver>());
- std::unique_ptr<page_load_metrics::PageLoadMetricsObserver>
- no_state_prefetch_observer =
- NoStatePrefetchPageLoadMetricsObserver::CreateIfNeeded(web_contents_);
- if (no_state_prefetch_observer)
- tracker->AddObserver(std::move(no_state_prefetch_observer));
+ if (!IsPrerendering()) {
+ tracker->AddObserver(base::MakeUnique<AbortsPageLoadMetricsObserver>());
+ tracker->AddObserver(base::MakeUnique<AMPPageLoadMetricsObserver>());
+ tracker->AddObserver(base::MakeUnique<CorePageLoadMetricsObserver>());
+ tracker->AddObserver(
+ base::MakeUnique<
+ data_reduction_proxy::DataReductionProxyMetricsObserver>());
+ tracker->AddObserver(base::MakeUnique<FromGWSPageLoadMetricsObserver>());
+ tracker->AddObserver(
+ base::MakeUnique<google_captcha_observer::GoogleCaptchaObserver>());
+ tracker->AddObserver(
+ base::MakeUnique<DocumentWritePageLoadMetricsObserver>());
+ tracker->AddObserver(
+ base::WrapUnique(new previews::PreviewsPageLoadMetricsObserver()));
+ tracker->AddObserver(
+ base::MakeUnique<ServiceWorkerPageLoadMetricsObserver>());
+ tracker->AddObserver(
+ base::MakeUnique<HttpsEngagementPageLoadMetricsObserver>(
+ web_contents_->GetBrowserContext()));
+ tracker->AddObserver(base::MakeUnique<CssScanningMetricsObserver>());
+ tracker->AddObserver(base::MakeUnique<ProtocolPageLoadMetricsObserver>());
+ std::unique_ptr<page_load_metrics::PageLoadMetricsObserver>
+ no_state_prefetch_observer =
+ NoStatePrefetchPageLoadMetricsObserver::CreateIfNeeded(
+ web_contents_);
+ if (no_state_prefetch_observer)
+ tracker->AddObserver(std::move(no_state_prefetch_observer));
#if defined(OS_ANDROID)
- tracker->AddObserver(
- base::MakeUnique<AndroidPageLoadMetricsObserver>(web_contents_));
+ tracker->AddObserver(
+ base::MakeUnique<AndroidPageLoadMetricsObserver>(web_contents_));
#endif // OS_ANDROID
+ } else {
+ std::unique_ptr<page_load_metrics::PageLoadMetricsObserver>
+ prerender_observer =
+ PrerenderPageLoadMetricsObserver::CreateIfNeeded(web_contents_);
+ if (prerender_observer)
+ tracker->AddObserver(std::move(prerender_observer));
+ }
}
-bool PageLoadMetricsEmbedder::IsPrerendering(
- content::WebContents* web_contents) {
- return prerender::PrerenderContents::FromWebContents(web_contents) != nullptr;
+bool PageLoadMetricsEmbedder::IsPrerendering() const {
+ return prerender::PrerenderContents::FromWebContents(web_contents_) !=
+ nullptr;
}
bool PageLoadMetricsEmbedder::IsNewTabPageUrl(const GURL& url) {

Powered by Google App Engine
This is Rietveld 408576698