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

Side by Side Diff: chrome/renderer/page_load_metrics/page_timing_metrics_sender.cc

Issue 2904533002: Factor management of metrics updates into its own class. (Closed)
Patch Set: address comments 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 unified diff | Download patch
« no previous file with comments | « chrome/common/page_load_metrics/page_load_metrics_constants.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/page_load_metrics/page_timing_metrics_sender.h" 5 #include "chrome/renderer/page_load_metrics/page_timing_metrics_sender.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "base/timer/timer.h" 11 #include "base/timer/timer.h"
12 #include "chrome/common/page_load_metrics/page_load_metrics_constants.h"
12 #include "chrome/renderer/page_load_metrics/page_timing_sender.h" 13 #include "chrome/renderer/page_load_metrics/page_timing_sender.h"
13 14
14 namespace page_load_metrics { 15 namespace page_load_metrics {
15 16
16 namespace { 17 namespace {
17 const int kInitialTimerDelayMillis = 50; 18 const int kInitialTimerDelayMillis = 50;
18 const int kTimerDelayMillis = 1000;
19 } // namespace 19 } // namespace
20 20
21 PageTimingMetricsSender::PageTimingMetricsSender( 21 PageTimingMetricsSender::PageTimingMetricsSender(
22 std::unique_ptr<PageTimingSender> sender, 22 std::unique_ptr<PageTimingSender> sender,
23 std::unique_ptr<base::Timer> timer, 23 std::unique_ptr<base::Timer> timer,
24 mojom::PageLoadTimingPtr initial_timing) 24 mojom::PageLoadTimingPtr initial_timing)
25 : sender_(std::move(sender)), 25 : sender_(std::move(sender)),
26 timer_(std::move(timer)), 26 timer_(std::move(timer)),
27 last_timing_(std::move(initial_timing)), 27 last_timing_(std::move(initial_timing)),
28 metadata_(mojom::PageLoadMetadata::New()) { 28 metadata_(mojom::PageLoadMetadata::New()) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 last_timing_ = std::move(timing); 63 last_timing_ = std::move(timing);
64 EnsureSendTimer(); 64 EnsureSendTimer();
65 } 65 }
66 66
67 void PageTimingMetricsSender::EnsureSendTimer() { 67 void PageTimingMetricsSender::EnsureSendTimer() {
68 if (!timer_->IsRunning()) { 68 if (!timer_->IsRunning()) {
69 // Send the first IPC eagerly to make sure the receiving side knows we're 69 // Send the first IPC eagerly to make sure the receiving side knows we're
70 // sending metrics as soon as possible. 70 // sending metrics as soon as possible.
71 int delay_ms = 71 int delay_ms =
72 have_sent_ipc_ ? kTimerDelayMillis : kInitialTimerDelayMillis; 72 have_sent_ipc_ ? kBufferTimerDelayMillis : kInitialTimerDelayMillis;
73 timer_->Start( 73 timer_->Start(
74 FROM_HERE, base::TimeDelta::FromMilliseconds(delay_ms), 74 FROM_HERE, base::TimeDelta::FromMilliseconds(delay_ms),
75 base::Bind(&PageTimingMetricsSender::SendNow, base::Unretained(this))); 75 base::Bind(&PageTimingMetricsSender::SendNow, base::Unretained(this)));
76 } 76 }
77 } 77 }
78 78
79 void PageTimingMetricsSender::SendNow() { 79 void PageTimingMetricsSender::SendNow() {
80 have_sent_ipc_ = true; 80 have_sent_ipc_ = true;
81 sender_->SendTiming(last_timing_, metadata_); 81 sender_->SendTiming(last_timing_, metadata_);
82 } 82 }
83 83
84 } // namespace page_load_metrics 84 } // namespace page_load_metrics
OLDNEW
« no previous file with comments | « chrome/common/page_load_metrics/page_load_metrics_constants.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698