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