Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(328)

Unified Diff: chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc

Issue 2874663005: [Page Load Metrics] Add mojom file to page load metrics. (Closed)
Patch Set: rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 e016bb3251445b98216fb664624a3b9a22bd3572..2e5361c743c8b3122ddb6b62fdeb8cbc9aa09f8e 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,13 @@ PageTimingMetricsSender::PageTimingMetricsSender(
IPC::Sender* ipc_sender,
int routing_id,
std::unique_ptr<base::Timer> timer,
- const PageLoadTiming& initial_timing)
+ mojo::StructPtr<mojom::PageLoadTiming> 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.
EnsureSendTimer(kInitialTimerDelayMillis);
}
@@ -52,19 +52,20 @@ void PageTimingMetricsSender::DidObserveLoadingBehavior(
EnsureSendTimer(kTimerDelayMillis);
}
-void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
- if (timing == last_timing_)
+void PageTimingMetricsSender::Send(
+ mojo::StructPtr<mojom::PageLoadTiming> 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(kTimerDelayMillis);
}
@@ -77,7 +78,7 @@ void PageTimingMetricsSender::EnsureSendTimer(int delay) {
void PageTimingMetricsSender::SendNow() {
ipc_sender_->Send(new PageLoadMetricsMsg_TimingUpdated(
- routing_id_, last_timing_, metadata_));
+ routing_id_, *last_timing_, metadata_));
}
} // namespace page_load_metrics

Powered by Google App Engine
This is Rietveld 408576698