| Index: chrome/renderer/page_load_metrics/page_timing_metrics_sender_unittest.cc
|
| diff --git a/chrome/renderer/page_load_metrics/page_timing_metrics_sender_unittest.cc b/chrome/renderer/page_load_metrics/page_timing_metrics_sender_unittest.cc
|
| index 3756f33e770e4e1ae738afc5b3060a07513acdb1..6d586ca6ac7741ba478803aa031067ba2801bb2e 100644
|
| --- a/chrome/renderer/page_load_metrics/page_timing_metrics_sender_unittest.cc
|
| +++ b/chrome/renderer/page_load_metrics/page_timing_metrics_sender_unittest.cc
|
| @@ -17,13 +17,14 @@ namespace page_load_metrics {
|
| // MockTimer instance.
|
| class TestPageTimingMetricsSender : public PageTimingMetricsSender {
|
| public:
|
| - explicit TestPageTimingMetricsSender(IPC::Sender* ipc_sender,
|
| - const PageLoadTiming& initial_timing)
|
| + explicit TestPageTimingMetricsSender(
|
| + IPC::Sender* ipc_sender,
|
| + mojo::StructPtr<PageLoadTiming> initial_timing)
|
| : PageTimingMetricsSender(
|
| ipc_sender,
|
| MSG_ROUTING_NONE,
|
| std::unique_ptr<base::Timer>(new base::MockTimer(false, false)),
|
| - initial_timing) {}
|
| + std::move(initial_timing)) {}
|
|
|
| base::MockTimer* mock_timer() const {
|
| return reinterpret_cast<base::MockTimer*>(timer());
|
| @@ -33,8 +34,9 @@ class TestPageTimingMetricsSender : public PageTimingMetricsSender {
|
| class PageTimingMetricsSenderTest : public testing::Test {
|
| public:
|
| PageTimingMetricsSenderTest()
|
| - : metrics_sender_(new TestPageTimingMetricsSender(&fake_ipc_sender_,
|
| - PageLoadTiming())) {}
|
| + : metrics_sender_(
|
| + new TestPageTimingMetricsSender(&fake_ipc_sender_,
|
| + PageLoadTiming::New())) {}
|
|
|
| protected:
|
| FakePageTimingMetricsIPCSender fake_ipc_sender_;
|
| @@ -46,10 +48,11 @@ TEST_F(PageTimingMetricsSenderTest, Basic) {
|
| base::TimeDelta first_layout = base::TimeDelta::FromMillisecondsD(2);
|
|
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = nav_start;
|
| - timing.document_timing.first_layout = first_layout;
|
| + timing.document_timing->first_layout = first_layout;
|
|
|
| - metrics_sender_->Send(timing);
|
| + metrics_sender_->Send(timing.Clone());
|
|
|
| // Firing the timer should trigger sending of an OnTimingUpdated IPC.
|
| fake_ipc_sender_.ExpectPageLoadTiming(timing);
|
| @@ -62,7 +65,7 @@ TEST_F(PageTimingMetricsSenderTest, Basic) {
|
|
|
| // Attempt to send the same timing instance again. The send should be
|
| // suppressed, since the timing instance hasn't changed since the last send.
|
| - metrics_sender_->Send(timing);
|
| + metrics_sender_->Send(timing.Clone());
|
| EXPECT_FALSE(metrics_sender_->mock_timer()->IsRunning());
|
| }
|
|
|
| @@ -72,16 +75,17 @@ TEST_F(PageTimingMetricsSenderTest, CoalesceMultipleIPCs) {
|
| base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4);
|
|
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = nav_start;
|
| - timing.document_timing.first_layout = first_layout;
|
| + timing.document_timing->first_layout = first_layout;
|
|
|
| - metrics_sender_->Send(timing);
|
| + metrics_sender_->Send(timing.Clone());
|
| ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning());
|
|
|
| // Send an updated PageLoadTiming before the timer has fired. When the timer
|
| // fires, the updated PageLoadTiming should be sent.
|
| - timing.document_timing.load_event_start = load_event;
|
| - metrics_sender_->Send(timing);
|
| + timing.document_timing->load_event_start = load_event;
|
| + metrics_sender_->Send(timing.Clone());
|
|
|
| // Firing the timer should trigger sending of the OnTimingUpdated IPC with
|
| // the most recently provided PageLoadTiming instance.
|
| @@ -96,10 +100,11 @@ TEST_F(PageTimingMetricsSenderTest, MultipleIPCs) {
|
| base::TimeDelta load_event = base::TimeDelta::FromMillisecondsD(4);
|
|
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = nav_start;
|
| - timing.document_timing.first_layout = first_layout;
|
| + timing.document_timing->first_layout = first_layout;
|
|
|
| - metrics_sender_->Send(timing);
|
| + metrics_sender_->Send(timing.Clone());
|
| ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning());
|
| fake_ipc_sender_.ExpectPageLoadTiming(timing);
|
| metrics_sender_->mock_timer()->Fire();
|
| @@ -108,8 +113,8 @@ TEST_F(PageTimingMetricsSenderTest, MultipleIPCs) {
|
|
|
| // Send an updated PageLoadTiming after the timer for the first send request
|
| // has fired, and verify that a second IPC is sent.
|
| - timing.document_timing.load_event_start = load_event;
|
| - metrics_sender_->Send(timing);
|
| + timing.document_timing->load_event_start = load_event;
|
| + metrics_sender_->Send(timing.Clone());
|
| ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning());
|
| fake_ipc_sender_.ExpectPageLoadTiming(timing);
|
| metrics_sender_->mock_timer()->Fire();
|
| @@ -118,13 +123,14 @@ TEST_F(PageTimingMetricsSenderTest, MultipleIPCs) {
|
|
|
| TEST_F(PageTimingMetricsSenderTest, SendIPCOnDestructor) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(10);
|
| - timing.document_timing.first_layout = base::TimeDelta::FromMilliseconds(10);
|
| + timing.document_timing->first_layout = base::TimeDelta::FromMilliseconds(10);
|
|
|
| // This test wants to verify behavior in the PageTimingMetricsSender
|
| // destructor. The EXPECT_CALL will be satisfied when the |metrics_sender_|
|
| // is destroyed below.
|
| - metrics_sender_->Send(timing);
|
| + metrics_sender_->Send(timing.Clone());
|
| fake_ipc_sender_.ExpectPageLoadTiming(timing);
|
| ASSERT_TRUE(metrics_sender_->mock_timer()->IsRunning());
|
|
|
|
|