| Index: components/page_load_metrics/renderer/page_timing_metrics_sender.cc
|
| diff --git a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
|
| index 2a6491919c6caa1e1957aa01c3435c7cc986a087..5572461683bd9a2898c7ba7ab595fee75d3f4e30 100644
|
| --- a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
|
| +++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
|
| @@ -15,17 +15,23 @@
|
| namespace page_load_metrics {
|
|
|
| namespace {
|
| +const int kInitialTimerDelayMillis = 50;
|
| const int kTimerDelayMillis = 1000;
|
| } // namespace
|
|
|
| PageTimingMetricsSender::PageTimingMetricsSender(
|
| IPC::Sender* ipc_sender,
|
| int routing_id,
|
| - std::unique_ptr<base::Timer> timer)
|
| + std::unique_ptr<base::Timer> timer,
|
| + const PageLoadTiming& initial_timing)
|
| : ipc_sender_(ipc_sender),
|
| routing_id_(routing_id),
|
| timer_(std::move(timer)),
|
| - metadata_(PageLoadMetadata()) {}
|
| + last_timing_(initial_timing),
|
| + metadata_(PageLoadMetadata()) {
|
| + // Send an initial IPC relatively early to help track aborts.
|
| + EnsureSendTimer(kInitialTimerDelayMillis);
|
| +}
|
|
|
| // On destruction, we want to send any data we have if we have a timer
|
| // currently running (and thus are talking to a browser process)
|
| @@ -41,7 +47,7 @@ void PageTimingMetricsSender::DidObserveLoadingBehavior(
|
| if (behavior & metadata_.behavior_flags)
|
| return;
|
| metadata_.behavior_flags |= behavior;
|
| - EnsureSendTimer();
|
| + EnsureSendTimer(kTimerDelayMillis);
|
| }
|
|
|
| void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
|
| @@ -57,13 +63,13 @@ void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
|
| }
|
|
|
| last_timing_ = timing;
|
| - EnsureSendTimer();
|
| + EnsureSendTimer(kTimerDelayMillis);
|
| }
|
|
|
| -void PageTimingMetricsSender::EnsureSendTimer() {
|
| +void PageTimingMetricsSender::EnsureSendTimer(int delay) {
|
| if (!timer_->IsRunning())
|
| timer_->Start(
|
| - FROM_HERE, base::TimeDelta::FromMilliseconds(kTimerDelayMillis),
|
| + FROM_HERE, base::TimeDelta::FromMilliseconds(delay),
|
| base::Bind(&PageTimingMetricsSender::SendNow, base::Unretained(this)));
|
| }
|
|
|
|
|