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

Unified Diff: chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h

Issue 1901303004: [ Don't commit ] Add FromGWS variants to the AbortTiming metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Tweaks Created 4 years, 8 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/observers/from_gws_page_load_metrics_observer.h
diff --git a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h
index 429bd90fd845e0ebc05f3e82dcc3453d9a539848..3c148b11ed14842ef89a63b05eda0c293023fab4 100644
--- a/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h
+++ b/chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer.h
@@ -12,6 +12,25 @@
namespace internal {
// Exposed for tests.
extern const char kHistogramFromGWSFirstTextPaint[];
+
+enum NavigationFromGWSType {
+ // The navigation was preceeded by a committed load in this WebContents that
+ // was from google web search.
+ CommittedNavigationFromGWSPreviousCommit,
+
+ // The navigation had a referrer header that was from google web search, and
+ // there was no previously committed url in this WebContents.
+ CommittedNavigationFromGWSOpener,
+
+ // The provisional navigations are ones which never reached the commit point.
+ ProvisionalNavigationFromGWSPreviousCommit,
+
+ ProvisionalNavigationFromGWSOpener,
+
+ // The navigation had no GWS referrer or previously committed load.
+ NavigationNotFromGWS,
Bryan McQuade 2016/04/21 20:50:41 let's put this first to make it the default / none
Charlie Harrison 2016/04/21 21:09:24 Acknowledged.
+};
+
} // namespace internal
// FromGWSPageLoadMetricsLogger is a peer class to
@@ -25,9 +44,9 @@ class FromGWSPageLoadMetricsLogger {
public:
FromGWSPageLoadMetricsLogger() {}
- void set_previously_committed_url(const GURL& url) {
- previously_committed_url_ = url;
- }
+ void SetPreviouslyCommittedUrl(const GURL& url);
+
+ void SetOpenerUrl(const GURL& url);
void set_navigation_initiated_via_link(bool navigation_initiated_via_link) {
navigation_initiated_via_link_ = navigation_initiated_via_link;
@@ -37,6 +56,8 @@ class FromGWSPageLoadMetricsLogger {
void OnComplete(const page_load_metrics::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info);
+ static bool IsUrlFromGWS(const GURL& url);
+
// The methods below are public only for testing.
static bool IsGoogleSearchHostname(base::StringPiece host);
static bool IsGoogleSearchResultUrl(const GURL& url);
@@ -60,19 +81,32 @@ class FromGWSPageLoadMetricsLogger {
// Whether metrics should be logged based on state provided via setters and
// the given committed_url.
- bool ShouldLogMetrics(const GURL& committed_url) const;
+ internal::NavigationFromGWSType GetNavigationFromGWSType(
+ const GURL& committed_url) const;
private:
- GURL previously_committed_url_;
+ bool previously_committed_url_from_gws_ = false;
+ bool previously_committed_url_from_redirector_ = false;
bool navigation_initiated_via_link_ = false;
+ bool opener_from_gws_ = false;
// Common helper for QueryContainsComponent and QueryContainsComponentPrefix.
static bool QueryContainsComponentHelper(const base::StringPiece query,
const base::StringPiece component,
bool component_is_prefix);
- void LogMetrics(const page_load_metrics::PageLoadTiming& timing,
- const page_load_metrics::PageLoadExtraInfo& extra_info);
+ void LogCommittedMetrics(
+ const page_load_metrics::PageLoadTiming& timing,
+ const page_load_metrics::PageLoadExtraInfo& extra_info);
+ void LogCommittedMetricsUsingOpener(
+ const page_load_metrics::PageLoadTiming& timing,
+ const page_load_metrics::PageLoadExtraInfo& extra_info);
+ void LogProvisionalMetrics(
+ const page_load_metrics::PageLoadTiming& timing,
+ const page_load_metrics::PageLoadExtraInfo& extra_info);
+ void LogProvisionalMetricsUsingOpener(
+ const page_load_metrics::PageLoadTiming& timing,
+ const page_load_metrics::PageLoadExtraInfo& extra_info);
DISALLOW_COPY_AND_ASSIGN(FromGWSPageLoadMetricsLogger);
};
@@ -83,8 +117,11 @@ class FromGWSPageLoadMetricsObserver
FromGWSPageLoadMetricsObserver();
// page_load_metrics::PageLoadMetricsObserver implementation:
void OnStart(content::NavigationHandle* navigation_handle,
+ content::WebContents* web_contents,
const GURL& currently_committed_url) override;
void OnCommit(content::NavigationHandle* navigation_handle) override;
+ void OnFailedProvisionalLoad(
+ content::NavigationHandle* navigation_handle) override;
void OnComplete(
const page_load_metrics::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) override;

Powered by Google App Engine
This is Rietveld 408576698