| Index: chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
|
| diff --git a/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h b/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
|
| index 47f6e4f5171e0534183f852a14dad6a3af9cfc08..7af5111c47c11b938278e220db08013185f497a2 100644
|
| --- a/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
|
| +++ b/chrome/browser/page_load_metrics/page_load_metrics_update_dispatcher.h
|
| @@ -6,9 +6,11 @@
|
| #define CHROME_BROWSER_PAGE_LOAD_METRICS_PAGE_LOAD_METRICS_UPDATE_DISPATCHER_H_
|
|
|
| #include <map>
|
| +#include <memory>
|
|
|
| #include "base/macros.h"
|
| #include "base/time/time.h"
|
| +#include "base/timer/timer.h"
|
| #include "chrome/common/page_load_metrics/page_load_metrics.mojom.h"
|
|
|
| namespace content {
|
| @@ -65,6 +67,8 @@ enum PageLoadTimingStatus {
|
| };
|
|
|
| extern const char kPageLoadTimingStatus[];
|
| +extern const char kHistogramOutOfOrderTiming[];
|
| +extern const char kHistogramOutOfOrderTimingBuffered[];
|
|
|
| } // namespace internal
|
|
|
| @@ -101,6 +105,8 @@ class PageLoadMetricsUpdateDispatcher {
|
| void DidFinishSubFrameNavigation(
|
| content::NavigationHandle* navigation_handle);
|
|
|
| + void ShutDown();
|
| +
|
| const mojom::PageLoadTiming& timing() const {
|
| return *(current_merged_page_timing_.get());
|
| }
|
| @@ -122,12 +128,7 @@ class PageLoadMetricsUpdateDispatcher {
|
| void UpdateMainFrameMetadata(const mojom::PageLoadMetadata& new_metadata);
|
| void UpdateSubFrameMetadata(const mojom::PageLoadMetadata& subframe_metadata);
|
|
|
| - // Merge values from |new_paint_timing| into |pending_merged_page_timing_|,
|
| - // offsetting any new timings by the |navigation_start_offset|.
|
| - void MergePaintTiming(base::TimeDelta navigation_start_offset,
|
| - const mojom::PaintTiming& new_paint_timing,
|
| - bool is_main_frame);
|
| -
|
| + void MaybeDispatchTimingUpdates(bool did_merge_new_timing_value);
|
| void DispatchTimingUpdates();
|
|
|
| // The client is guaranteed to outlive this object.
|
| @@ -136,6 +137,8 @@ class PageLoadMetricsUpdateDispatcher {
|
| // Interface to chrome features. Must outlive the class.
|
| PageLoadMetricsEmbedderInterface* const embedder_interface_;
|
|
|
| + std::unique_ptr<base::Timer> timer_;
|
| +
|
| // Time the navigation for this page load was initiated.
|
| const base::TimeTicks navigation_start_;
|
|
|
|
|