| 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 94fc16dc255f5bf7135a097dba8247533f5bbd68..9decb457be3a4fc540763582431ad4b36a66028a 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
|
| @@ -21,10 +21,14 @@ extern const char kHistogramFromGWSParseStartToFirstContentfulPaint[];
|
| extern const char kHistogramFromGWSParseDuration[];
|
| extern const char kHistogramFromGWSParseStart[];
|
| extern const char kHistogramFromGWSAbortStopBeforePaint[];
|
| +extern const char kHistogramFromGWSAbortStopBeforeInteraction[];
|
| extern const char kHistogramFromGWSAbortStopBeforeCommit[];
|
| extern const char kHistogramFromGWSAbortCloseBeforePaint[];
|
| +extern const char kHistogramFromGWSAbortCloseBeforeInteraction[];
|
| extern const char kHistogramFromGWSAbortCloseBeforeCommit[];
|
| extern const char kHistogramFromGWSAbortNewNavigationBeforePaint[];
|
| +extern const char kHistogramFromGWSAbortNewNavigationBeforeInteraction[];
|
| +extern const char kHistogramFromGWSAbortReloadBeforeInteraction[];
|
| extern const char kHistogramFromGWSAbortUnknownNavigationBeforeCommit[];
|
|
|
| } // namespace internal
|
| @@ -47,6 +51,18 @@ class FromGWSPageLoadMetricsLogger {
|
| navigation_initiated_via_link_ = navigation_initiated_via_link;
|
| }
|
|
|
| + void SetNavigationStart(const base::TimeTicks navigation_start) {
|
| + // Should be invoked at most once
|
| + DCHECK(navigation_start_.is_null());
|
| + navigation_start_ = navigation_start;
|
| + }
|
| +
|
| + // TODO(bmcquade): remove SetFirstPaintTriggered as part of fixing
|
| + // crbug.com/616901
|
| + void SetFirstPaintTriggered(const bool first_paint_triggered) {
|
| + first_paint_triggered_ = first_paint_triggered;
|
| + }
|
| +
|
| // Invoked when metrics for the given page are complete.
|
| void OnComplete(const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& extra_info);
|
| @@ -70,6 +86,7 @@ class FromGWSPageLoadMetricsLogger {
|
| const page_load_metrics::PageLoadExtraInfo& extra_info);
|
| void OnParseStop(const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& extra_info);
|
| + void OnUserInput(const blink::WebInputEvent& event);
|
|
|
| // The methods below are public only for testing.
|
| static bool IsGoogleSearchHostname(base::StringPiece host);
|
| @@ -102,6 +119,16 @@ class FromGWSPageLoadMetricsLogger {
|
| bool provisional_url_has_search_hostname_ = false;
|
| bool provisional_url_is_non_http_or_https_ = false;
|
|
|
| + // The state of if first paint is triggered.
|
| + bool first_paint_triggered_ = false;
|
| +
|
| + base::TimeTicks navigation_start_;
|
| +
|
| + bool has_user_interaction_after_paint_ = false;
|
| +
|
| + // The time of first user interaction after paint from navigation start.
|
| + base::TimeDelta first_user_interaction_after_paint_;
|
| +
|
| // Common helper for QueryContainsComponent and QueryContainsComponentPrefix.
|
| static bool QueryContainsComponentHelper(const base::StringPiece query,
|
| const base::StringPiece component,
|
| @@ -114,6 +141,10 @@ class FromGWSPageLoadMetricsObserver
|
| : public page_load_metrics::PageLoadMetricsObserver {
|
| public:
|
| FromGWSPageLoadMetricsObserver();
|
| +
|
| + // TODO(bmcquade): remove this as part of fixing crbug.com/616901
|
| + FromGWSPageLoadMetricsLogger* GetLogger() { return &logger_; }
|
| +
|
| // page_load_metrics::PageLoadMetricsObserver implementation:
|
| void OnStart(content::NavigationHandle* navigation_handle,
|
| const GURL& currently_committed_url,
|
| @@ -149,6 +180,8 @@ class FromGWSPageLoadMetricsObserver
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& extra_info) override;
|
|
|
| + void OnUserInput(const blink::WebInputEvent& event) override;
|
| +
|
| private:
|
| FromGWSPageLoadMetricsLogger logger_;
|
|
|
|
|