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

Unified Diff: chrome/browser/page_load_metrics/page_load_tracker.h

Issue 2545593003: Additional heuristic user interaction attribution for page load metrics (Closed)
Patch Set: rebase Created 4 years 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_tracker.h
diff --git a/chrome/browser/page_load_metrics/page_load_tracker.h b/chrome/browser/page_load_metrics/page_load_tracker.h
index b6411f71fd9ed37ffe938ad1a3fc062e92bc6d8f..817bc4fd8be650b35b8af88e66011a881d9faae7 100644
--- a/chrome/browser/page_load_metrics/page_load_tracker.h
+++ b/chrome/browser/page_load_metrics/page_load_tracker.h
@@ -11,6 +11,7 @@
#include "base/macros.h"
#include "base/time/time.h"
#include "chrome/browser/page_load_metrics/page_load_metrics_observer.h"
+#include "chrome/browser/page_load_metrics/user_input_tracker.h"
#include "chrome/common/page_load_metrics/page_load_timing.h"
#include "ui/base/page_transition_types.h"
@@ -127,6 +128,7 @@ class PageLoadTracker {
PageLoadMetricsEmbedderInterface* embedder_interface,
const GURL& currently_committed_url,
content::NavigationHandle* navigation_handle,
+ UserInitiatedInfo user_initiated_info,
int aborted_chain_size,
int aborted_chain_size_same_url);
~PageLoadTracker();
@@ -175,11 +177,11 @@ class PageLoadTracker {
// browser process or not. We need this to possibly clamp browser timestamp on
// a machine with inter process time tick skew.
void NotifyAbort(UserAbortType abort_type,
- bool user_initiated,
+ UserInitiatedInfo user_initiated_info,
base::TimeTicks timestamp,
bool is_certainly_browser_timestamp);
void UpdateAbort(UserAbortType abort_type,
- bool user_initiated,
+ UserInitiatedInfo user_initiated_info,
base::TimeTicks timestamp,
bool is_certainly_browser_timestamp);
@@ -204,6 +206,10 @@ class PageLoadTracker {
ui::PageTransition page_transition() const { return page_transition_; }
+ UserInitiatedInfo user_initiated_info() const { return user_initiated_info_; }
+
+ UserInputTracker* input_tracker() { return &input_tracker_; }
+
private:
// This function converts a TimeTicks value taken in the browser process
// to navigation_start_ if:
@@ -214,7 +220,7 @@ class PageLoadTracker {
base::TimeTicks* event_time);
void UpdateAbortInternal(UserAbortType abort_type,
- bool user_initiated,
+ UserInitiatedInfo user_initiated_info,
base::TimeTicks timestamp,
bool is_certainly_browser_timestamp);
@@ -223,6 +229,8 @@ class PageLoadTracker {
// committed load.
void LogAbortChainHistograms(content::NavigationHandle* final_navigation);
+ UserInputTracker input_tracker_;
+
// Whether we stopped tracking this navigation after it was initiated. We may
// stop tracking a navigation if it doesn't meet the criteria for tracking
// metrics in DidFinishNavigation.
@@ -255,7 +263,7 @@ class PageLoadTracker {
// this field is never set to true for some abort types, such as stop and
// close, since we don't yet have sufficient instrumentation to know if a stop
// or close was caused by a user action.
- bool abort_user_initiated_;
+ UserInitiatedInfo abort_user_initiated_info_;
base::TimeTicks abort_time_;
@@ -277,9 +285,8 @@ class PageLoadTracker {
int num_cache_requests_;
int num_network_requests_;
- // This is derived from the user gesture bit in the renderer. For browser
- // initiated navigations this will always be true.
- bool user_initiated_;
+ // Whether this page load was user initiated.
+ UserInitiatedInfo user_initiated_info_;
// This is a subtle member. If a provisional load A gets aborted by
// provisional load B, which gets aborted by C that eventually commits, then

Powered by Google App Engine
This is Rietveld 408576698