| Index: chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
|
| diff --git a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc b/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
|
| index a301058e1312753aae6341f00f1023fe9e375bcf..b71dd42f9b2d76d283a3ac280f29b25849995675 100644
|
| --- a/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
|
| +++ b/chrome/browser/page_load_metrics/metrics_web_contents_observer_unittest.cc
|
| @@ -40,9 +40,10 @@ const char kFilteredCommitUrl[] = "https://whatever.com/ignore-on-commit";
|
| // provided std::vector, so they can be analyzed by unit tests.
|
| class TestPageLoadMetricsObserver : public PageLoadMetricsObserver {
|
| public:
|
| - TestPageLoadMetricsObserver(std::vector<PageLoadTiming>* updated_timings,
|
| - std::vector<PageLoadTiming>* complete_timings,
|
| - std::vector<GURL>* observed_committed_urls)
|
| + TestPageLoadMetricsObserver(
|
| + std::vector<mojo::StructPtr<PageLoadTiming>>* updated_timings,
|
| + std::vector<mojo::StructPtr<PageLoadTiming>>* complete_timings,
|
| + std::vector<GURL>* observed_committed_urls)
|
| : updated_timings_(updated_timings),
|
| complete_timings_(complete_timings),
|
| observed_committed_urls_(observed_committed_urls) {}
|
| @@ -56,12 +57,12 @@ class TestPageLoadMetricsObserver : public PageLoadMetricsObserver {
|
|
|
| void OnTimingUpdate(const PageLoadTiming& timing,
|
| const PageLoadExtraInfo& extra_info) override {
|
| - updated_timings_->push_back(timing);
|
| + updated_timings_->push_back(timing.Clone());
|
| }
|
|
|
| void OnComplete(const PageLoadTiming& timing,
|
| const PageLoadExtraInfo& extra_info) override {
|
| - complete_timings_->push_back(timing);
|
| + complete_timings_->push_back(timing.Clone());
|
| }
|
|
|
| ObservePolicy FlushMetricsOnAppEnterBackground(
|
| @@ -71,8 +72,8 @@ class TestPageLoadMetricsObserver : public PageLoadMetricsObserver {
|
| }
|
|
|
| private:
|
| - std::vector<PageLoadTiming>* const updated_timings_;
|
| - std::vector<PageLoadTiming>* const complete_timings_;
|
| + std::vector<mojo::StructPtr<PageLoadTiming>>* const updated_timings_;
|
| + std::vector<mojo::StructPtr<PageLoadTiming>>* const complete_timings_;
|
| std::vector<GURL>* const observed_committed_urls_;
|
| };
|
|
|
| @@ -120,10 +121,10 @@ class TestPageLoadMetricsEmbedderInterface
|
| tracker->AddObserver(base::MakeUnique<FilteringPageLoadMetricsObserver>(
|
| &completed_filtered_urls_));
|
| }
|
| - const std::vector<PageLoadTiming>& updated_timings() const {
|
| + const std::vector<mojo::StructPtr<PageLoadTiming>>& updated_timings() const {
|
| return updated_timings_;
|
| }
|
| - const std::vector<PageLoadTiming>& complete_timings() const {
|
| + const std::vector<mojo::StructPtr<PageLoadTiming>>& complete_timings() const {
|
| return complete_timings_;
|
| }
|
|
|
| @@ -138,8 +139,8 @@ class TestPageLoadMetricsEmbedderInterface
|
| }
|
|
|
| private:
|
| - std::vector<PageLoadTiming> updated_timings_;
|
| - std::vector<PageLoadTiming> complete_timings_;
|
| + std::vector<mojo::StructPtr<PageLoadTiming>> updated_timings_;
|
| + std::vector<mojo::StructPtr<PageLoadTiming>> complete_timings_;
|
| std::vector<GURL> observed_committed_urls_;
|
| std::vector<GURL> completed_filtered_urls_;
|
| bool is_ntp_;
|
| @@ -197,7 +198,7 @@ class MetricsWebContentsObserverTest : public ChromeRenderViewHostTestHarness {
|
| int CountEmptyCompleteTimingReported() {
|
| int empty = 0;
|
| for (const auto& timing : embedder_interface_->complete_timings()) {
|
| - if (timing.IsEmpty())
|
| + if (page_load_metrics::IsEmpty(*timing))
|
| ++empty;
|
| }
|
| return empty;
|
| @@ -231,6 +232,7 @@ class MetricsWebContentsObserverTest : public ChromeRenderViewHostTestHarness {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, SuccessfulMainFrameNavigation) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -259,6 +261,7 @@ TEST_F(MetricsWebContentsObserverTest, SuccessfulMainFrameNavigation) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, NotInMainFrame) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -289,6 +292,7 @@ TEST_F(MetricsWebContentsObserverTest, NotInMainFrame) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, SameDocumentNoTrigger) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -319,6 +323,7 @@ TEST_F(MetricsWebContentsObserverTest, SameDocumentNoTrigger) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, DontLogNewTabPage) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -336,6 +341,7 @@ TEST_F(MetricsWebContentsObserverTest, DontLogNewTabPage) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, DontLogIrrelevantNavigation) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(10);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -356,6 +362,7 @@ TEST_F(MetricsWebContentsObserverTest, DontLogIrrelevantNavigation) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, EmptyTimingError) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| content::WebContentsTester::For(web_contents());
|
| @@ -380,7 +387,8 @@ TEST_F(MetricsWebContentsObserverTest, EmptyTimingError) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, NullNavigationStartError) {
|
| PageLoadTiming timing;
|
| - timing.parse_timing.parse_start = base::TimeDelta::FromMilliseconds(1);
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| + timing.parse_timing->parse_start = base::TimeDelta::FromMilliseconds(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| content::WebContentsTester::For(web_contents());
|
| @@ -405,8 +413,9 @@ TEST_F(MetricsWebContentsObserverTest, NullNavigationStartError) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, TimingOrderError) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(1);
|
| - timing.parse_timing.parse_stop = base::TimeDelta::FromMilliseconds(1);
|
| + timing.parse_timing->parse_stop = base::TimeDelta::FromMilliseconds(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| content::WebContentsTester::For(web_contents());
|
| @@ -431,6 +440,7 @@ TEST_F(MetricsWebContentsObserverTest, TimingOrderError) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, NotInMainError) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(1);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -454,8 +464,10 @@ TEST_F(MetricsWebContentsObserverTest, NotInMainError) {
|
|
|
| TEST_F(MetricsWebContentsObserverTest, BadIPC) {
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(10);
|
| PageLoadTiming timing2;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing2);
|
| timing2.navigation_start = base::Time::FromDoubleT(100);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
| @@ -479,6 +491,7 @@ TEST_F(MetricsWebContentsObserverTest, ObservePartialNavigation) {
|
| SetContents(CreateTestWebContents());
|
|
|
| PageLoadTiming timing;
|
| + page_load_metrics::InitPageLoadTimingForTest(&timing);
|
| timing.navigation_start = base::Time::FromDoubleT(10);
|
|
|
| content::WebContentsTester* web_contents_tester =
|
|
|