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

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

Issue 2152683004: Refactor PageLoadMetricsObserver completion callback policy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@relevantloads
Patch Set: fix metric 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 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_FROM_GWS_PAGE_LOAD_METRICS_OB SERVER_H_ 5 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_FROM_GWS_PAGE_LOAD_METRICS_OB SERVER_H_
6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_FROM_GWS_PAGE_LOAD_METRICS_OB SERVER_H_ 6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_FROM_GWS_PAGE_LOAD_METRICS_OB SERVER_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/optional.h" 9 #include "base/optional.h"
10 #include "components/page_load_metrics/browser/page_load_metrics_observer.h" 10 #include "components/page_load_metrics/browser/page_load_metrics_observer.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 void SetNavigationStart(const base::TimeTicks navigation_start) { 55 void SetNavigationStart(const base::TimeTicks navigation_start) {
56 // Should be invoked at most once 56 // Should be invoked at most once
57 DCHECK(navigation_start_.is_null()); 57 DCHECK(navigation_start_.is_null());
58 navigation_start_ = navigation_start; 58 navigation_start_ = navigation_start;
59 } 59 }
60 60
61 // Invoked when metrics for the given page are complete. 61 // Invoked when metrics for the given page are complete.
62 void OnComplete(const page_load_metrics::PageLoadTiming& timing, 62 void OnComplete(const page_load_metrics::PageLoadTiming& timing,
63 const page_load_metrics::PageLoadExtraInfo& extra_info); 63 const page_load_metrics::PageLoadExtraInfo& extra_info);
64 void OnFailedProvisionalLoad(
65 const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info,
66 const page_load_metrics::PageLoadExtraInfo& extra_info);
64 67
65 void OnDomContentLoadedEventStart( 68 void OnDomContentLoadedEventStart(
66 const page_load_metrics::PageLoadTiming& timing, 69 const page_load_metrics::PageLoadTiming& timing,
67 const page_load_metrics::PageLoadExtraInfo& extra_info); 70 const page_load_metrics::PageLoadExtraInfo& extra_info);
68 void OnLoadEventStart(const page_load_metrics::PageLoadTiming& timing, 71 void OnLoadEventStart(const page_load_metrics::PageLoadTiming& timing,
69 const page_load_metrics::PageLoadExtraInfo& extra_info); 72 const page_load_metrics::PageLoadExtraInfo& extra_info);
70 void OnFirstPaint(const page_load_metrics::PageLoadTiming& timing, 73 void OnFirstPaint(const page_load_metrics::PageLoadTiming& timing,
71 const page_load_metrics::PageLoadExtraInfo& extra_info); 74 const page_load_metrics::PageLoadExtraInfo& extra_info);
72 void OnFirstTextPaint(const page_load_metrics::PageLoadTiming& timing, 75 void OnFirstTextPaint(const page_load_metrics::PageLoadTiming& timing,
73 const page_load_metrics::PageLoadExtraInfo& extra_info); 76 const page_load_metrics::PageLoadExtraInfo& extra_info);
74 void OnFirstImagePaint( 77 void OnFirstImagePaint(
75 const page_load_metrics::PageLoadTiming& timing, 78 const page_load_metrics::PageLoadTiming& timing,
76 const page_load_metrics::PageLoadExtraInfo& extra_info); 79 const page_load_metrics::PageLoadExtraInfo& extra_info);
77 void OnFirstContentfulPaint( 80 void OnFirstContentfulPaint(
78 const page_load_metrics::PageLoadTiming& timing, 81 const page_load_metrics::PageLoadTiming& timing,
79 const page_load_metrics::PageLoadExtraInfo& extra_info); 82 const page_load_metrics::PageLoadExtraInfo& extra_info);
80 void OnParseStart(const page_load_metrics::PageLoadTiming& timing, 83 void OnParseStart(const page_load_metrics::PageLoadTiming& timing,
81 const page_load_metrics::PageLoadExtraInfo& extra_info); 84 const page_load_metrics::PageLoadExtraInfo& extra_info);
82 void OnParseStop(const page_load_metrics::PageLoadTiming& timing, 85 void OnParseStop(const page_load_metrics::PageLoadTiming& timing,
83 const page_load_metrics::PageLoadExtraInfo& extra_info); 86 const page_load_metrics::PageLoadExtraInfo& extra_info);
84 void OnUserInput(const blink::WebInputEvent& event); 87 void OnUserInput(const blink::WebInputEvent& event);
85 88
86 // The methods below are public only for testing. 89 // The methods below are public only for testing.
87 static bool IsGoogleSearchHostname(base::StringPiece host); 90 static bool IsGoogleSearchHostname(base::StringPiece host);
88 static bool IsGoogleSearchResultUrl(const GURL& url); 91 static bool IsGoogleSearchResultUrl(const GURL& url);
89 static bool IsGoogleSearchRedirectorUrl(const GURL& url); 92 static bool IsGoogleSearchRedirectorUrl(const GURL& url);
90 bool ShouldLogMetrics(const GURL& url); 93 bool ShouldLogFailedProvisionalLoadMetrics();
94 bool ShouldLogPostCommitMetrics(const GURL& url);
91 bool ShouldLogForegroundEventAfterCommit( 95 bool ShouldLogForegroundEventAfterCommit(
92 const base::Optional<base::TimeDelta>& event, 96 const base::Optional<base::TimeDelta>& event,
93 const page_load_metrics::PageLoadExtraInfo& info); 97 const page_load_metrics::PageLoadExtraInfo& info);
94 98
95 // Whether the given query string contains the given component. The query 99 // Whether the given query string contains the given component. The query
96 // parameter should contain the query string of a URL (the portion following 100 // parameter should contain the query string of a URL (the portion following
97 // the question mark, excluding the question mark). The component must fully 101 // the question mark, excluding the question mark). The component must fully
98 // match a component in the query string. For example, 'foo=bar' would match 102 // match a component in the query string. For example, 'foo=bar' would match
99 // the query string 'a=b&foo=bar&c=d' but would not match 'a=b&zzzfoo=bar&c=d' 103 // the query string 'a=b&foo=bar&c=d' but would not match 'a=b&zzzfoo=bar&c=d'
100 // since, though foo=bar appears in the query string, the key specified in the 104 // since, though foo=bar appears in the query string, the key specified in the
101 // component 'foo' does not match the full key in the query string 105 // component 'foo' does not match the full key in the query string
102 // 'zzzfoo'. For QueryContainsComponent, the component should of the form 106 // 'zzzfoo'. For QueryContainsComponent, the component should of the form
103 // 'key=value'. For QueryContainsComponentPrefix, the component should be of 107 // 'key=value'. For QueryContainsComponentPrefix, the component should be of
104 // the form 'key=' (where the value is not specified). 108 // the form 'key=' (where the value is not specified).
105 static bool QueryContainsComponent(const base::StringPiece query, 109 static bool QueryContainsComponent(const base::StringPiece query,
106 const base::StringPiece component); 110 const base::StringPiece component);
107 static bool QueryContainsComponentPrefix(const base::StringPiece query, 111 static bool QueryContainsComponentPrefix(const base::StringPiece query,
108 const base::StringPiece component); 112 const base::StringPiece component);
109 113
110 private: 114 private:
111 bool previously_committed_url_is_search_results_ = false; 115 bool previously_committed_url_is_search_results_ = false;
112 bool previously_committed_url_is_search_redirector_ = false; 116 bool previously_committed_url_is_search_redirector_ = false;
113 bool navigation_initiated_via_link_ = false; 117 bool navigation_initiated_via_link_ = false;
114 bool provisional_url_has_search_hostname_ = false; 118 bool provisional_url_has_search_hostname_ = false;
115 bool provisional_url_is_non_http_or_https_ = false;
116 119
117 // The state of if first paint is triggered. 120 // The state of if first paint is triggered.
118 bool first_paint_triggered_ = false; 121 bool first_paint_triggered_ = false;
119 122
120 base::TimeTicks navigation_start_; 123 base::TimeTicks navigation_start_;
121 124
122 // The time of first user interaction after paint from navigation start. 125 // The time of first user interaction after paint from navigation start.
123 base::Optional<base::TimeDelta> first_user_interaction_after_paint_; 126 base::Optional<base::TimeDelta> first_user_interaction_after_paint_;
124 127
125 // Common helper for QueryContainsComponent and QueryContainsComponentPrefix. 128 // Common helper for QueryContainsComponent and QueryContainsComponentPrefix.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 void OnParseStart( 165 void OnParseStart(
163 const page_load_metrics::PageLoadTiming& timing, 166 const page_load_metrics::PageLoadTiming& timing,
164 const page_load_metrics::PageLoadExtraInfo& extra_info) override; 167 const page_load_metrics::PageLoadExtraInfo& extra_info) override;
165 void OnParseStop( 168 void OnParseStop(
166 const page_load_metrics::PageLoadTiming& timing, 169 const page_load_metrics::PageLoadTiming& timing,
167 const page_load_metrics::PageLoadExtraInfo& extra_info) override; 170 const page_load_metrics::PageLoadExtraInfo& extra_info) override;
168 171
169 void OnComplete( 172 void OnComplete(
170 const page_load_metrics::PageLoadTiming& timing, 173 const page_load_metrics::PageLoadTiming& timing,
171 const page_load_metrics::PageLoadExtraInfo& extra_info) override; 174 const page_load_metrics::PageLoadExtraInfo& extra_info) override;
175 void OnFailedProvisionalLoad(
176 const page_load_metrics::FailedProvisionalLoadInfo& failed_load_info,
177 const page_load_metrics::PageLoadExtraInfo& extra_info) override;
172 178
173 void OnUserInput(const blink::WebInputEvent& event) override; 179 void OnUserInput(const blink::WebInputEvent& event) override;
174 180
175 private: 181 private:
176 FromGWSPageLoadMetricsLogger logger_; 182 FromGWSPageLoadMetricsLogger logger_;
177 183
178 DISALLOW_COPY_AND_ASSIGN(FromGWSPageLoadMetricsObserver); 184 DISALLOW_COPY_AND_ASSIGN(FromGWSPageLoadMetricsObserver);
179 }; 185 };
180 186
181 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_FROM_GWS_PAGE_LOAD_METRICS _OBSERVER_H_ 187 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_FROM_GWS_PAGE_LOAD_METRICS _OBSERVER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698