Index: chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc |
diff --git a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc b/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc |
index 453f15b3740b6264a7220cdc420d5767c5e99eaf..5ab9f0d2299302cb21c3613c8c7f1a2ba56e56cd 100644 |
--- a/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc |
+++ b/chrome/renderer/page_load_metrics/metrics_render_frame_observer_unittest.cc |
@@ -43,7 +43,7 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver { |
void set_is_main_frame(bool is_main_frame) { is_main_frame_ = is_main_frame; } |
- bool WasFakeTimingConsumed() const { return fake_timing_.IsEmpty(); } |
+ bool WasFakeTimingConsumed() const { return IsEmpty(*fake_timing_); } |
void ExpectPageLoadTiming(const PageLoadTiming& timing) { |
SetFakePageLoadTiming(timing); |
@@ -51,18 +51,17 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver { |
} |
void SetFakePageLoadTiming(const PageLoadTiming& timing) { |
- EXPECT_TRUE(fake_timing_.IsEmpty()); |
- fake_timing_ = timing; |
+ EXPECT_EQ(nullptr, fake_timing_.get()); |
+ fake_timing_ = timing.Clone(); |
} |
- PageLoadTiming GetTiming() const override { |
- PageLoadTiming tmp = fake_timing_; |
- fake_timing_ = PageLoadTiming(); |
- return tmp; |
+ mojo::StructPtr<PageLoadTiming> GetTiming() const override { |
+ EXPECT_NE(nullptr, fake_timing_.get()); |
+ return std::move(fake_timing_); |
} |
void VerifyExpectedTimings() const { |
- EXPECT_TRUE(fake_timing_.IsEmpty()); |
+ EXPECT_EQ(nullptr, fake_timing_.get()); |
fake_timing_ipc_sender_.VerifyExpectedTimings(); |
} |
@@ -72,7 +71,7 @@ class TestMetricsRenderFrameObserver : public MetricsRenderFrameObserver { |
private: |
FakePageTimingMetricsIPCSender fake_timing_ipc_sender_; |
- mutable PageLoadTiming fake_timing_; |
+ mutable mojo::StructPtr<PageLoadTiming> fake_timing_; |
mutable std::unique_ptr<base::Timer> mock_timer_; |
bool is_main_frame_ = true; |
}; |
@@ -97,12 +96,13 @@ TEST_F(MetricsRenderFrameObserverTest, SingleMetric) { |
observer.set_mock_timer(base::WrapUnique(mock_timer)); |
PageLoadTiming timing; |
+ page_load_metrics::InitPageLoadTimingForTest(&timing); |
timing.navigation_start = nav_start; |
observer.ExpectPageLoadTiming(timing); |
observer.DidCommitProvisionalLoad(true, false); |
mock_timer->Fire(); |
- timing.document_timing.first_layout = first_layout; |
+ timing.document_timing->first_layout = first_layout; |
observer.ExpectPageLoadTiming(timing); |
observer.DidChangePerformanceTiming(); |
@@ -120,13 +120,14 @@ TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) { |
observer.set_mock_timer(base::WrapUnique(mock_timer)); |
PageLoadTiming timing; |
+ page_load_metrics::InitPageLoadTimingForTest(&timing); |
timing.navigation_start = nav_start; |
observer.ExpectPageLoadTiming(timing); |
observer.DidCommitProvisionalLoad(true, false); |
mock_timer->Fire(); |
- timing.document_timing.first_layout = first_layout; |
- timing.document_timing.dom_content_loaded_event_start = dom_event; |
+ timing.document_timing->first_layout = first_layout; |
+ timing.document_timing->dom_content_loaded_event_start = dom_event; |
observer.ExpectPageLoadTiming(timing); |
observer.DidChangePerformanceTiming(); |
@@ -137,7 +138,7 @@ TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) { |
// part of the test. |
observer.VerifyExpectedTimings(); |
- timing.document_timing.load_event_start = load_event; |
+ timing.document_timing->load_event_start = load_event; |
observer.ExpectPageLoadTiming(timing); |
observer.DidChangePerformanceTiming(); |
@@ -151,6 +152,7 @@ TEST_F(MetricsRenderFrameObserverTest, MultipleMetrics) { |
// dom content, and load metrics. However, since we've already generated |
// timing information for all of these metrics previously, we do not expect |
// this invocation to generate any additional metrics. |
+ observer.SetFakePageLoadTiming(timing); |
observer.DidChangePerformanceTiming(); |
ASSERT_FALSE(mock_timer->IsRunning()); |
} |
@@ -166,14 +168,15 @@ TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) { |
observer.set_mock_timer(base::WrapUnique(mock_timer)); |
PageLoadTiming timing; |
+ page_load_metrics::InitPageLoadTimingForTest(&timing); |
timing.navigation_start = nav_start; |
observer.ExpectPageLoadTiming(timing); |
observer.DidCommitProvisionalLoad(true, false); |
mock_timer->Fire(); |
- timing.document_timing.first_layout = first_layout; |
- timing.document_timing.dom_content_loaded_event_start = dom_event; |
- timing.document_timing.load_event_start = load_event; |
+ timing.document_timing->first_layout = first_layout; |
+ timing.document_timing->dom_content_loaded_event_start = dom_event; |
+ timing.document_timing->load_event_start = load_event; |
observer.ExpectPageLoadTiming(timing); |
observer.DidChangePerformanceTiming(); |
mock_timer->Fire(); |
@@ -188,6 +191,7 @@ TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) { |
base::TimeDelta dom_event_2 = base::TimeDelta::FromMillisecondsD(20); |
base::TimeDelta load_event_2 = base::TimeDelta::FromMillisecondsD(20); |
PageLoadTiming timing_2; |
+ page_load_metrics::InitPageLoadTimingForTest(&timing_2); |
timing_2.navigation_start = nav_start_2; |
base::MockTimer* mock_timer2 = new base::MockTimer(false, false); |
@@ -197,9 +201,9 @@ TEST_F(MetricsRenderFrameObserverTest, MultipleNavigations) { |
observer.DidCommitProvisionalLoad(true, false); |
mock_timer2->Fire(); |
- timing_2.document_timing.first_layout = first_layout_2; |
- timing_2.document_timing.dom_content_loaded_event_start = dom_event_2; |
- timing_2.document_timing.load_event_start = load_event_2; |
+ timing_2.document_timing->first_layout = first_layout_2; |
+ timing_2.document_timing->dom_content_loaded_event_start = dom_event_2; |
+ timing_2.document_timing->load_event_start = load_event_2; |
observer.ExpectPageLoadTiming(timing_2); |
observer.DidChangePerformanceTiming(); |
@@ -215,6 +219,7 @@ TEST_F(MetricsRenderFrameObserverTest, NoUpdatesFromChildFrames) { |
observer.set_is_main_frame(false); |
PageLoadTiming timing; |
+ page_load_metrics::InitPageLoadTimingForTest(&timing); |
timing.navigation_start = nav_start; |
observer.SetFakePageLoadTiming(timing); |
observer.DidCommitProvisionalLoad(true, false); |