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

Unified Diff: Source/core/fetch/ResourceLoadPriorityOptimizer.cpp

Issue 153983004: Schedule image resource downloads by decreasing visual impact - Blink Side (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Changes from review. Created 6 years, 10 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/fetch/ResourceLoadPriorityOptimizer.h ('k') | Source/core/fetch/ResourceLoader.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/fetch/ResourceLoadPriorityOptimizer.cpp
diff --git a/Source/core/fetch/ResourceLoadPriorityOptimizer.cpp b/Source/core/fetch/ResourceLoadPriorityOptimizer.cpp
index 40a6f56ab672ae8e99651265e4f1d5084798e74e..2aca6286e99563f679c013736cff4583de506dce 100644
--- a/Source/core/fetch/ResourceLoadPriorityOptimizer.cpp
+++ b/Source/core/fetch/ResourceLoadPriorityOptimizer.cpp
@@ -42,9 +42,10 @@ ResourceLoadPriorityOptimizer* ResourceLoadPriorityOptimizer::resourceLoadPriori
return &s_renderLoadOptimizer;
}
-ResourceLoadPriorityOptimizer::ResourceAndVisibility::ResourceAndVisibility(ImageResource* image, VisibilityStatus v)
+ResourceLoadPriorityOptimizer::ResourceAndVisibility::ResourceAndVisibility(ImageResource* image, VisibilityStatus v, uint32_t s)
: imageResource(image)
, status(v)
+ , screenArea(s)
esprehn 2014/02/20 23:05:14 We don't usually abbreviate like this.
{
}
@@ -99,21 +100,27 @@ void ResourceLoadPriorityOptimizer::updateImageResourcesWithLoadPriority()
ResourceLoadPriorityLow : ResourceLoadPriorityVeryLow;
if (priority != it->value->imageResource->resourceRequest().priority()) {
- it->value->imageResource->resourceRequest().setPriority(priority);
- it->value->imageResource->didChangePriority(priority);
+ it->value->imageResource->resourceRequest().setPriority(priority, it->value->screenArea);
+ it->value->imageResource->didChangePriority(priority, it->value->screenArea);
}
}
m_imageResources.clear();
}
-void ResourceLoadPriorityOptimizer::notifyImageResourceVisibility(ImageResource* img, VisibilityStatus status)
+void ResourceLoadPriorityOptimizer::notifyImageResourceVisibility(ImageResource* img, VisibilityStatus status, const LayoutRect& screenRect)
{
if (!img || img->isLoaded())
return;
- ImageResourceMap::AddResult result = m_imageResources.add(img->identifier(), adoptPtr(new ResourceAndVisibility(img, status)));
- if (!result.isNewEntry && status == Visible)
+ int screenArea = 0;
+ if (!screenRect.isEmpty() && status == Visible)
+ screenArea += static_cast<uint32_t>(screenRect.width() * screenRect.height());
+
+ ImageResourceMap::AddResult result = m_imageResources.add(img->identifier(), adoptPtr(new ResourceAndVisibility(img, status, screenArea)));
+ if (!result.isNewEntry && status == Visible) {
result.iterator->value->status = status;
+ result.iterator->value->screenArea = status;
+ }
}
}
« no previous file with comments | « Source/core/fetch/ResourceLoadPriorityOptimizer.h ('k') | Source/core/fetch/ResourceLoader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698