OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/chrome_content_browser_client.h" | 5 #include "chrome/browser/chrome_content_browser_client.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/metrics/field_trial.h" | 10 #include "base/metrics/field_trial.h" |
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
144 MaybeCopyDisableWebRtcEncryptionSwitch(version_info::Channel::STABLE); | 144 MaybeCopyDisableWebRtcEncryptionSwitch(version_info::Channel::STABLE); |
145 EXPECT_FALSE(to_command_line_.HasSwitch(switches::kDisableWebRtcEncryption)); | 145 EXPECT_FALSE(to_command_line_.HasSwitch(switches::kDisableWebRtcEncryption)); |
146 } | 146 } |
147 | 147 |
148 #endif // ENABLE_WEBRTC | 148 #endif // ENABLE_WEBRTC |
149 | 149 |
150 class BlinkSettingsFieldTrialTest : public testing::Test { | 150 class BlinkSettingsFieldTrialTest : public testing::Test { |
151 public: | 151 public: |
152 static const char kParserFieldTrialName[]; | 152 static const char kParserFieldTrialName[]; |
153 static const char kIFrameFieldTrialName[]; | 153 static const char kIFrameFieldTrialName[]; |
| 154 static const char kResourcePrioritiesFieldTrialName[]; |
| 155 static const char kFakeGroupName[]; |
| 156 static const char kDefaultGroupName[]; |
154 | 157 |
155 BlinkSettingsFieldTrialTest() | 158 BlinkSettingsFieldTrialTest() |
156 : trial_list_(NULL), | 159 : trial_list_(NULL), |
157 command_line_(base::CommandLine::NO_PROGRAM) {} | 160 command_line_(base::CommandLine::NO_PROGRAM) {} |
158 | 161 |
159 void SetUp() override { | 162 void SetUp() override { |
160 command_line_.AppendSwitchASCII( | 163 command_line_.AppendSwitchASCII( |
161 switches::kProcessType, switches::kRendererProcess); | 164 switches::kProcessType, switches::kRendererProcess); |
162 } | 165 } |
163 | 166 |
164 void TearDown() override { | 167 void TearDown() override { |
165 variations::testing::ClearAllVariationParams(); | 168 variations::testing::ClearAllVariationParams(); |
166 } | 169 } |
167 | 170 |
168 void CreateFieldTrial(const char* trial_name) { | 171 void CreateFieldTrial(const char* trial_name, const char* group_name) { |
169 base::FieldTrialList::CreateFieldTrial(trial_name, kGroupName); | 172 base::FieldTrialList::CreateFieldTrial(trial_name, group_name); |
170 } | 173 } |
171 | 174 |
172 void CreateFieldTrialWithParams( | 175 void CreateFieldTrialWithParams( |
173 const char* trial_name, | 176 const char* trial_name, |
| 177 const char* group_name, |
174 const char* key1, const char* value1, | 178 const char* key1, const char* value1, |
175 const char* key2, const char* value2) { | 179 const char* key2, const char* value2) { |
176 std::map<std::string, std::string> params; | 180 std::map<std::string, std::string> params; |
177 params.insert(std::make_pair(key1, value1)); | 181 params.insert(std::make_pair(key1, value1)); |
178 params.insert(std::make_pair(key2, value2)); | 182 params.insert(std::make_pair(key2, value2)); |
179 CreateFieldTrial(trial_name); | 183 CreateFieldTrial(trial_name, kFakeGroupName); |
180 variations::AssociateVariationParams(trial_name, kGroupName, params); | 184 variations::AssociateVariationParams(trial_name, kFakeGroupName, params); |
181 } | 185 } |
182 | 186 |
183 void AppendContentBrowserClientSwitches() { | 187 void AppendContentBrowserClientSwitches() { |
184 client_.AppendExtraCommandLineSwitches(&command_line_, kFakeChildProcessId); | 188 client_.AppendExtraCommandLineSwitches(&command_line_, kFakeChildProcessId); |
185 } | 189 } |
186 | 190 |
187 const base::CommandLine& command_line() const { | 191 const base::CommandLine& command_line() const { |
188 return command_line_; | 192 return command_line_; |
189 } | 193 } |
190 | 194 |
191 void AppendBlinkSettingsSwitch(const char* value) { | 195 void AppendBlinkSettingsSwitch(const char* value) { |
192 command_line_.AppendSwitchASCII(switches::kBlinkSettings, value); | 196 command_line_.AppendSwitchASCII(switches::kBlinkSettings, value); |
193 } | 197 } |
194 | 198 |
195 private: | 199 private: |
196 static const int kFakeChildProcessId = 1; | 200 static const int kFakeChildProcessId = 1; |
197 static const char kGroupName[]; | |
198 | 201 |
199 ChromeContentBrowserClient client_; | 202 ChromeContentBrowserClient client_; |
200 base::FieldTrialList trial_list_; | 203 base::FieldTrialList trial_list_; |
201 base::CommandLine command_line_; | 204 base::CommandLine command_line_; |
202 | 205 |
203 content::TestBrowserThreadBundle thread_bundle_; | 206 content::TestBrowserThreadBundle thread_bundle_; |
204 }; | 207 }; |
205 | 208 |
206 const char BlinkSettingsFieldTrialTest::kParserFieldTrialName[] = | 209 const char BlinkSettingsFieldTrialTest::kParserFieldTrialName[] = |
207 "BackgroundHtmlParserTokenLimits"; | 210 "BackgroundHtmlParserTokenLimits"; |
208 const char BlinkSettingsFieldTrialTest::kIFrameFieldTrialName[] = | 211 const char BlinkSettingsFieldTrialTest::kIFrameFieldTrialName[] = |
209 "LowPriorityIFrames"; | 212 "LowPriorityIFrames"; |
210 const char BlinkSettingsFieldTrialTest::kGroupName[] = "FakeGroup"; | 213 const char BlinkSettingsFieldTrialTest::kResourcePrioritiesFieldTrialName[] = |
| 214 "ResourcePriorities"; |
| 215 const char BlinkSettingsFieldTrialTest::kFakeGroupName[] = "FakeGroup"; |
| 216 const char BlinkSettingsFieldTrialTest::kDefaultGroupName[] = "Default"; |
211 | 217 |
212 TEST_F(BlinkSettingsFieldTrialTest, NoFieldTrial) { | 218 TEST_F(BlinkSettingsFieldTrialTest, NoFieldTrial) { |
213 AppendContentBrowserClientSwitches(); | 219 AppendContentBrowserClientSwitches(); |
214 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); | 220 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); |
215 } | 221 } |
216 | 222 |
217 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialWithoutParams) { | 223 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialWithoutParams) { |
218 CreateFieldTrial(kParserFieldTrialName); | 224 CreateFieldTrial(kParserFieldTrialName, kFakeGroupName); |
219 AppendContentBrowserClientSwitches(); | 225 AppendContentBrowserClientSwitches(); |
220 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); | 226 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); |
221 } | 227 } |
222 | 228 |
223 TEST_F(BlinkSettingsFieldTrialTest, BlinkSettingsSwitchAlreadySpecified) { | 229 TEST_F(BlinkSettingsFieldTrialTest, BlinkSettingsSwitchAlreadySpecified) { |
224 AppendBlinkSettingsSwitch("foo"); | 230 AppendBlinkSettingsSwitch("foo"); |
225 CreateFieldTrialWithParams(kParserFieldTrialName, | 231 CreateFieldTrialWithParams(kParserFieldTrialName, kFakeGroupName, |
226 "key1", "value1", "key2", "value2"); | 232 "key1", "value1", "key2", "value2"); |
227 AppendContentBrowserClientSwitches(); | 233 AppendContentBrowserClientSwitches(); |
228 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 234 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
229 EXPECT_EQ("foo", | 235 EXPECT_EQ("foo", |
230 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 236 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
231 } | 237 } |
232 | 238 |
233 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialEnabled) { | 239 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialEnabled) { |
234 CreateFieldTrialWithParams(kParserFieldTrialName, | 240 CreateFieldTrialWithParams(kParserFieldTrialName, kFakeGroupName, |
235 "key1", "value1", "key2", "value2"); | 241 "key1", "value1", "key2", "value2"); |
236 AppendContentBrowserClientSwitches(); | 242 AppendContentBrowserClientSwitches(); |
237 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 243 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
238 EXPECT_EQ("key1=value1,key2=value2", | 244 EXPECT_EQ("key1=value1,key2=value2", |
239 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 245 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
240 } | 246 } |
241 | 247 |
242 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsEnabled) { | 248 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsEnabled) { |
243 CreateFieldTrialWithParams(kParserFieldTrialName, | 249 CreateFieldTrialWithParams(kParserFieldTrialName, kFakeGroupName, |
244 "key1", "value1", "key2", "value2"); | 250 "key1", "value1", "key2", "value2"); |
245 CreateFieldTrialWithParams(kIFrameFieldTrialName, | 251 CreateFieldTrialWithParams(kIFrameFieldTrialName, kFakeGroupName, |
246 "keyA", "valueA", "keyB", "valueB"); | 252 "keyA", "valueA", "keyB", "valueB"); |
247 AppendContentBrowserClientSwitches(); | 253 AppendContentBrowserClientSwitches(); |
248 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 254 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
249 EXPECT_EQ("key1=value1,key2=value2,keyA=valueA,keyB=valueB", | 255 EXPECT_EQ("key1=value1,key2=value2,keyA=valueA,keyB=valueB", |
250 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 256 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
251 } | 257 } |
252 | 258 |
253 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsDuplicateKeys) { | 259 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsDuplicateKeys) { |
254 CreateFieldTrialWithParams(kParserFieldTrialName, | 260 CreateFieldTrialWithParams(kParserFieldTrialName, kFakeGroupName, |
255 "key1", "value1", "key2", "value2"); | 261 "key1", "value1", "key2", "value2"); |
256 CreateFieldTrialWithParams(kIFrameFieldTrialName, | 262 CreateFieldTrialWithParams(kIFrameFieldTrialName, kFakeGroupName, |
257 "key2", "duplicate", "key3", "value3"); | 263 "key2", "duplicate", "key3", "value3"); |
258 AppendContentBrowserClientSwitches(); | 264 AppendContentBrowserClientSwitches(); |
259 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 265 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
260 EXPECT_EQ("key1=value1,key2=value2,key2=duplicate,key3=value3", | 266 EXPECT_EQ("key1=value1,key2=value2,key2=duplicate,key3=value3", |
261 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 267 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
262 } | 268 } |
263 | 269 |
| 270 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesDefault) { |
| 271 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kDefaultGroupName); |
| 272 AppendContentBrowserClientSwitches(); |
| 273 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); |
| 274 } |
| 275 |
| 276 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesEverythingEnabled) { |
| 277 CreateFieldTrial(kResourcePrioritiesFieldTrialName, |
| 278 "Everything_11111_1_1_10"); |
| 279 AppendContentBrowserClientSwitches(); |
| 280 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
| 281 EXPECT_EQ("fetchDeferLateScripts=true," |
| 282 "fetchIncreaseFontPriority=true," |
| 283 "fetchIncreaseAsyncScriptPriority=true," |
| 284 "fetchIncreasePriorities=true", |
| 285 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
| 286 } |
| 287 |
| 288 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesDeferLateScripts) { |
| 289 CreateFieldTrial(kResourcePrioritiesFieldTrialName, |
| 290 "LateScripts_10000_0_1_10"); |
| 291 AppendContentBrowserClientSwitches(); |
| 292 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
| 293 EXPECT_EQ("fetchDeferLateScripts=true", |
| 294 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
| 295 } |
| 296 |
| 297 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesFontsEnabled) { |
| 298 CreateFieldTrial(kResourcePrioritiesFieldTrialName, "FontOnly_01000_0_1_10"); |
| 299 AppendContentBrowserClientSwitches(); |
| 300 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
| 301 EXPECT_EQ("fetchIncreaseFontPriority=true", |
| 302 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
| 303 } |
| 304 |
| 305 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesIncreaseAsyncScript) { |
| 306 CreateFieldTrial(kResourcePrioritiesFieldTrialName, |
| 307 "AsyncScript_00100_0_1_10"); |
| 308 AppendContentBrowserClientSwitches(); |
| 309 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
| 310 EXPECT_EQ("fetchIncreaseAsyncScriptPriority=true", |
| 311 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
| 312 } |
| 313 |
| 314 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesIncreasePriorities) { |
| 315 CreateFieldTrial(kResourcePrioritiesFieldTrialName, |
| 316 "IncreasePriorities_00010_0_1_10"); |
| 317 AppendContentBrowserClientSwitches(); |
| 318 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
| 319 EXPECT_EQ("fetchIncreasePriorities=true", |
| 320 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
| 321 } |
| 322 |
264 } // namespace chrome | 323 } // namespace chrome |
265 | 324 |
266 #if !defined(OS_IOS) && !defined(OS_ANDROID) | 325 #if !defined(OS_IOS) && !defined(OS_ANDROID) |
267 namespace content { | 326 namespace content { |
268 | 327 |
269 class InstantNTPURLRewriteTest : public BrowserWithTestWindowTest { | 328 class InstantNTPURLRewriteTest : public BrowserWithTestWindowTest { |
270 protected: | 329 protected: |
271 void SetUp() override { | 330 void SetUp() override { |
272 BrowserWithTestWindowTest::SetUp(); | 331 BrowserWithTestWindowTest::SetUp(); |
273 field_trial_list_.reset(new base::FieldTrialList( | 332 field_trial_list_.reset(new base::FieldTrialList( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 | 365 |
307 NavigationEntry* entry = browser()->tab_strip_model()-> | 366 NavigationEntry* entry = browser()->tab_strip_model()-> |
308 GetActiveWebContents()->GetController().GetLastCommittedEntry(); | 367 GetActiveWebContents()->GetController().GetLastCommittedEntry(); |
309 ASSERT_TRUE(entry != NULL); | 368 ASSERT_TRUE(entry != NULL); |
310 EXPECT_EQ(url_rewritten, entry->GetURL()); | 369 EXPECT_EQ(url_rewritten, entry->GetURL()); |
311 EXPECT_EQ(url_original, entry->GetVirtualURL()); | 370 EXPECT_EQ(url_original, entry->GetVirtualURL()); |
312 } | 371 } |
313 | 372 |
314 } // namespace content | 373 } // namespace content |
315 #endif // !defined(OS_IOS) && !defined(OS_ANDROID) | 374 #endif // !defined(OS_IOS) && !defined(OS_ANDROID) |
OLD | NEW |