| 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 52d87704aa3ee2ed79f2be6d7ff2acddf4f2e967..c37c81999bfabe36da1f40bab5ef1d0bace9ccc3 100644
|
| --- a/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
|
| +++ b/components/page_load_metrics/renderer/page_timing_metrics_sender.cc
|
| @@ -23,7 +23,8 @@ PageTimingMetricsSender::PageTimingMetricsSender(IPC::Sender* ipc_sender,
|
| scoped_ptr<base::Timer> timer)
|
| : ipc_sender_(ipc_sender),
|
| routing_id_(routing_id),
|
| - timer_(std::move(timer)) {}
|
| + timer_(std::move(timer)),
|
| + metadata_(PageLoadMetadata()) {}
|
|
|
| // 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)
|
| @@ -34,6 +35,14 @@ PageTimingMetricsSender::~PageTimingMetricsSender() {
|
| }
|
| }
|
|
|
| +void PageTimingMetricsSender::DidObserveLoadingBehavior(
|
| + blink::WebLoadingBehaviorFlag behavior) {
|
| + if (behavior & metadata_.behavior_flags)
|
| + return;
|
| + metadata_.behavior_flags |= behavior;
|
| + EnsureSendTimer();
|
| +}
|
| +
|
| void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
|
| if (timing == last_timing_)
|
| return;
|
| @@ -47,7 +56,10 @@ void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
|
| }
|
|
|
| last_timing_ = timing;
|
| + EnsureSendTimer();
|
| +}
|
|
|
| +void PageTimingMetricsSender::EnsureSendTimer() {
|
| if (!timer_->IsRunning())
|
| timer_->Start(
|
| FROM_HERE, base::TimeDelta::FromMilliseconds(kTimerDelayMillis),
|
| @@ -55,8 +67,8 @@ void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
|
| }
|
|
|
| void PageTimingMetricsSender::SendNow() {
|
| - ipc_sender_->Send(
|
| - new PageLoadMetricsMsg_TimingUpdated(routing_id_, last_timing_));
|
| + ipc_sender_->Send(new PageLoadMetricsMsg_TimingUpdated(
|
| + routing_id_, last_timing_, metadata_));
|
| }
|
|
|
| } // namespace page_load_metrics
|
|
|