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 kGroupName[]; | |
mmenke
2015/08/11 17:57:23
kFakeGroupName?
Pat Meenan
2015/08/12 16:20:59
Done.
| |
156 static const char kDefaultGroupName[]; | |
157 static const char kEverythingGroupName[]; | |
158 static const char kLateScriptsGroupName[]; | |
159 static const char kFontsGroupName[]; | |
160 static const char kAsyncScriptsGroupName[]; | |
161 static const char kPrioritiesGroupName[]; | |
mmenke
2015/08/11 17:57:23
Everything below kDefaultGroupName just be inlined
Pat Meenan
2015/08/12 16:20:59
Done.
| |
154 | 162 |
155 BlinkSettingsFieldTrialTest() | 163 BlinkSettingsFieldTrialTest() |
156 : trial_list_(NULL), | 164 : trial_list_(NULL), |
157 command_line_(base::CommandLine::NO_PROGRAM) {} | 165 command_line_(base::CommandLine::NO_PROGRAM) {} |
158 | 166 |
159 void SetUp() override { | 167 void SetUp() override { |
160 command_line_.AppendSwitchASCII( | 168 command_line_.AppendSwitchASCII( |
161 switches::kProcessType, switches::kRendererProcess); | 169 switches::kProcessType, switches::kRendererProcess); |
162 } | 170 } |
163 | 171 |
164 void TearDown() override { | 172 void TearDown() override { |
165 variations::testing::ClearAllVariationParams(); | 173 variations::testing::ClearAllVariationParams(); |
166 } | 174 } |
167 | 175 |
168 void CreateFieldTrial(const char* trial_name) { | 176 void CreateFieldTrial(const char* trial_name, const char* group_name) { |
169 base::FieldTrialList::CreateFieldTrial(trial_name, kGroupName); | 177 base::FieldTrialList::CreateFieldTrial(trial_name, group_name); |
170 } | 178 } |
171 | 179 |
172 void CreateFieldTrialWithParams( | 180 void CreateFieldTrialWithParams( |
173 const char* trial_name, | 181 const char* trial_name, |
182 const char* group_name, | |
174 const char* key1, const char* value1, | 183 const char* key1, const char* value1, |
175 const char* key2, const char* value2) { | 184 const char* key2, const char* value2) { |
176 std::map<std::string, std::string> params; | 185 std::map<std::string, std::string> params; |
177 params.insert(std::make_pair(key1, value1)); | 186 params.insert(std::make_pair(key1, value1)); |
178 params.insert(std::make_pair(key2, value2)); | 187 params.insert(std::make_pair(key2, value2)); |
179 CreateFieldTrial(trial_name); | 188 CreateFieldTrial(trial_name, kGroupName); |
180 variations::AssociateVariationParams(trial_name, kGroupName, params); | 189 variations::AssociateVariationParams(trial_name, kGroupName, params); |
181 } | 190 } |
182 | 191 |
183 void AppendContentBrowserClientSwitches() { | 192 void AppendContentBrowserClientSwitches() { |
184 client_.AppendExtraCommandLineSwitches(&command_line_, kFakeChildProcessId); | 193 client_.AppendExtraCommandLineSwitches(&command_line_, kFakeChildProcessId); |
185 } | 194 } |
186 | 195 |
187 const base::CommandLine& command_line() const { | 196 const base::CommandLine& command_line() const { |
188 return command_line_; | 197 return command_line_; |
189 } | 198 } |
190 | 199 |
191 void AppendBlinkSettingsSwitch(const char* value) { | 200 void AppendBlinkSettingsSwitch(const char* value) { |
192 command_line_.AppendSwitchASCII(switches::kBlinkSettings, value); | 201 command_line_.AppendSwitchASCII(switches::kBlinkSettings, value); |
193 } | 202 } |
194 | 203 |
195 private: | 204 private: |
196 static const int kFakeChildProcessId = 1; | 205 static const int kFakeChildProcessId = 1; |
197 static const char kGroupName[]; | |
198 | 206 |
199 ChromeContentBrowserClient client_; | 207 ChromeContentBrowserClient client_; |
200 base::FieldTrialList trial_list_; | 208 base::FieldTrialList trial_list_; |
201 base::CommandLine command_line_; | 209 base::CommandLine command_line_; |
202 | 210 |
203 content::TestBrowserThreadBundle thread_bundle_; | 211 content::TestBrowserThreadBundle thread_bundle_; |
204 }; | 212 }; |
205 | 213 |
206 const char BlinkSettingsFieldTrialTest::kParserFieldTrialName[] = | 214 const char BlinkSettingsFieldTrialTest::kParserFieldTrialName[] = |
207 "BackgroundHtmlParserTokenLimits"; | 215 "BackgroundHtmlParserTokenLimits"; |
208 const char BlinkSettingsFieldTrialTest::kIFrameFieldTrialName[] = | 216 const char BlinkSettingsFieldTrialTest::kIFrameFieldTrialName[] = |
209 "LowPriorityIFrames"; | 217 "LowPriorityIFrames"; |
218 const char BlinkSettingsFieldTrialTest::kResourcePrioritiesFieldTrialName[] = | |
219 "ResourcePriorities"; | |
210 const char BlinkSettingsFieldTrialTest::kGroupName[] = "FakeGroup"; | 220 const char BlinkSettingsFieldTrialTest::kGroupName[] = "FakeGroup"; |
221 const char BlinkSettingsFieldTrialTest::kDefaultGroupName[] = "Default"; | |
222 const char BlinkSettingsFieldTrialTest::kEverythingGroupName[] = | |
223 "Everything_11111_1_1_10"; | |
224 const char BlinkSettingsFieldTrialTest::kLateScriptsGroupName[] = | |
225 "LateScripts_10000_0_1_10"; | |
226 const char BlinkSettingsFieldTrialTest::kFontsGroupName[] = | |
227 "FontOnly_01000_0_1_10"; | |
228 const char BlinkSettingsFieldTrialTest::kAsyncScriptsGroupName[] = | |
229 "FontOnly_00100_0_1_10"; | |
230 const char BlinkSettingsFieldTrialTest::kPrioritiesGroupName[] = | |
231 "FontOnly_00010_0_1_10"; | |
211 | 232 |
212 TEST_F(BlinkSettingsFieldTrialTest, NoFieldTrial) { | 233 TEST_F(BlinkSettingsFieldTrialTest, NoFieldTrial) { |
213 AppendContentBrowserClientSwitches(); | 234 AppendContentBrowserClientSwitches(); |
214 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); | 235 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); |
215 } | 236 } |
216 | 237 |
217 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialWithoutParams) { | 238 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialWithoutParams) { |
218 CreateFieldTrial(kParserFieldTrialName); | 239 CreateFieldTrial(kParserFieldTrialName, kGroupName); |
240 AppendContentBrowserClientSwitches(); | |
241 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); | |
242 } | |
243 | |
244 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialWithDefaultParams) { | |
mmenke
2015/08/11 17:57:23
ResourcePrioritiesDefault?
mmenke
2015/08/11 17:57:23
This should probably go down with the other Resour
Pat Meenan
2015/08/12 16:20:59
Done.
Pat Meenan
2015/08/12 16:20:59
Done.
| |
245 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kDefaultGroupName); | |
219 AppendContentBrowserClientSwitches(); | 246 AppendContentBrowserClientSwitches(); |
220 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); | 247 EXPECT_FALSE(command_line().HasSwitch(switches::kBlinkSettings)); |
221 } | 248 } |
222 | 249 |
223 TEST_F(BlinkSettingsFieldTrialTest, BlinkSettingsSwitchAlreadySpecified) { | 250 TEST_F(BlinkSettingsFieldTrialTest, BlinkSettingsSwitchAlreadySpecified) { |
224 AppendBlinkSettingsSwitch("foo"); | 251 AppendBlinkSettingsSwitch("foo"); |
225 CreateFieldTrialWithParams(kParserFieldTrialName, | 252 CreateFieldTrialWithParams(kParserFieldTrialName, kGroupName, |
226 "key1", "value1", "key2", "value2"); | 253 "key1", "value1", "key2", "value2"); |
227 AppendContentBrowserClientSwitches(); | 254 AppendContentBrowserClientSwitches(); |
228 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 255 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
229 EXPECT_EQ("foo", | 256 EXPECT_EQ("foo", |
230 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 257 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
231 } | 258 } |
232 | 259 |
233 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialEnabled) { | 260 TEST_F(BlinkSettingsFieldTrialTest, FieldTrialEnabled) { |
234 CreateFieldTrialWithParams(kParserFieldTrialName, | 261 CreateFieldTrialWithParams(kParserFieldTrialName, kGroupName, |
235 "key1", "value1", "key2", "value2"); | 262 "key1", "value1", "key2", "value2"); |
236 AppendContentBrowserClientSwitches(); | 263 AppendContentBrowserClientSwitches(); |
237 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 264 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
238 EXPECT_EQ("key1=value1,key2=value2", | 265 EXPECT_EQ("key1=value1,key2=value2", |
239 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 266 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
240 } | 267 } |
241 | 268 |
242 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsEnabled) { | 269 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsEnabled) { |
243 CreateFieldTrialWithParams(kParserFieldTrialName, | 270 CreateFieldTrialWithParams(kParserFieldTrialName, kGroupName, |
244 "key1", "value1", "key2", "value2"); | 271 "key1", "value1", "key2", "value2"); |
245 CreateFieldTrialWithParams(kIFrameFieldTrialName, | 272 CreateFieldTrialWithParams(kIFrameFieldTrialName, kGroupName, |
246 "keyA", "valueA", "keyB", "valueB"); | 273 "keyA", "valueA", "keyB", "valueB"); |
247 AppendContentBrowserClientSwitches(); | 274 AppendContentBrowserClientSwitches(); |
248 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 275 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
249 EXPECT_EQ("key1=value1,key2=value2,keyA=valueA,keyB=valueB", | 276 EXPECT_EQ("key1=value1,key2=value2,keyA=valueA,keyB=valueB", |
250 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 277 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
251 } | 278 } |
252 | 279 |
253 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsDuplicateKeys) { | 280 TEST_F(BlinkSettingsFieldTrialTest, MultipleFieldTrialsDuplicateKeys) { |
254 CreateFieldTrialWithParams(kParserFieldTrialName, | 281 CreateFieldTrialWithParams(kParserFieldTrialName, kGroupName, |
255 "key1", "value1", "key2", "value2"); | 282 "key1", "value1", "key2", "value2"); |
256 CreateFieldTrialWithParams(kIFrameFieldTrialName, | 283 CreateFieldTrialWithParams(kIFrameFieldTrialName, kGroupName, |
257 "key2", "duplicate", "key3", "value3"); | 284 "key2", "duplicate", "key3", "value3"); |
258 AppendContentBrowserClientSwitches(); | 285 AppendContentBrowserClientSwitches(); |
259 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | 286 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); |
260 EXPECT_EQ("key1=value1,key2=value2,key2=duplicate,key3=value3", | 287 EXPECT_EQ("key1=value1,key2=value2,key2=duplicate,key3=value3", |
261 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | 288 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); |
262 } | 289 } |
263 | 290 |
291 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesEverythingEnabled) { | |
292 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kEverythingGroupName); | |
293 AppendContentBrowserClientSwitches(); | |
294 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | |
295 EXPECT_EQ("fetchDeferLateScripts=true," | |
296 "fetchIncreaseFontPriority=true," | |
297 "fetchIncreaseAsyncScriptPriority=true," | |
298 "fetchIncreasePriorities=true", | |
299 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | |
300 } | |
301 | |
302 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesDeferLateScripts) { | |
303 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kLateScriptsGroupName); | |
304 AppendContentBrowserClientSwitches(); | |
305 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | |
306 EXPECT_EQ("fetchDeferLateScripts=true", | |
307 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | |
308 } | |
309 | |
310 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesFontsEnabled) { | |
311 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kFontsGroupName); | |
312 AppendContentBrowserClientSwitches(); | |
313 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | |
314 EXPECT_EQ("fetchIncreaseFontPriority=true", | |
315 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | |
316 } | |
317 | |
318 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesIncreaseAsyncScript) { | |
319 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kAsyncScriptsGroupName); | |
320 AppendContentBrowserClientSwitches(); | |
321 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | |
322 EXPECT_EQ("fetchIncreaseAsyncScriptPriority=true", | |
323 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | |
324 } | |
325 | |
326 TEST_F(BlinkSettingsFieldTrialTest, ResourcePrioritiesIncreasePriorities) { | |
327 CreateFieldTrial(kResourcePrioritiesFieldTrialName, kPrioritiesGroupName); | |
328 AppendContentBrowserClientSwitches(); | |
329 EXPECT_TRUE(command_line().HasSwitch(switches::kBlinkSettings)); | |
330 EXPECT_EQ("fetchIncreasePriorities=true", | |
331 command_line().GetSwitchValueASCII(switches::kBlinkSettings)); | |
332 } | |
333 | |
264 } // namespace chrome | 334 } // namespace chrome |
265 | 335 |
266 #if !defined(OS_IOS) && !defined(OS_ANDROID) | 336 #if !defined(OS_IOS) && !defined(OS_ANDROID) |
267 namespace content { | 337 namespace content { |
268 | 338 |
269 class InstantNTPURLRewriteTest : public BrowserWithTestWindowTest { | 339 class InstantNTPURLRewriteTest : public BrowserWithTestWindowTest { |
270 protected: | 340 protected: |
271 void SetUp() override { | 341 void SetUp() override { |
272 BrowserWithTestWindowTest::SetUp(); | 342 BrowserWithTestWindowTest::SetUp(); |
273 field_trial_list_.reset(new base::FieldTrialList( | 343 field_trial_list_.reset(new base::FieldTrialList( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
306 | 376 |
307 NavigationEntry* entry = browser()->tab_strip_model()-> | 377 NavigationEntry* entry = browser()->tab_strip_model()-> |
308 GetActiveWebContents()->GetController().GetLastCommittedEntry(); | 378 GetActiveWebContents()->GetController().GetLastCommittedEntry(); |
309 ASSERT_TRUE(entry != NULL); | 379 ASSERT_TRUE(entry != NULL); |
310 EXPECT_EQ(url_rewritten, entry->GetURL()); | 380 EXPECT_EQ(url_rewritten, entry->GetURL()); |
311 EXPECT_EQ(url_original, entry->GetVirtualURL()); | 381 EXPECT_EQ(url_original, entry->GetVirtualURL()); |
312 } | 382 } |
313 | 383 |
314 } // namespace content | 384 } // namespace content |
315 #endif // !defined(OS_IOS) && !defined(OS_ANDROID) | 385 #endif // !defined(OS_IOS) && !defined(OS_ANDROID) |
OLD | NEW |