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

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: rebase 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 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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)
OLDNEW
« no previous file with comments | « chrome/browser/chrome_content_browser_client.cc ('k') | content/browser/loader/resource_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698