Chromium Code Reviews| 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 c37c81999bfabe36da1f40bab5ef1d0bace9ccc3..c881767b93bd9363b8c8fd8483a006dc744382b6 100644 |
| --- a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc |
| +++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc |
| @@ -15,16 +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, |
| - scoped_ptr<base::Timer> timer) |
| +PageTimingMetricsSender::PageTimingMetricsSender( |
| + IPC::Sender* ipc_sender, |
| + int routing_id, |
| + scoped_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. |
|
Bryan McQuade
2016/04/21 20:50:41
do we anticipate it's likely that we'll batch up o
Charlie Harrison
2016/04/21 21:09:24
So, calling SendNow() would be better, but it woul
|
| + 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) |
| @@ -40,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) { |
| @@ -56,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))); |
| } |