| 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 |