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

Side by Side Diff: chrome/browser/page_load_metrics/observers/previews_page_load_metrics_observer.h

Issue 2245213002: Add PageLoad.* metrics for Offline Previews (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: typo 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_DATA_REDUCTION_PROXY_METRICS_ OBSERVER_H_ 5 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_PREVIEWS_PAGE_LOAD_METRICS_OB SERVER_H_
6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_DATA_REDUCTION_PROXY_METRICS_ OBSERVER_H_ 6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_PREVIEWS_PAGE_LOAD_METRICS_OB SERVER_H_
7
8 #include <memory>
9 7
10 #include "base/macros.h" 8 #include "base/macros.h"
11 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" 9 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
12 10
13 namespace content { 11 namespace content {
14 class BrowserContext;
15 class NavigationHandle; 12 class NavigationHandle;
13 class WebContents;
16 } 14 }
17 15
18 namespace page_load_metrics { 16 namespace page_load_metrics {
19 struct PageLoadExtraInfo; 17 struct PageLoadExtraInfo;
20 struct PageLoadTiming; 18 struct PageLoadTiming;
21 } 19 }
22 20
23 namespace data_reduction_proxy { 21 namespace previews {
24 class DataReductionProxyData;
25 class DataReductionProxyPingbackClient;
26 22
27 namespace internal { 23 namespace internal {
28 24
29 // Various UMA histogram names for DataReductionProxy core page load metrics. 25 // Various UMA histogram names for Previews core page load metrics.
30 extern const char kHistogramDataReductionProxyPrefix[]; 26 extern const char kHistogramOfflinePreviewsPrefix[];
31 extern const char kHistogramDataReductionProxyLoFiOnPrefix[];
32 extern const char kHistogramDOMContentLoadedEventFiredSuffix[]; 27 extern const char kHistogramDOMContentLoadedEventFiredSuffix[];
Charlie Harrison 2016/08/19 20:00:22 Are these metrics all needed? Do these need to dir
RyanSturm 2016/08/19 20:21:27 Done.
33 extern const char kHistogramFirstLayoutSuffix[]; 28 extern const char kHistogramFirstLayoutSuffix[];
34 extern const char kHistogramLoadEventFiredSuffix[]; 29 extern const char kHistogramLoadEventFiredSuffix[];
35 extern const char kHistogramFirstContentfulPaintSuffix[]; 30 extern const char kHistogramFirstContentfulPaintSuffix[];
36 extern const char kHistogramFirstImagePaintSuffix[]; 31 extern const char kHistogramFirstImagePaintSuffix[];
37 extern const char kHistogramFirstPaintSuffix[]; 32 extern const char kHistogramFirstPaintSuffix[];
38 extern const char kHistogramFirstTextPaintSuffix[]; 33 extern const char kHistogramFirstTextPaintSuffix[];
39 extern const char kHistogramParseStartSuffix[]; 34 extern const char kHistogramParseStartSuffix[];
40 35
41 } // namespace internal 36 } // namespace internal
42 37
43 // Observer responsible for recording core page load metrics releveant to 38 // Observer responsible for recording core page load metrics relevant to
44 // DataReductionProxy. 39 // Previews.
45 class DataReductionProxyMetricsObserver 40 class PreviewsPageLoadMetricsObserver
46 : public page_load_metrics::PageLoadMetricsObserver { 41 : public page_load_metrics::PageLoadMetricsObserver {
47 public: 42 public:
48 DataReductionProxyMetricsObserver(); 43 PreviewsPageLoadMetricsObserver();
49 ~DataReductionProxyMetricsObserver() override; 44 ~PreviewsPageLoadMetricsObserver() override;
50 45
51 // page_load_metrics::PageLoadMetricsObserver: 46 // page_load_metrics::PageLoadMetricsObserver:
52 void OnCommit(content::NavigationHandle* navigation_handle) override; 47 void OnCommit(content::NavigationHandle* navigation_handle) override;
53 void OnComplete(const page_load_metrics::PageLoadTiming& timing,
54 const page_load_metrics::PageLoadExtraInfo& info) override;
55 void OnDomContentLoadedEventStart( 48 void OnDomContentLoadedEventStart(
56 const page_load_metrics::PageLoadTiming& timing, 49 const page_load_metrics::PageLoadTiming& timing,
57 const page_load_metrics::PageLoadExtraInfo& info) override; 50 const page_load_metrics::PageLoadExtraInfo& info) override;
58 void OnLoadEventStart( 51 void OnLoadEventStart(
59 const page_load_metrics::PageLoadTiming& timing, 52 const page_load_metrics::PageLoadTiming& timing,
60 const page_load_metrics::PageLoadExtraInfo& info) override; 53 const page_load_metrics::PageLoadExtraInfo& info) override;
61 void OnFirstLayout(const page_load_metrics::PageLoadTiming& timing, 54 void OnFirstLayout(const page_load_metrics::PageLoadTiming& timing,
62 const page_load_metrics::PageLoadExtraInfo& info) override; 55 const page_load_metrics::PageLoadExtraInfo& info) override;
63 void OnFirstPaint(const page_load_metrics::PageLoadTiming& timing, 56 void OnFirstPaint(const page_load_metrics::PageLoadTiming& timing,
64 const page_load_metrics::PageLoadExtraInfo& info) override; 57 const page_load_metrics::PageLoadExtraInfo& info) override;
65 void OnFirstTextPaint( 58 void OnFirstTextPaint(
66 const page_load_metrics::PageLoadTiming& timing, 59 const page_load_metrics::PageLoadTiming& timing,
67 const page_load_metrics::PageLoadExtraInfo& info) override; 60 const page_load_metrics::PageLoadExtraInfo& info) override;
68 void OnFirstImagePaint( 61 void OnFirstImagePaint(
69 const page_load_metrics::PageLoadTiming& timing, 62 const page_load_metrics::PageLoadTiming& timing,
70 const page_load_metrics::PageLoadExtraInfo& info) override; 63 const page_load_metrics::PageLoadExtraInfo& info) override;
71 void OnFirstContentfulPaint( 64 void OnFirstContentfulPaint(
72 const page_load_metrics::PageLoadTiming& timing, 65 const page_load_metrics::PageLoadTiming& timing,
73 const page_load_metrics::PageLoadExtraInfo& info) override; 66 const page_load_metrics::PageLoadExtraInfo& info) override;
74 void OnParseStart(const page_load_metrics::PageLoadTiming& timing, 67 void OnParseStart(const page_load_metrics::PageLoadTiming& timing,
75 const page_load_metrics::PageLoadExtraInfo& info) override; 68 const page_load_metrics::PageLoadExtraInfo& info) override;
76 69
77 private: 70 private:
78 // Gets the default DataReductionProxyPingbackClient. Overridden in testing. 71 // Whether |web_contents| is showing an offline pages preview. Overridden in
79 virtual DataReductionProxyPingbackClient* GetPingbackClient() const; 72 // testing.
73 virtual bool IsOfflinePreview(content::WebContents* web_contents) const;
80 74
81 // Data related to this navigation. 75 // Whether this page load was an offline pages preview.
82 std::unique_ptr<DataReductionProxyData> data_; 76 bool is_offline_preview_;
83 77
84 // The browser context this navigation is operating in. 78 DISALLOW_COPY_AND_ASSIGN(PreviewsPageLoadMetricsObserver);
85 content::BrowserContext* browser_context_;
86
87 DISALLOW_COPY_AND_ASSIGN(DataReductionProxyMetricsObserver);
88 }; 79 };
89 80
90 } // namespace data_reduction_proxy 81 } // namespace previews
91 82
92 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_DATA_REDUCTION_PROXY_METRI CS_OBSERVER_H_ 83 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_PREVIEWS_PAGE_LOAD_METRICS _OBSERVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698