| OLD | NEW |
| 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/browser/page_load_metrics/observers/from_gws_page_load_metrics_
observer.h" | 5 #include "chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_
observer.h" |
| 6 | 6 |
| 7 #include "base/macros.h" | 7 #include "base/macros.h" |
| 8 #include "base/memory/ptr_util.h" | 8 #include "base/memory/ptr_util.h" |
| 9 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" | 9 #include "chrome/browser/page_load_metrics/observers/page_load_metrics_observer_
test_harness.h" |
| 10 #include "components/page_load_metrics/browser/page_load_metrics_util.h" | 10 #include "components/page_load_metrics/browser/page_load_metrics_util.h" |
| (...skipping 656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 NavigateAndCommit(GURL("https://example.test")); | 667 NavigateAndCommit(GURL("https://example.test")); |
| 668 SimulateTimingWithFirstPaint(); | 668 SimulateTimingWithFirstPaint(); |
| 669 // Simulate user interaction. | 669 // Simulate user interaction. |
| 670 SimulateMouseEvent(); | 670 SimulateMouseEvent(); |
| 671 // Simulate closing the tab. | 671 // Simulate closing the tab. |
| 672 DeleteContents(); | 672 DeleteContents(); |
| 673 histogram_tester().ExpectTotalCount( | 673 histogram_tester().ExpectTotalCount( |
| 674 internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0); | 674 internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0); |
| 675 } | 675 } |
| 676 | 676 |
| 677 TEST_F(FromGWSPageLoadMetricsObserverTest, CommittedIntent) { |
| 678 NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| 679 NavigateAndCommit(GURL("intent://en.m.wikipedia.org/wiki/Test")); |
| 680 SimulateTimingWithFirstPaint(); |
| 681 // Simulate closing the tab. |
| 682 DeleteContents(); |
| 683 histogram_tester().ExpectTotalCount( |
| 684 internal::kHistogramFromGWSAbortCloseBeforeInteraction, 0); |
| 685 } |
| 686 |
| 687 TEST_F(FromGWSPageLoadMetricsObserverTest, ProvisionalIntent) { |
| 688 NavigateAndCommit(GURL(kGoogleSearchResultsUrl)); |
| 689 StartNavigation(GURL("intent://en.m.wikipedia.org/wiki/Test")); |
| 690 // Simulate closing the tab. |
| 691 DeleteContents(); |
| 692 histogram_tester().ExpectTotalCount( |
| 693 internal::kHistogramFromGWSAbortCloseBeforeCommit, 0); |
| 694 } |
| 695 |
| 677 TEST_F(FromGWSPageLoadMetricsLoggerTest, IsGoogleSearchHostname) { | 696 TEST_F(FromGWSPageLoadMetricsLoggerTest, IsGoogleSearchHostname) { |
| 678 struct { | 697 struct { |
| 679 bool expected_result; | 698 bool expected_result; |
| 680 const char* url; | 699 const char* url; |
| 681 } test_cases[] = { | 700 } test_cases[] = { |
| 682 {true, "www.google.com"}, | 701 {true, "www.google.com"}, |
| 683 {true, "www.google.co.uk"}, | 702 {true, "www.google.co.uk"}, |
| 684 {true, "www.google.co.in"}, | 703 {true, "www.google.co.in"}, |
| 685 {false, "other.google.com"}, | 704 {false, "other.google.com"}, |
| 686 {false, "other.www.google.com"}, | 705 {false, "other.www.google.com"}, |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 823 for (const auto& test : test_cases) { | 842 for (const auto& test : test_cases) { |
| 824 EXPECT_EQ(test.expected_result, | 843 EXPECT_EQ(test.expected_result, |
| 825 FromGWSPageLoadMetricsLogger::QueryContainsComponentPrefix( | 844 FromGWSPageLoadMetricsLogger::QueryContainsComponentPrefix( |
| 826 test.query, test.component)) | 845 test.query, test.component)) |
| 827 << "For query: " << test.query << " with component: " << test.component; | 846 << "For query: " << test.query << " with component: " << test.component; |
| 828 } | 847 } |
| 829 } | 848 } |
| 830 | 849 |
| 831 TEST_F(FromGWSPageLoadMetricsLoggerTest, Basic) { | 850 TEST_F(FromGWSPageLoadMetricsLoggerTest, Basic) { |
| 832 FromGWSPageLoadMetricsLogger logger; | 851 FromGWSPageLoadMetricsLogger logger; |
| 833 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kExampleUrl))); | 852 ASSERT_FALSE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); |
| 834 } | 853 } |
| 835 | 854 |
| 836 TEST_F(FromGWSPageLoadMetricsLoggerTest, NoPreviousPage) { | 855 TEST_F(FromGWSPageLoadMetricsLoggerTest, NoPreviousPage) { |
| 837 FromGWSPageLoadMetricsLogger logger; | 856 FromGWSPageLoadMetricsLogger logger; |
| 838 logger.SetPreviouslyCommittedUrl(GURL()); | 857 logger.SetPreviouslyCommittedUrl(GURL()); |
| 839 logger.set_navigation_initiated_via_link(true); | 858 logger.set_navigation_initiated_via_link(true); |
| 840 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kExampleUrl))); | 859 ASSERT_FALSE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); |
| 841 } | 860 } |
| 842 | 861 |
| 843 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationNotInitiatedViaLink) { | 862 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationNotInitiatedViaLink) { |
| 844 FromGWSPageLoadMetricsLogger logger; | 863 FromGWSPageLoadMetricsLogger logger; |
| 845 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 864 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 846 logger.set_navigation_initiated_via_link(false); | 865 logger.set_navigation_initiated_via_link(false); |
| 847 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kExampleUrl))); | 866 ASSERT_FALSE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); |
| 848 } | |
| 849 | |
| 850 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalNonHttpOrHttpsScheme) { | |
| 851 FromGWSPageLoadMetricsLogger logger; | |
| 852 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | |
| 853 logger.SetProvisionalUrl(GURL("intent://foo")); | |
| 854 ASSERT_FALSE(logger.ShouldLogMetrics(GURL::EmptyGURL())); | |
| 855 } | 867 } |
| 856 | 868 |
| 857 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalFromGWS) { | 869 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalFromGWS) { |
| 858 FromGWSPageLoadMetricsLogger logger; | 870 FromGWSPageLoadMetricsLogger logger; |
| 859 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 871 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 860 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl)); | 872 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl)); |
| 861 ASSERT_FALSE(logger.ShouldLogMetrics(GURL::EmptyGURL())); | 873 ASSERT_FALSE(logger.ShouldLogFailedProvisionalLoadMetrics()); |
| 862 } | 874 } |
| 863 | 875 |
| 864 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalNotFromGWS) { | 876 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalNotFromGWS) { |
| 865 FromGWSPageLoadMetricsLogger logger; | 877 FromGWSPageLoadMetricsLogger logger; |
| 866 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 878 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 867 logger.SetProvisionalUrl(GURL(kExampleUrl)); | 879 logger.SetProvisionalUrl(GURL(kExampleUrl)); |
| 868 ASSERT_TRUE(logger.ShouldLogMetrics(GURL::EmptyGURL())); | 880 ASSERT_TRUE(logger.ShouldLogFailedProvisionalLoadMetrics()); |
| 869 } | |
| 870 | |
| 871 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIntent) { | |
| 872 FromGWSPageLoadMetricsLogger logger; | |
| 873 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | |
| 874 logger.SetProvisionalUrl(GURL("intent://en.m.wikipedia.org/wiki/Test")); | |
| 875 ASSERT_FALSE(logger.ShouldLogMetrics(GURL::EmptyGURL())); | |
| 876 } | 881 } |
| 877 | 882 |
| 878 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit1) { | 883 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit1) { |
| 879 FromGWSPageLoadMetricsLogger logger; | 884 FromGWSPageLoadMetricsLogger logger; |
| 880 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 885 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 881 logger.SetProvisionalUrl(GURL(kExampleUrl)); | 886 logger.SetProvisionalUrl(GURL(kExampleUrl)); |
| 882 logger.set_navigation_initiated_via_link(true); | 887 logger.set_navigation_initiated_via_link(true); |
| 883 ASSERT_FALSE(logger.ShouldLogMetrics(GURL(kGoogleSearchResultsUrl))); | 888 ASSERT_FALSE( |
| 889 logger.ShouldLogPostCommitMetrics(GURL(kGoogleSearchResultsUrl))); |
| 884 } | 890 } |
| 885 | 891 |
| 886 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit2) { | 892 TEST_F(FromGWSPageLoadMetricsLoggerTest, ProvisionalIgnoredAfterCommit2) { |
| 887 FromGWSPageLoadMetricsLogger logger; | 893 FromGWSPageLoadMetricsLogger logger; |
| 888 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 894 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 889 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl)); | 895 logger.SetProvisionalUrl(GURL(kGoogleSearchResultsUrl)); |
| 890 logger.set_navigation_initiated_via_link(true); | 896 logger.set_navigation_initiated_via_link(true); |
| 891 ASSERT_TRUE(logger.ShouldLogMetrics(GURL(kExampleUrl))); | 897 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); |
| 892 } | 898 } |
| 893 | 899 |
| 894 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearch) { | 900 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearch) { |
| 895 FromGWSPageLoadMetricsLogger logger; | 901 FromGWSPageLoadMetricsLogger logger; |
| 896 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 902 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 897 logger.set_navigation_initiated_via_link(true); | 903 logger.set_navigation_initiated_via_link(true); |
| 898 ASSERT_TRUE(logger.ShouldLogMetrics(GURL(kExampleUrl))); | 904 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); |
| 899 } | 905 } |
| 900 | 906 |
| 901 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationToSearchHostname) { | 907 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationToSearchHostname) { |
| 902 FromGWSPageLoadMetricsLogger logger; | 908 FromGWSPageLoadMetricsLogger logger; |
| 903 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); | 909 logger.SetPreviouslyCommittedUrl(GURL(kGoogleSearchResultsUrl)); |
| 904 logger.set_navigation_initiated_via_link(true); | 910 logger.set_navigation_initiated_via_link(true); |
| 905 ASSERT_FALSE(logger.ShouldLogMetrics(GURL("https://www.google.com/about/"))); | 911 ASSERT_FALSE( |
| 912 logger.ShouldLogPostCommitMetrics(GURL("https://www.google.com/about/"))); |
| 906 } | 913 } |
| 907 | 914 |
| 908 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearchRedirector) { | 915 TEST_F(FromGWSPageLoadMetricsLoggerTest, NavigationFromSearchRedirector) { |
| 909 FromGWSPageLoadMetricsLogger logger; | 916 FromGWSPageLoadMetricsLogger logger; |
| 910 logger.SetPreviouslyCommittedUrl( | 917 logger.SetPreviouslyCommittedUrl( |
| 911 GURL("https://www.google.com/url?source=web")); | 918 GURL("https://www.google.com/url?source=web")); |
| 912 logger.set_navigation_initiated_via_link(true); | 919 logger.set_navigation_initiated_via_link(true); |
| 913 ASSERT_TRUE(logger.ShouldLogMetrics(GURL(kExampleUrl))); | 920 ASSERT_TRUE(logger.ShouldLogPostCommitMetrics(GURL(kExampleUrl))); |
| 914 } | 921 } |
| OLD | NEW |