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

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

Issue 2859393002: Report page load timing information for child frames. (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..f4a88559e9c5980815b4c5eca7d724d0f968a8e8 100644
--- a/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc
+++ b/chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc
@@ -30,8 +30,7 @@ PageTimingMetricsSender::PageTimingMetricsSender(
last_timing_(initial_timing),
metadata_(PageLoadMetadata()) {
if (!initial_timing.IsEmpty()) {
- // Send an initial IPC relatively early to help track aborts.
- EnsureSendTimer(kInitialTimerDelayMillis);
+ EnsureSendTimer();
}
}
@@ -49,7 +48,7 @@ void PageTimingMetricsSender::DidObserveLoadingBehavior(
if (behavior & metadata_.behavior_flags)
return;
metadata_.behavior_flags |= behavior;
- EnsureSendTimer(kTimerDelayMillis);
+ EnsureSendTimer();
}
void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
@@ -65,17 +64,23 @@ void PageTimingMetricsSender::Send(const PageLoadTiming& timing) {
}
last_timing_ = timing;
- EnsureSendTimer(kTimerDelayMillis);
+ EnsureSendTimer();
}
-void PageTimingMetricsSender::EnsureSendTimer(int delay) {
- if (!timer_->IsRunning())
+void PageTimingMetricsSender::EnsureSendTimer() {
+ if (!timer_->IsRunning()) {
+ // Send the first IPC eagerly to make sure the receiving side knows we're
+ // sending metrics as soon as possible.
+ int delay_ms =
+ have_sent_ipc_ ? kTimerDelayMillis : kInitialTimerDelayMillis;
timer_->Start(
- FROM_HERE, base::TimeDelta::FromMilliseconds(delay),
+ FROM_HERE, base::TimeDelta::FromMilliseconds(delay_ms),
base::Bind(&PageTimingMetricsSender::SendNow, base::Unretained(this)));
+ }
}
void PageTimingMetricsSender::SendNow() {
+ have_sent_ipc_ = true;
ipc_sender_->Send(new PageLoadMetricsMsg_TimingUpdated(
routing_id_, last_timing_, metadata_));
}
« no previous file with comments | « chrome/renderer/page_load_metrics/page_timing_metrics_sender.h ('k') | chrome/test/data/page_load_metrics/empty_iframe.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698