Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(114)

Side by Side Diff: chrome/browser/chrome_content_browser_client_unittest.cc

Issue 1230133005: Fix Resource Priorities and Scheduling (Chrome Side) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updated comment Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698