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

Side by Side Diff: chrome/browser/page_load_metrics/page_load_metrics_initialize.cc

Issue 2139243003: customtabs: Send time to first contentful paint to the caller. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 5 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/page_load_metrics_initialize.h" 5 #include "chrome/browser/page_load_metrics/page_load_metrics_initialize.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #if defined(OS_ANDROID)
10 #include "chrome/browser/page_load_metrics/observers/android_page_load_metrics_o bserver.h"
11 #endif // OS_ANDROID
9 #include "chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_ob server.h" 12 #include "chrome/browser/page_load_metrics/observers/aborts_page_load_metrics_ob server.h"
10 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h" 13 #include "chrome/browser/page_load_metrics/observers/core_page_load_metrics_obse rver.h"
11 #include "chrome/browser/page_load_metrics/observers/data_reduction_proxy_metric s_observer.h" 14 #include "chrome/browser/page_load_metrics/observers/data_reduction_proxy_metric s_observer.h"
12 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h" 15 #include "chrome/browser/page_load_metrics/observers/document_write_page_load_me trics_observer.h"
13 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h" 16 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_ observer.h"
14 #include "chrome/browser/page_load_metrics/observers/google_captcha_observer.h" 17 #include "chrome/browser/page_load_metrics/observers/google_captcha_observer.h"
15 #include "chrome/browser/page_load_metrics/observers/https_engagement_page_load_ metrics_observer.h" 18 #include "chrome/browser/page_load_metrics/observers/https_engagement_page_load_ metrics_observer.h"
16 #include "chrome/browser/page_load_metrics/observers/service_worker_page_load_me trics_observer.h" 19 #include "chrome/browser/page_load_metrics/observers/service_worker_page_load_me trics_observer.h"
17 #include "chrome/browser/page_load_metrics/observers/stale_while_revalidate_metr ics_observer.h" 20 #include "chrome/browser/page_load_metrics/observers/stale_while_revalidate_metr ics_observer.h"
18 #include "chrome/browser/prerender/prerender_contents.h" 21 #include "chrome/browser/prerender/prerender_contents.h"
(...skipping 10 matching lines...) Expand all
29 32
30 class PageLoadMetricsEmbedder 33 class PageLoadMetricsEmbedder
31 : public page_load_metrics::PageLoadMetricsEmbedderInterface { 34 : public page_load_metrics::PageLoadMetricsEmbedderInterface {
32 public: 35 public:
33 explicit PageLoadMetricsEmbedder(content::WebContents* web_contents); 36 explicit PageLoadMetricsEmbedder(content::WebContents* web_contents);
34 ~PageLoadMetricsEmbedder() override; 37 ~PageLoadMetricsEmbedder() override;
35 38
36 // page_load_metrics::PageLoadMetricsEmbedderInterface: 39 // page_load_metrics::PageLoadMetricsEmbedderInterface:
37 bool IsPrerendering(content::WebContents* web_contents) override; 40 bool IsPrerendering(content::WebContents* web_contents) override;
38 bool IsNewTabPageUrl(const GURL& url) override; 41 bool IsNewTabPageUrl(const GURL& url) override;
39 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker) override; 42 void RegisterObservers(page_load_metrics::PageLoadTracker* tracker,
43 content::WebContents* web_contents) override;
40 44
41 private: 45 private:
42 content::WebContents* const web_contents_; 46 content::WebContents* const web_contents_;
43 47
44 DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsEmbedder); 48 DISALLOW_COPY_AND_ASSIGN(PageLoadMetricsEmbedder);
45 }; 49 };
46 50
47 PageLoadMetricsEmbedder::PageLoadMetricsEmbedder( 51 PageLoadMetricsEmbedder::PageLoadMetricsEmbedder(
48 content::WebContents* web_contents) 52 content::WebContents* web_contents)
49 : web_contents_(web_contents) {} 53 : web_contents_(web_contents) {}
50 54
51 PageLoadMetricsEmbedder::~PageLoadMetricsEmbedder() {} 55 PageLoadMetricsEmbedder::~PageLoadMetricsEmbedder() {}
52 56
53 void PageLoadMetricsEmbedder::RegisterObservers( 57 void PageLoadMetricsEmbedder::RegisterObservers(
54 page_load_metrics::PageLoadTracker* tracker) { 58 page_load_metrics::PageLoadTracker* tracker,
59 content::WebContents* web_contents) {
55 // These classes are owned by the metrics. 60 // These classes are owned by the metrics.
56 tracker->AddObserver(base::WrapUnique(new AbortsPageLoadMetricsObserver())); 61 tracker->AddObserver(base::WrapUnique(new AbortsPageLoadMetricsObserver()));
57 tracker->AddObserver(base::WrapUnique(new CorePageLoadMetricsObserver())); 62 tracker->AddObserver(base::WrapUnique(new CorePageLoadMetricsObserver()));
58 tracker->AddObserver(base::WrapUnique( 63 tracker->AddObserver(base::WrapUnique(
59 new data_reduction_proxy::DataReductionProxyMetricsObserver())); 64 new data_reduction_proxy::DataReductionProxyMetricsObserver()));
60 tracker->AddObserver(base::WrapUnique(new FromGWSPageLoadMetricsObserver())); 65 tracker->AddObserver(base::WrapUnique(new FromGWSPageLoadMetricsObserver()));
61 tracker->AddObserver( 66 tracker->AddObserver(
62 base::WrapUnique(new google_captcha_observer::GoogleCaptchaObserver())); 67 base::WrapUnique(new google_captcha_observer::GoogleCaptchaObserver()));
63 // TODO(ricea): Remove this in April 2016 or before. crbug.com/348877 68 // TODO(ricea): Remove this in April 2016 or before. crbug.com/348877
64 tracker->AddObserver( 69 tracker->AddObserver(
65 base::WrapUnique(new chrome::StaleWhileRevalidateMetricsObserver())); 70 base::WrapUnique(new chrome::StaleWhileRevalidateMetricsObserver()));
66 tracker->AddObserver( 71 tracker->AddObserver(
67 base::WrapUnique(new DocumentWritePageLoadMetricsObserver())); 72 base::WrapUnique(new DocumentWritePageLoadMetricsObserver()));
68 tracker->AddObserver( 73 tracker->AddObserver(
69 base::WrapUnique(new ServiceWorkerPageLoadMetricsObserver())); 74 base::WrapUnique(new ServiceWorkerPageLoadMetricsObserver()));
70 tracker->AddObserver( 75 tracker->AddObserver(
71 base::WrapUnique(new HttpsEngagementPageLoadMetricsObserver())); 76 base::WrapUnique(new HttpsEngagementPageLoadMetricsObserver()));
77 #if defined(OS_ANDROID)
78 tracker->AddObserver(
79 base::WrapUnique(new AndroidPageLoadMetricsObserver(web_contents)));
80 #endif // OS_ANDROID
72 } 81 }
73 82
74 bool PageLoadMetricsEmbedder::IsPrerendering( 83 bool PageLoadMetricsEmbedder::IsPrerendering(
75 content::WebContents* web_contents) { 84 content::WebContents* web_contents) {
76 return prerender::PrerenderContents::FromWebContents(web_contents) != nullptr; 85 return prerender::PrerenderContents::FromWebContents(web_contents) != nullptr;
77 } 86 }
78 87
79 bool PageLoadMetricsEmbedder::IsNewTabPageUrl(const GURL& url) { 88 bool PageLoadMetricsEmbedder::IsNewTabPageUrl(const GURL& url) {
80 Profile* profile = 89 Profile* profile =
81 Profile::FromBrowserContext(web_contents_->GetBrowserContext()); 90 Profile::FromBrowserContext(web_contents_->GetBrowserContext());
82 if (!profile) 91 if (!profile)
83 return false; 92 return false;
84 return search::IsInstantNTPURL(url, profile); 93 return search::IsInstantNTPURL(url, profile);
85 } 94 }
86 95
87 } // namespace 96 } // namespace
88 97
89 void InitializePageLoadMetricsForWebContents( 98 void InitializePageLoadMetricsForWebContents(
90 content::WebContents* web_contents) { 99 content::WebContents* web_contents) {
91 page_load_metrics::MetricsWebContentsObserver::CreateForWebContents( 100 page_load_metrics::MetricsWebContentsObserver::CreateForWebContents(
92 web_contents, 101 web_contents,
93 base::WrapUnique(new PageLoadMetricsEmbedder(web_contents))); 102 base::WrapUnique(new PageLoadMetricsEmbedder(web_contents)));
94 } 103 }
95 104
96 } // namespace chrome 105 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698