Index: components/page_load_metrics/browser/metrics_web_contents_observer.h |
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer.h b/components/page_load_metrics/browser/metrics_web_contents_observer.h |
index d58cfb003b594b0b803b1b3b7fa8befb7d2354ab..37b760a5585773420fbd32bca1ddba5c1c38983b 100644 |
--- a/components/page_load_metrics/browser/metrics_web_contents_observer.h |
+++ b/components/page_load_metrics/browser/metrics_web_contents_observer.h |
@@ -143,8 +143,12 @@ class PageLoadTracker { |
// If the user performs some abort-like action while we are tracking this page |
// load, notify the tracker. Note that we may not classify this as an abort if |
// we've already performed a first paint. |
- void NotifyAbort(UserAbortType abort_type, base::TimeTicks timestamp); |
- void UpdateAbort(UserAbortType abort_type, base::TimeTicks timestamp); |
+ void NotifyAbort(UserAbortType abort_type, |
+ base::TimeTicks timestamp, |
+ bool is_browser_timetick); |
+ void UpdateAbort(UserAbortType abort_type, |
+ base::TimeTicks timestamp, |
+ bool is_browser_timetick); |
// This method returns true if this page load has been aborted with type of |
// ABORT_OTHER, and the |abort_cause_time| is within a sufficiently close |
@@ -162,10 +166,21 @@ class PageLoadTracker { |
} |
private: |
- PageLoadExtraInfo GetPageLoadMetricsInfo(); |
+ PageLoadExtraInfo ComputePageLoadExtraInfo(); |
+ |
+#if defined(OS_WIN) |
+ // This function converts a TimeTicks value taken in the browser process |
+ // to navigation_start_ if: |
+ // - base::TimeTicks is not comparable across processes because the clock |
+ // is not system wide monotonic. |
+ // - event_time < navigation_start_ |
+ void RebaseBrowserTimestampIfInterProcessTimeTickSkew( |
+ base::TimeTicks& event_time); |
+#endif |
void UpdateAbortInternal(UserAbortType abort_type, |
- base::TimeTicks timestamp); |
+ base::TimeTicks timestamp, |
+ bool is_browser_timetick); |
// If |final_navigation| is null, then this is an "unparented" abort chain, |
// and represents a sequence of provisional aborts that never ends with a |
@@ -258,7 +273,8 @@ class MetricsWebContentsObserver |
// that might abort them. |
void NotifyAbortAllLoads(UserAbortType abort_type); |
void NotifyAbortAllLoadsWithTimestamp(UserAbortType abort_type, |
- base::TimeTicks timestamp); |
+ base::TimeTicks timestamp, |
+ bool is_browser_timestamp); |
// Notify aborted provisional loads that a new navigation occurred. This is |
// used for more consistent attribution tracking for aborted provisional |
// loads. This method returns the provisional load that was likely aborted by |