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 |