OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2015, Google Inc. All rights reserved. | 2 * Copyright (c) 2015, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
424 preloadRequest.setForPreload(true); | 424 preloadRequest.setForPreload(true); |
425 | 425 |
426 FetchRequest deferredRequest(ResourceRequest("http://www.example.com"), Fetc
hInitiatorInfo()); | 426 FetchRequest deferredRequest(ResourceRequest("http://www.example.com"), Fetc
hInitiatorInfo()); |
427 deferredRequest.setDefer(FetchRequest::LazyLoad); | 427 deferredRequest.setDefer(FetchRequest::LazyLoad); |
428 | 428 |
429 // Start with all experiments disabled. | 429 // Start with all experiments disabled. |
430 settings->setFEtchIncreaseAsyncScriptPriority(false); | 430 settings->setFEtchIncreaseAsyncScriptPriority(false); |
431 settings->setFEtchIncreaseFontPriority(false); | 431 settings->setFEtchIncreaseFontPriority(false); |
432 settings->setFEtchDeferLateScripts(false); | 432 settings->setFEtchDeferLateScripts(false); |
433 settings->setFEtchIncreasePriorities(false); | 433 settings->setFEtchIncreasePriorities(false); |
434 settings->setLowPriorityIframes(false); | |
435 | 434 |
436 // Base case, no priority change. Note that this triggers m_imageFetched, wh
ich will matter for setFetchDeferLateScripts() case below. | 435 // Base case, no priority change. Note that this triggers m_imageFetched, wh
ich will matter for setFetchDeferLateScripts() case below. |
437 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment
s(ResourceLoadPriorityLow, Resource::Image, request)); | 436 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment
s(ResourceLoadPriorityLow, Resource::Image, request)); |
438 | 437 |
439 // Font priority with and without fetchIncreaseFontPriority() | 438 // Font priority with and without fetchIncreaseFontPriority() |
440 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim
ents(ResourceLoadPriorityMedium, Resource::Font, request)); | 439 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim
ents(ResourceLoadPriorityMedium, Resource::Font, request)); |
441 settings->setFEtchIncreaseFontPriority(true); | 440 settings->setFEtchIncreaseFontPriority(true); |
442 EXPECT_EQ(ResourceLoadPriorityHigh, fetchContext->modifyPriorityForExperimen
ts(ResourceLoadPriorityMedium, Resource::Font, request)); | 441 EXPECT_EQ(ResourceLoadPriorityHigh, fetchContext->modifyPriorityForExperimen
ts(ResourceLoadPriorityMedium, Resource::Font, request)); |
443 | 442 |
444 // Basic script cases | 443 // Basic script cases |
(...skipping 27 matching lines...) Expand all Loading... |
472 // Re-test deferring late scripts. | 471 // Re-test deferring late scripts. |
473 settings->setFEtchDeferLateScripts(true); | 472 settings->setFEtchDeferLateScripts(true); |
474 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim
ents(ResourceLoadPriorityMedium, Resource::Script, preloadRequest)); | 473 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim
ents(ResourceLoadPriorityMedium, Resource::Script, preloadRequest)); |
475 | 474 |
476 // Re-test increasing priority of async scripts. Should ignore general incra
esed priorities. | 475 // Re-test increasing priority of async scripts. Should ignore general incra
esed priorities. |
477 settings->setFEtchIncreaseAsyncScriptPriority(false); | 476 settings->setFEtchIncreaseAsyncScriptPriority(false); |
478 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment
s(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); | 477 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment
s(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); |
479 settings->setFEtchIncreaseAsyncScriptPriority(true); | 478 settings->setFEtchIncreaseAsyncScriptPriority(true); |
480 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim
ents(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); | 479 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim
ents(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); |
481 | 480 |
482 // Set up a child frame, test main resource load with and without setLowPrio
rityIframes() | |
483 FrameFetchContext* childFetchContext = createChildFrame(); | |
484 EXPECT_EQ(ResourceLoadPriorityVeryHigh, childFetchContext->modifyPriorityFor
Experiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); | |
485 settings->setLowPriorityIframes(true); | |
486 EXPECT_EQ(ResourceLoadPriorityVeryLow, childFetchContext->modifyPriorityForE
xperiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); | |
487 | |
488 // Ensure we don't go out of bounds | 481 // Ensure we don't go out of bounds |
489 settings->setFEtchIncreasePriorities(true); | 482 settings->setFEtchIncreasePriorities(true); |
490 EXPECT_EQ(ResourceLoadPriorityVeryHigh, fetchContext->modifyPriorityForExper
iments(ResourceLoadPriorityVeryHigh, Resource::Script, request)); | 483 EXPECT_EQ(ResourceLoadPriorityVeryHigh, fetchContext->modifyPriorityForExper
iments(ResourceLoadPriorityVeryHigh, Resource::Script, request)); |
491 settings->setFEtchIncreasePriorities(false); | 484 settings->setFEtchIncreasePriorities(false); |
492 settings->setFEtchDeferLateScripts(true); | 485 settings->setFEtchDeferLateScripts(true); |
493 EXPECT_EQ(ResourceLoadPriorityVeryLow, fetchContext->modifyPriorityForExperi
ments(ResourceLoadPriorityVeryLow, Resource::Script, preloadRequest)); | 486 EXPECT_EQ(ResourceLoadPriorityVeryLow, fetchContext->modifyPriorityForExperi
ments(ResourceLoadPriorityVeryLow, Resource::Script, preloadRequest)); |
494 } | 487 } |
495 | 488 |
| 489 TEST_F(FrameFetchContextTest, ModifyPriorityForLowPriorityIframes) |
| 490 { |
| 491 Settings* settings = document->frame()->settings(); |
| 492 settings->setLowPriorityIframes(false); |
| 493 FetchRequest request(ResourceRequest("http://www.example.com"), FetchInitiat
orInfo()); |
| 494 FrameFetchContext* childFetchContext = createChildFrame(); |
| 495 |
| 496 // No low priority iframes, expect default values. |
| 497 EXPECT_EQ(ResourceLoadPriorityVeryHigh, childFetchContext->modifyPriorityFor
Experiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); |
| 498 EXPECT_EQ(ResourceLoadPriorityMedium, childFetchContext->modifyPriorityForEx
periments(ResourceLoadPriorityMedium, Resource::Script, request)); |
| 499 |
| 500 // Low priority iframes enabled, everything should be low priority |
| 501 settings->setLowPriorityIframes(true); |
| 502 EXPECT_EQ(ResourceLoadPriorityVeryLow, childFetchContext->modifyPriorityForE
xperiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); |
| 503 EXPECT_EQ(ResourceLoadPriorityVeryLow, childFetchContext->modifyPriorityForE
xperiments(ResourceLoadPriorityMedium, Resource::Script, request)); |
| 504 } |
| 505 |
496 } // namespace | 506 } // namespace |
OLD | NEW |