OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <deque> | 5 #include <deque> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
8 #include "base/bind.h" | 8 #include "base/bind.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 1070 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1081 #endif | 1081 #endif |
1082 command_line->AppendSwitch(switches::kAlwaysAuthorizePlugins); | 1082 command_line->AppendSwitch(switches::kAlwaysAuthorizePlugins); |
1083 command_line->AppendSwitch(switches::kEnableNpapi); | 1083 command_line->AppendSwitch(switches::kEnableNpapi); |
1084 } | 1084 } |
1085 | 1085 |
1086 void SetPreference(NetworkPredictionOptions value) { | 1086 void SetPreference(NetworkPredictionOptions value) { |
1087 browser()->profile()->GetPrefs()->SetInteger( | 1087 browser()->profile()->GetPrefs()->SetInteger( |
1088 prefs::kNetworkPredictionOptions, value); | 1088 prefs::kNetworkPredictionOptions, value); |
1089 } | 1089 } |
1090 | 1090 |
1091 void CreateTestFieldTrial(const std::string& name, | 1091 // Verifies whether ShouldDisableLocalPredictorDueToPreferencesAndNetwork |
1092 const std::string& group_name) { | 1092 // produces the desired output. |
1093 base::FieldTrial* trial = base::FieldTrialList::CreateFieldTrial( | |
1094 name, group_name); | |
1095 trial->group(); | |
1096 } | |
1097 | |
1098 // Verifies, for the current field trial, whether | |
1099 // ShouldDisableLocalPredictorDueToPreferencesAndNetwork produces the desired | |
1100 // output. | |
1101 void TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | 1093 void TestShouldDisableLocalPredictorPreferenceNetworkMatrix( |
1102 bool preference_wifi_network_wifi, | 1094 bool preference_wifi_network_wifi, |
1103 bool preference_wifi_network_4g, | 1095 bool preference_wifi_network_4g, |
1104 bool preference_always_network_wifi, | 1096 bool preference_always_network_wifi, |
1105 bool preference_always_network_4g, | 1097 bool preference_always_network_4g, |
1106 bool preference_never_network_wifi, | 1098 bool preference_never_network_wifi, |
1107 bool preference_never_network_4g) { | 1099 bool preference_never_network_4g) { |
1108 Profile* profile = browser()->profile(); | 1100 Profile* profile = browser()->profile(); |
1109 | 1101 |
1110 // Set real NetworkChangeNotifier singleton aside. | 1102 // Set real NetworkChangeNotifier singleton aside. |
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1719 NeverRunsExternalProtocolHandlerDelegate external_protocol_handler_delegate_; | 1711 NeverRunsExternalProtocolHandlerDelegate external_protocol_handler_delegate_; |
1720 GURL dest_url_; | 1712 GURL dest_url_; |
1721 scoped_ptr<net::SpawnedTestServer> https_src_server_; | 1713 scoped_ptr<net::SpawnedTestServer> https_src_server_; |
1722 bool call_javascript_; | 1714 bool call_javascript_; |
1723 bool check_load_events_; | 1715 bool check_load_events_; |
1724 std::string loader_host_override_; | 1716 std::string loader_host_override_; |
1725 std::string loader_path_; | 1717 std::string loader_path_; |
1726 std::string loader_query_; | 1718 std::string loader_query_; |
1727 Browser* explicitly_set_browser_; | 1719 Browser* explicitly_set_browser_; |
1728 base::HistogramTester histogram_tester_; | 1720 base::HistogramTester histogram_tester_; |
1729 scoped_ptr<base::FieldTrialList> field_trial_list_; | |
1730 }; | 1721 }; |
1731 | 1722 |
1732 // Checks that a page is correctly prerendered in the case of a | 1723 // Checks that a page is correctly prerendered in the case of a |
1733 // <link rel=prerender> tag and then loaded into a tab in response to a | 1724 // <link rel=prerender> tag and then loaded into a tab in response to a |
1734 // navigation. | 1725 // navigation. |
1735 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { | 1726 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { |
1736 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); | 1727 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); |
1737 EXPECT_EQ(1, GetPrerenderDomContentLoadedEventCountForLinkNumber(0)); | 1728 EXPECT_EQ(1, GetPrerenderDomContentLoadedEventCountForLinkNumber(0)); |
1738 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLT", 1); | 1729 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLT", 1); |
1739 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); | 1730 histogram_tester().ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); |
(...skipping 2382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4122 LocalPredictorDisableWorksBaseCase) { | 4113 LocalPredictorDisableWorksBaseCase) { |
4123 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | 4114 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( |
4124 false /*preference_wifi_network_wifi*/, | 4115 false /*preference_wifi_network_wifi*/, |
4125 false /*preference_wifi_network_4g*/, | 4116 false /*preference_wifi_network_4g*/, |
4126 false /*preference_always_network_wifi*/, | 4117 false /*preference_always_network_wifi*/, |
4127 false /*preference_always_network_4g*/, | 4118 false /*preference_always_network_4g*/, |
4128 false /*preference_never_network_wifi*/, | 4119 false /*preference_never_network_wifi*/, |
4129 false /*preference_never_network_4g*/); | 4120 false /*preference_never_network_4g*/); |
4130 } | 4121 } |
4131 | 4122 |
4132 // Prefetch should be allowed depending on preference and network type. | |
4133 // LocalPredictorOnCellularOnly should disable all wifi cases. | |
4134 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
4135 LocalPredictorDisableWorksCellularOnly) { | |
4136 CreateTestFieldTrial("PrerenderLocalPredictorSpec", | |
4137 "LocalPredictorOnCellularOnly=Enabled"); | |
4138 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | |
4139 true /*preference_wifi_network_wifi*/, | |
4140 false /*preference_wifi_network_4g*/, | |
4141 true /*preference_always_network_wifi*/, | |
4142 false /*preference_always_network_4g*/, | |
4143 true /*preference_never_network_wifi*/, | |
4144 false /*preference_never_network_4g*/); | |
4145 } | |
4146 | |
4147 // Prefetch should be allowed depending on preference and network type. | |
4148 // LocalPredictorNetworkPredictionEnabledOnly should disable whenever | |
4149 // network predictions will not be exercised. | |
4150 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
4151 LocalPredictorDisableWorksNetworkPredictionEnableOnly) { | |
4152 CreateTestFieldTrial("PrerenderLocalPredictorSpec", | |
4153 "LocalPredictorNetworkPredictionEnabledOnly=Enabled"); | |
4154 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | |
4155 false /*preference_wifi_network_wifi*/, | |
4156 true /*preference_wifi_network_4g*/, | |
4157 false /*preference_always_network_wifi*/, | |
4158 false /*preference_always_network_4g*/, | |
4159 true /*preference_never_network_wifi*/, | |
4160 true /*preference_never_network_4g*/); | |
4161 } | |
4162 | |
4163 // Prefetch should be allowed depending on preference and network type. | |
4164 // If LocalPredictorNetworkPredictionEnabledOnly and | |
4165 // LocalPredictorOnCellularOnly are both selected, we must disable whenever | |
4166 // network predictions are not exercised, or when we are on wifi. | |
4167 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
4168 LocalPredictorDisableWorksBothOptions) { | |
4169 CreateTestFieldTrial("PrerenderLocalPredictorSpec", | |
4170 "LocalPredictorOnCellularOnly=Enabled:" | |
4171 "LocalPredictorNetworkPredictionEnabledOnly=Enabled"); | |
4172 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | |
4173 true /*preference_wifi_network_wifi*/, | |
4174 true /*preference_wifi_network_4g*/, | |
4175 true /*preference_always_network_wifi*/, | |
4176 false /*preference_always_network_4g*/, | |
4177 true /*preference_never_network_wifi*/, | |
4178 true /*preference_never_network_4g*/); | |
4179 } | |
4180 | |
4181 } // namespace prerender | 4123 } // namespace prerender |
OLD | NEW |