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