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

Unified Diff: Source/core/loader/FrameFetchContext.cpp

Issue 1304063016: Refactor the API for setting dynamic resource load priorities (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/loader/FrameFetchContext.h ('k') | Source/core/loader/FrameFetchContextTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/loader/FrameFetchContext.cpp
diff --git a/Source/core/loader/FrameFetchContext.cpp b/Source/core/loader/FrameFetchContext.cpp
index c0a58ca4e5ff3a04e0dd047102574875fb217674..8f0b247cde87cfbb765fecb8336a0342f99aaae8 100644
--- a/Source/core/loader/FrameFetchContext.cpp
+++ b/Source/core/loader/FrameFetchContext.cpp
@@ -674,12 +674,7 @@ void FrameFetchContext::countClientHintsViewportWidth()
UseCounter::count(frame(), UseCounter::ClientHintsViewportWidth);
}
-bool FrameFetchContext::fetchIncreasePriorities() const
-{
- return frame()->settings() && frame()->settings()->fetchIncreasePriorities();
-}
-
-ResourceLoadPriority FrameFetchContext::modifyPriorityForExperiments(ResourceLoadPriority priority, Resource::Type type, const FetchRequest& request)
+ResourceLoadPriority FrameFetchContext::modifyPriorityForExperiments(ResourceLoadPriority priority, Resource::Type type, const FetchRequest& request, ResourcePriority::VisibilityStatus visibility)
{
// An image fetch is used to distinguish between "early" and "late" scripts in a document
if (type == Resource::Image)
@@ -708,11 +703,18 @@ ResourceLoadPriority FrameFetchContext::modifyPriorityForExperiments(ResourceLoa
// of "layout-blocking" resources and provide a boost to resources that are needed
// as soon as possible for something currently on the screen.
int modifiedPriority = static_cast<int>(priority);
- if (fetchIncreasePriorities()) {
+ if (frame()->settings()->fetchIncreasePriorities()) {
if (type == Resource::CSSStyleSheet || type == Resource::Script || type == Resource::Font || type == Resource::Image)
modifiedPriority++;
}
+ // Always give visible resources a bump, and an additional bump if generally increasing priorities.
+ if (visibility == ResourcePriority::Visible) {
+ modifiedPriority++;
+ if (frame()->settings()->fetchIncreasePriorities())
+ modifiedPriority++;
+ }
+
if (frame()->settings()->fetchIncreaseFontPriority() && type == Resource::Font)
modifiedPriority++;
@@ -721,7 +723,7 @@ ResourceLoadPriority FrameFetchContext::modifyPriorityForExperiments(ResourceLoa
if (frame()->settings()->fetchDeferLateScripts() && request.forPreload() && m_imageFetched)
modifiedPriority--;
// Parser-blocking scripts.
- if (fetchIncreasePriorities() && !request.forPreload())
+ if (frame()->settings()->fetchIncreasePriorities() && !request.forPreload())
modifiedPriority++;
}
« no previous file with comments | « Source/core/loader/FrameFetchContext.h ('k') | Source/core/loader/FrameFetchContextTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698