| Index: Source/core/frame/FrameView.cpp
|
| diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp
|
| index da1ffa226151929878792d65c96c7e7c2061e4e2..4c5aa17a2179381ab46de82ff1387e082c7a06bc 100644
|
| --- a/Source/core/frame/FrameView.cpp
|
| +++ b/Source/core/frame/FrameView.cpp
|
| @@ -112,6 +112,7 @@ double FrameView::s_deferredRepaintDelayIncrementDuringLoading = 0;
|
|
|
| // The maximum number of updateWidgets iterations that should be done before returning.
|
| static const unsigned maxUpdateWidgetsIterations = 2;
|
| +static const double resourcePriorityUpdateDelayAfterScroll = 0.250;
|
|
|
| static RenderLayer::UpdateLayerPositionsFlags updateLayerPositionFlags(RenderLayer* layer, bool isRelayoutingSubtree, bool didFullRepaint)
|
| {
|
| @@ -193,6 +194,7 @@ FrameView::FrameView(Frame* frame)
|
| , m_inputEventsScaleFactorForEmulation(1)
|
| , m_partialLayout()
|
| , m_layoutSizeFixedToFrameSize(true)
|
| + , m_didScrollTimer(this, &FrameView::didScrollTimerFired)
|
| {
|
| ASSERT(m_frame);
|
| init();
|
| @@ -226,6 +228,9 @@ FrameView::~FrameView()
|
| if (m_postLayoutTasksTimer.isActive())
|
| m_postLayoutTasksTimer.stop();
|
|
|
| + if (m_didScrollTimer.isActive())
|
| + m_didScrollTimer.stop();
|
| +
|
| removeFromAXObjectCache();
|
| resetScrollbars();
|
|
|
| @@ -920,8 +925,7 @@ void FrameView::performLayout(RenderObject* rootForThisLayout, bool inSubtreeLay
|
| rootForThisLayout->layout();
|
| gatherDebugLayoutRects(rootForThisLayout);
|
|
|
| - ResourceLoadPriorityOptimizer modifier;
|
| - rootForThisLayout->didLayout(modifier);
|
| + ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->updateAllImageResourcePriorities();
|
| }
|
|
|
| TextAutosizer* textAutosizer = frame().document()->textAutosizer();
|
| @@ -931,9 +935,6 @@ void FrameView::performLayout(RenderObject* rootForThisLayout, bool inSubtreeLay
|
| LayoutIndicator layoutIndicator;
|
| rootForThisLayout->layout();
|
| gatherDebugLayoutRects(rootForThisLayout);
|
| -
|
| - ResourceLoadPriorityOptimizer modifier;
|
| - rootForThisLayout->didLayout(modifier);
|
| }
|
|
|
| m_inLayout = false;
|
| @@ -1726,9 +1727,15 @@ void FrameView::scrollPositionChanged()
|
| renderView->compositor()->frameViewDidScroll();
|
| }
|
|
|
| + if (m_didScrollTimer.isActive())
|
| + m_didScrollTimer.stop();
|
| + m_didScrollTimer.startOneShot(resourcePriorityUpdateDelayAfterScroll);
|
| +}
|
| +
|
| +void FrameView::didScrollTimerFired(Timer<FrameView>*)
|
| +{
|
| if (m_frame->document() && m_frame->document()->renderer()) {
|
| - ResourceLoadPriorityOptimizer modifier;
|
| - m_frame->document()->renderer()->didScroll(modifier);
|
| + ResourceLoadPriorityOptimizer::resourceLoadPriorityOptimizer()->updateAllImageResourcePriorities();
|
| }
|
| }
|
|
|
|
|