Chromium Code Reviews| Index: chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc |
| diff --git a/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc b/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc |
| index f4a88559e9c5980815b4c5eca7d724d0f968a8e8..ddf83861a883daba0b711a5d0db467ea93beefa1 100644 |
| --- a/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc |
| +++ b/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc |
| @@ -23,13 +23,14 @@ PageTimingMetricsSender::PageTimingMetricsSender( |
| IPC::Sender* ipc_sender, |
| int routing_id, |
| std::unique_ptr<base::Timer> timer, |
| - const PageLoadTiming& initial_timing) |
| + mojom::PageLoadTimingPtr initial_timing) |
| : ipc_sender_(ipc_sender), |
| routing_id_(routing_id), |
| timer_(std::move(timer)), |
| - last_timing_(initial_timing), |
| - metadata_(PageLoadMetadata()) { |
| - if (!initial_timing.IsEmpty()) { |
| + last_timing_(std::move(initial_timing)), |
| + metadata_(mojom::PageLoadMetadata()) { |
| + if (!IsEmpty(*last_timing_)) { |
| + // Send an initial IPC relatively early to help track aborts. |
|
Bryan McQuade
2017/05/16 01:58:55
looks like this comment was removed in a recent ch
lpy
2017/05/16 18:08:55
Done.
|
| EnsureSendTimer(); |
| } |
| } |
| @@ -51,19 +52,19 @@ void PageTimingMetricsSender::DidObserveLoadingBehavior( |
| EnsureSendTimer(); |
| } |
| -void PageTimingMetricsSender::Send(const PageLoadTiming& timing) { |
| - if (timing == last_timing_) |
| +void PageTimingMetricsSender::Send(mojom::PageLoadTimingPtr timing) { |
| + if (last_timing_->Equals(*timing)) |
| return; |
| // We want to make sure that each PageTimingMetricsSender is associated |
| // with a distinct page navigation. Because we reset the object on commit, |
| // we can trash last_timing_ on a provisional load before SendNow() fires. |
| - if (!last_timing_.navigation_start.is_null() && |
| - last_timing_.navigation_start != timing.navigation_start) { |
| + if (!last_timing_->navigation_start.is_null() && |
| + last_timing_->navigation_start != timing->navigation_start) { |
| return; |
| } |
| - last_timing_ = timing; |
| + last_timing_ = std::move(timing); |
| EnsureSendTimer(); |
| } |
| @@ -82,7 +83,7 @@ void PageTimingMetricsSender::EnsureSendTimer() { |
| void PageTimingMetricsSender::SendNow() { |
| have_sent_ipc_ = true; |
| ipc_sender_->Send(new PageLoadMetricsMsg_TimingUpdated( |
| - routing_id_, last_timing_, metadata_)); |
| + routing_id_, *last_timing_, metadata_)); |
| } |
| } // namespace page_load_metrics |