Chromium Code Reviews| 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 54 return adoptPtrWillBeNoop(new StubFrameLoaderClientWithParent(parent)); | 54 return adoptPtrWillBeNoop(new StubFrameLoaderClientWithParent(parent)); |
| 55 } | 55 } |
| 56 | 56 |
| 57 DEFINE_INLINE_VIRTUAL_TRACE() | 57 DEFINE_INLINE_VIRTUAL_TRACE() |
| 58 { | 58 { |
| 59 visitor->trace(m_parent); | 59 visitor->trace(m_parent); |
| 60 EmptyFrameLoaderClient::trace(visitor); | 60 EmptyFrameLoaderClient::trace(visitor); |
| 61 } | 61 } |
| 62 | 62 |
| 63 Frame* parent() const override { return m_parent.get(); } | 63 Frame* parent() const override { return m_parent.get(); } |
| 64 Frame* top() const override { return m_parent.get(); } | |
|
Bryan McQuade
2015/09/04 16:40:28
looks like this isn't used - can it be removed?
Nate Chapin
2015/09/04 21:52:32
Done.
| |
| 64 | 65 |
| 65 private: | 66 private: |
| 66 explicit StubFrameLoaderClientWithParent(Frame* parent) | 67 explicit StubFrameLoaderClientWithParent(Frame* parent) |
| 67 : m_parent(parent) | 68 : m_parent(parent) |
| 68 { | 69 { |
| 69 } | 70 } |
| 70 | 71 |
| 71 RawPtrWillBeMember<Frame> m_parent; | 72 RawPtrWillBeMember<Frame> m_parent; |
| 72 }; | 73 }; |
| 73 | 74 |
| (...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 419 preloadRequest.setForPreload(true); | 420 preloadRequest.setForPreload(true); |
| 420 | 421 |
| 421 FetchRequest deferredRequest(ResourceRequest("http://www.example.com"), Fetc hInitiatorInfo()); | 422 FetchRequest deferredRequest(ResourceRequest("http://www.example.com"), Fetc hInitiatorInfo()); |
| 422 deferredRequest.setDefer(FetchRequest::LazyLoad); | 423 deferredRequest.setDefer(FetchRequest::LazyLoad); |
| 423 | 424 |
| 424 // Start with all experiments disabled. | 425 // Start with all experiments disabled. |
| 425 settings->setFEtchIncreaseAsyncScriptPriority(false); | 426 settings->setFEtchIncreaseAsyncScriptPriority(false); |
| 426 settings->setFEtchIncreaseFontPriority(false); | 427 settings->setFEtchIncreaseFontPriority(false); |
| 427 settings->setFEtchDeferLateScripts(false); | 428 settings->setFEtchDeferLateScripts(false); |
| 428 settings->setFEtchIncreasePriorities(false); | 429 settings->setFEtchIncreasePriorities(false); |
| 429 settings->setLowPriorityIframes(false); | |
| 430 | 430 |
| 431 // Base case, no priority change. Note that this triggers m_imageFetched, wh ich will matter for setFetchDeferLateScripts() case below. | 431 // Base case, no priority change. Note that this triggers m_imageFetched, wh ich will matter for setFetchDeferLateScripts() case below. |
| 432 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment s(ResourceLoadPriorityLow, Resource::Image, request)); | 432 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment s(ResourceLoadPriorityLow, Resource::Image, request)); |
| 433 | 433 |
| 434 // Font priority with and without fetchIncreaseFontPriority() | 434 // Font priority with and without fetchIncreaseFontPriority() |
| 435 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim ents(ResourceLoadPriorityMedium, Resource::Font, request)); | 435 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim ents(ResourceLoadPriorityMedium, Resource::Font, request)); |
| 436 settings->setFEtchIncreaseFontPriority(true); | 436 settings->setFEtchIncreaseFontPriority(true); |
| 437 EXPECT_EQ(ResourceLoadPriorityHigh, fetchContext->modifyPriorityForExperimen ts(ResourceLoadPriorityMedium, Resource::Font, request)); | 437 EXPECT_EQ(ResourceLoadPriorityHigh, fetchContext->modifyPriorityForExperimen ts(ResourceLoadPriorityMedium, Resource::Font, request)); |
| 438 | 438 |
| 439 // Basic script cases | 439 // Basic script cases |
| (...skipping 27 matching lines...) Expand all Loading... | |
| 467 // Re-test deferring late scripts. | 467 // Re-test deferring late scripts. |
| 468 settings->setFEtchDeferLateScripts(true); | 468 settings->setFEtchDeferLateScripts(true); |
| 469 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim ents(ResourceLoadPriorityMedium, Resource::Script, preloadRequest)); | 469 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim ents(ResourceLoadPriorityMedium, Resource::Script, preloadRequest)); |
| 470 | 470 |
| 471 // Re-test increasing priority of async scripts. Should ignore general incra esed priorities. | 471 // Re-test increasing priority of async scripts. Should ignore general incra esed priorities. |
| 472 settings->setFEtchIncreaseAsyncScriptPriority(false); | 472 settings->setFEtchIncreaseAsyncScriptPriority(false); |
| 473 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment s(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); | 473 EXPECT_EQ(ResourceLoadPriorityLow, fetchContext->modifyPriorityForExperiment s(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); |
| 474 settings->setFEtchIncreaseAsyncScriptPriority(true); | 474 settings->setFEtchIncreaseAsyncScriptPriority(true); |
| 475 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim ents(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); | 475 EXPECT_EQ(ResourceLoadPriorityMedium, fetchContext->modifyPriorityForExperim ents(ResourceLoadPriorityMedium, Resource::Script, deferredRequest)); |
| 476 | 476 |
| 477 // Set up a child frame, test main resource load with and without setLowPrio rityIframes() | |
| 478 FrameFetchContext* childFetchContext = createChildFrame(); | |
| 479 EXPECT_EQ(ResourceLoadPriorityVeryHigh, childFetchContext->modifyPriorityFor Experiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); | |
| 480 settings->setLowPriorityIframes(true); | |
| 481 EXPECT_EQ(ResourceLoadPriorityVeryLow, childFetchContext->modifyPriorityForE xperiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); | |
| 482 | |
| 483 // Ensure we don't go out of bounds | 477 // Ensure we don't go out of bounds |
| 484 settings->setFEtchIncreasePriorities(true); | 478 settings->setFEtchIncreasePriorities(true); |
| 485 EXPECT_EQ(ResourceLoadPriorityVeryHigh, fetchContext->modifyPriorityForExper iments(ResourceLoadPriorityVeryHigh, Resource::Script, request)); | 479 EXPECT_EQ(ResourceLoadPriorityVeryHigh, fetchContext->modifyPriorityForExper iments(ResourceLoadPriorityVeryHigh, Resource::Script, request)); |
| 486 settings->setFEtchIncreasePriorities(false); | 480 settings->setFEtchIncreasePriorities(false); |
| 487 settings->setFEtchDeferLateScripts(true); | 481 settings->setFEtchDeferLateScripts(true); |
| 488 EXPECT_EQ(ResourceLoadPriorityVeryLow, fetchContext->modifyPriorityForExperi ments(ResourceLoadPriorityVeryLow, Resource::Script, preloadRequest)); | 482 EXPECT_EQ(ResourceLoadPriorityVeryLow, fetchContext->modifyPriorityForExperi ments(ResourceLoadPriorityVeryLow, Resource::Script, preloadRequest)); |
| 489 } | 483 } |
| 490 | 484 |
| 485 TEST_F(FrameFetchContextTest, ModifyPriorityForLowPriorityIframes) | |
| 486 { | |
| 487 Settings* settings = document->frame()->settings(); | |
| 488 settings->setLowPriorityIframes(false); | |
| 489 FetchRequest request(ResourceRequest("http://www.example.com"), FetchInitiat orInfo()); | |
| 490 FrameFetchContext* childFetchContext = createChildFrame(); | |
| 491 | |
| 492 // No low priority iframes, expect default values. | |
| 493 EXPECT_EQ(ResourceLoadPriorityVeryHigh, childFetchContext->modifyPriorityFor Experiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); | |
| 494 EXPECT_EQ(ResourceLoadPriorityMedium, childFetchContext->modifyPriorityForEx periments(ResourceLoadPriorityMedium, Resource::Script, request)); | |
| 495 | |
| 496 // Low priority iframes enabled, everything should be low priority | |
| 497 settings->setLowPriorityIframes(true); | |
| 498 EXPECT_EQ(ResourceLoadPriorityVeryLow, childFetchContext->modifyPriorityForE xperiments(ResourceLoadPriorityVeryHigh, Resource::MainResource, request)); | |
| 499 EXPECT_EQ(ResourceLoadPriorityVeryLow, childFetchContext->modifyPriorityForE xperiments(ResourceLoadPriorityMedium, Resource::Script, request)); | |
| 500 } | |
| 501 | |
| 491 } // namespace | 502 } // namespace |
| OLD | NEW |