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 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1116 base::FilePath app_dir; | 1116 base::FilePath app_dir; |
1117 PathService::Get(chrome::DIR_APP, &app_dir); | 1117 PathService::Get(chrome::DIR_APP, &app_dir); |
1118 command_line->AppendSwitchPath( | 1118 command_line->AppendSwitchPath( |
1119 switches::kExtraPluginDir, | 1119 switches::kExtraPluginDir, |
1120 app_dir.Append(FILE_PATH_LITERAL("plugins"))); | 1120 app_dir.Append(FILE_PATH_LITERAL("plugins"))); |
1121 #endif | 1121 #endif |
1122 command_line->AppendSwitch(switches::kAlwaysAuthorizePlugins); | 1122 command_line->AppendSwitch(switches::kAlwaysAuthorizePlugins); |
1123 command_line->AppendSwitch(switches::kEnableNpapi); | 1123 command_line->AppendSwitch(switches::kEnableNpapi); |
1124 } | 1124 } |
1125 | 1125 |
1126 void SetPreference(NetworkPredictionOptions value) { | |
1127 browser()->profile()->GetPrefs()->SetInteger( | |
1128 prefs::kNetworkPredictionOptions, value); | |
1129 } | |
1130 | |
1131 // Verifies whether ShouldDisableLocalPredictorDueToPreferencesAndNetwork | |
1132 // produces the desired output. | |
1133 void TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | |
1134 bool preference_wifi_network_wifi, | |
1135 bool preference_wifi_network_4g, | |
1136 bool preference_always_network_wifi, | |
1137 bool preference_always_network_4g, | |
1138 bool preference_never_network_wifi, | |
1139 bool preference_never_network_4g) { | |
1140 Profile* profile = browser()->profile(); | |
1141 | |
1142 // Set real NetworkChangeNotifier singleton aside. | |
1143 scoped_ptr<NetworkChangeNotifier::DisableForTest> disable_for_test( | |
1144 new NetworkChangeNotifier::DisableForTest); | |
1145 | |
1146 // Set preference to WIFI_ONLY: prefetch when not on cellular. | |
1147 SetPreference(NetworkPredictionOptions::NETWORK_PREDICTION_WIFI_ONLY); | |
1148 { | |
1149 scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifierWIFI); | |
1150 EXPECT_EQ( | |
1151 ShouldDisableLocalPredictorDueToPreferencesAndNetwork(profile), | |
1152 preference_wifi_network_wifi); | |
1153 } | |
1154 { | |
1155 scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifier4G); | |
1156 EXPECT_EQ( | |
1157 ShouldDisableLocalPredictorDueToPreferencesAndNetwork(profile), | |
1158 preference_wifi_network_4g); | |
1159 } | |
1160 | |
1161 // Set preference to ALWAYS: always prefetch. | |
1162 SetPreference(NetworkPredictionOptions::NETWORK_PREDICTION_ALWAYS); | |
1163 { | |
1164 scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifierWIFI); | |
1165 EXPECT_EQ( | |
1166 ShouldDisableLocalPredictorDueToPreferencesAndNetwork(profile), | |
1167 preference_always_network_wifi); | |
1168 } | |
1169 { | |
1170 scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifier4G); | |
1171 EXPECT_EQ( | |
1172 ShouldDisableLocalPredictorDueToPreferencesAndNetwork(profile), | |
1173 preference_always_network_4g); | |
1174 } | |
1175 | |
1176 // Set preference to NEVER: never prefetch. | |
1177 SetPreference(NetworkPredictionOptions::NETWORK_PREDICTION_NEVER); | |
1178 { | |
1179 scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifierWIFI); | |
1180 EXPECT_EQ( | |
1181 ShouldDisableLocalPredictorDueToPreferencesAndNetwork(profile), | |
1182 preference_never_network_wifi); | |
1183 } | |
1184 { | |
1185 scoped_ptr<NetworkChangeNotifier> mock(new MockNetworkChangeNotifier4G); | |
1186 EXPECT_EQ( | |
1187 ShouldDisableLocalPredictorDueToPreferencesAndNetwork(profile), | |
1188 preference_never_network_4g); | |
1189 } | |
1190 } | |
1191 | |
1192 void SetUpOnMainThread() override { | 1126 void SetUpOnMainThread() override { |
1193 current_browser()->profile()->GetPrefs()->SetBoolean( | 1127 current_browser()->profile()->GetPrefs()->SetBoolean( |
1194 prefs::kPromptForDownload, false); | 1128 prefs::kPromptForDownload, false); |
1195 IncreasePrerenderMemory(); | 1129 IncreasePrerenderMemory(); |
1196 if (autostart_test_server_) | 1130 if (autostart_test_server_) |
1197 ASSERT_TRUE(test_server()->Start()); | 1131 ASSERT_TRUE(test_server()->Start()); |
1198 ChromeResourceDispatcherHostDelegate:: | 1132 ChromeResourceDispatcherHostDelegate:: |
1199 SetExternalProtocolHandlerDelegateForTesting( | 1133 SetExternalProtocolHandlerDelegateForTesting( |
1200 &external_protocol_handler_delegate_); | 1134 &external_protocol_handler_delegate_); |
1201 | 1135 |
(...skipping 2936 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4138 prerender->contents()->set_skip_final_checks(true); | 4072 prerender->contents()->set_skip_final_checks(true); |
4139 | 4073 |
4140 // Navigate to the URL entered. | 4074 // Navigate to the URL entered. |
4141 omnibox_view->model()->AcceptInput(CURRENT_TAB, false); | 4075 omnibox_view->model()->AcceptInput(CURRENT_TAB, false); |
4142 | 4076 |
4143 // Prerender should be running, but abandoned. | 4077 // Prerender should be running, but abandoned. |
4144 EXPECT_TRUE( | 4078 EXPECT_TRUE( |
4145 GetAutocompleteActionPredictor()->IsPrerenderAbandonedForTesting()); | 4079 GetAutocompleteActionPredictor()->IsPrerenderAbandonedForTesting()); |
4146 } | 4080 } |
4147 | 4081 |
4148 // Prefetch should be allowed depending on preference and network type. | |
4149 // This test is for the bsae case: no Finch overrides should never disable. | |
4150 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, | |
4151 LocalPredictorDisableWorksBaseCase) { | |
4152 TestShouldDisableLocalPredictorPreferenceNetworkMatrix( | |
4153 false /*preference_wifi_network_wifi*/, | |
4154 false /*preference_wifi_network_4g*/, | |
4155 false /*preference_always_network_wifi*/, | |
4156 false /*preference_always_network_4g*/, | |
4157 false /*preference_never_network_wifi*/, | |
4158 false /*preference_never_network_4g*/); | |
4159 } | |
4160 | |
4161 } // namespace prerender | 4082 } // namespace prerender |
OLD | NEW |