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

Unified Diff: Source/core/rendering/RenderImage.cpp

Issue 131233003: Refactor ResourceLoadPriorityOptimizer to avoid walking render tree (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Use esprehn's suggestion. Created 6 years, 11 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
Index: Source/core/rendering/RenderImage.cpp
diff --git a/Source/core/rendering/RenderImage.cpp b/Source/core/rendering/RenderImage.cpp
index 5b6cff8a85de4e8dabbbf48b635f6289a1640a6d..96ee0a3994aa2b3e83cd8c0cc2a117a3e4620d6a 100644
--- a/Source/core/rendering/RenderImage.cpp
+++ b/Source/core/rendering/RenderImage.cpp
@@ -63,6 +63,7 @@ RenderImage::RenderImage(Element* element)
, m_imageDevicePixelRatio(1.0f)
{
updateAltText();
+ resourceLoadPriorityOptimizer()->addRenderObject(this);
}
RenderImage* RenderImage::createAnonymous(Document* document)
@@ -74,6 +75,7 @@ RenderImage* RenderImage::createAnonymous(Document* document)
RenderImage::~RenderImage()
{
+ resourceLoadPriorityOptimizer()->removeRenderObject(this);
esprehn 2014/01/15 01:27:45 This should be in ~RenderObject and you should jus
shatch 2014/01/15 19:28:52 Done.
ASSERT(m_imageResource);
m_imageResource->shutdown();
}
@@ -578,22 +580,10 @@ void RenderImage::layout()
updateInnerContentRect();
}
-void RenderImage::didLayout(ResourceLoadPriorityOptimizer& optimizer)
-{
- RenderReplaced::didLayout(optimizer);
- updateImageLoadingPriority(optimizer);
-}
-
-void RenderImage::didScroll(ResourceLoadPriorityOptimizer& optimizer)
-{
- RenderReplaced::didScroll(optimizer);
- updateImageLoadingPriority(optimizer);
-}
-
-void RenderImage::updateImageLoadingPriority(ResourceLoadPriorityOptimizer& optimizer)
+bool RenderImage::updateImageLoadingPriorities()
{
if (!m_imageResource || !m_imageResource->cachedImage() || m_imageResource->cachedImage()->isLoaded())
- return;
+ return false;
LayoutRect viewBounds = viewRect();
LayoutRect objectBounds = absoluteContentBox();
@@ -609,7 +599,9 @@ void RenderImage::updateImageLoadingPriority(ResourceLoadPriorityOptimizer& opti
ResourceLoadPriorityOptimizer::VisibilityStatus status = isVisible ?
ResourceLoadPriorityOptimizer::Visible : ResourceLoadPriorityOptimizer::NotVisible;
- optimizer.notifyImageResourceVisibility(m_imageResource->cachedImage(), status);
+ resourceLoadPriorityOptimizer()->notifyImageResourceVisibility(m_imageResource->cachedImage(), status);
+
+ return true;
}
void RenderImage::computeIntrinsicRatioInformation(FloatSize& intrinsicSize, double& intrinsicRatio, bool& isPercentageIntrinsicSize) const

Powered by Google App Engine
This is Rietveld 408576698