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

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

Issue 1857443002: Plumb experiment flags through page_load_metrics and add a new observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@page_load_experiments
Patch Set: remove todo and fix up a test script Created 4 years, 8 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: 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

Powered by Google App Engine
This is Rietveld 408576698