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

Side by Side Diff: Source/core/loader/FrameFetchContextTest.cpp

Issue 1328763002: Make the low priority iframe flag affect all resources in cross origin iframes (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: All iframes, not just cross origin iframes Created 5 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/loader/FrameFetchContext.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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
OLDNEW
« no previous file with comments | « Source/core/loader/FrameFetchContext.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698