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))); |
} |