Changeset 151360 in webkit
- Timestamp:
- Jun 9, 2013 2:22:03 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r151351 r151360 1 2013-06-07 Roger Fong <roger_fong@apple.com> 2 3 Layout info should never be cleared before delayed scroll information updates. 4 https://bugs.webkit.org/show_bug.cgi?id=116689. 5 6 Reviewed by Darin Adler. 7 8 * fast/flexbox/clear-overflow-before-scroll-update-expected.txt: Added. 9 * fast/flexbox/clear-overflow-before-scroll-update.html: Added. 10 1 11 2013-06-08 Igor Oliveira <igor.o@sisa.samsung.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r151359 r151360 1 2013-06-09 Roger Fong <roger_fong@apple.com> 2 3 Layout info should never be cleared before delayed scroll information updates. 4 https://bugs.webkit.org/show_bug.cgi?id=116689. 5 6 Reviewed by Darin Adler. 7 8 Test: fast/flexbox/clear-overflow-before-scroll-update.html 9 10 Make sure that clearLayoutOverflow only gets called after layer()->updateScrollInfoAfterLayout(). 11 Also move clearLayoutOverflow to RenderBlock so we can keep all the delayed scroll update logic in RenderBlock. 12 13 * rendering/RenderBlock.cpp: 14 (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Call clearLayoutOverflow here. 15 (WebCore::RenderBlock::layout): Only call clearLayoutOverflow here if scrolling isn't being delayed. 16 (WebCore::RenderBlock::clearLayoutOverflow): Remove clearLayoutOverflow, move into RenderBlock to keep delayed scrolling logic in the same file. 17 * rendering/RenderBlock.h: 18 * rendering/RenderBox.cpp: 19 * rendering/RenderBox.h: 20 * rendering/RenderDeprecatedFlexibleBox.cpp: Should call updateScrollInfoAfterLayout, not layer()->updateScrollInfoAfterLayout(), so that it takes delayed scrolling logic into account. 21 (WebCore::RenderDeprecatedFlexibleBox::layoutBlock): 22 * rendering/RenderGrid.cpp: Ditto 23 (WebCore::RenderGrid::layoutBlock): 24 1 25 2013-06-09 Benjamin Poulain <bpoulain@apple.com> 2 26 -
trunk/Source/WebCore/rendering/RenderBlock.cpp
r151307 r151360 1392 1392 if (block->hasOverflowClip()) { 1393 1393 block->layer()->updateScrollInfoAfterLayout(); 1394 block->clearLayoutOverflow(); 1394 1395 } 1395 1396 } … … 1430 1431 // It's safe to check for control clip here, since controls can never be table cells. 1431 1432 // If we have a lightweight clip, there can never be any overflow from children. 1432 if (hasControlClip() && m_overflow )1433 if (hasControlClip() && m_overflow && !gDelayUpdateScrollInfo) 1433 1434 clearLayoutOverflow(); 1434 1435 … … 1817 1818 if (isRenderFlowThread()) 1818 1819 toRenderFlowThread(this)->computeOverflowStateForRegions(oldClientAfterEdge); 1820 } 1821 1822 void RenderBlock::clearLayoutOverflow() 1823 { 1824 if (!m_overflow) 1825 return; 1826 1827 if (visualOverflowRect() == borderBoxRect()) { 1828 m_overflow.clear(); 1829 return; 1830 } 1831 1832 m_overflow->setLayoutOverflow(borderBoxRect()); 1819 1833 } 1820 1834 -
trunk/Source/WebCore/rendering/RenderBlock.h
r151295 r151360 555 555 public: 556 556 void computeOverflow(LayoutUnit oldClientAfterEdge, bool recomputeFloats = false); 557 void clearLayoutOverflow(); 557 558 protected: 558 559 virtual void addOverflowFromChildren(); -
trunk/Source/WebCore/rendering/RenderBox.cpp
r151309 r151360 4216 4216 } 4217 4217 4218 void RenderBox::clearLayoutOverflow()4219 {4220 if (!m_overflow)4221 return;4222 4223 if (visualOverflowRect() == borderBoxRect()) {4224 m_overflow.clear();4225 return;4226 }4227 4228 m_overflow->setLayoutOverflow(borderBoxRect());4229 }4230 4231 4218 inline static bool percentageLogicalHeightIsResolvable(const RenderBox* box) 4232 4219 { -
trunk/Source/WebCore/rendering/RenderBox.h
r151247 r151360 192 192 void addOverflowFromChild(RenderBox* child) { addOverflowFromChild(child, child->locationOffset()); } 193 193 void addOverflowFromChild(RenderBox* child, const LayoutSize& delta); 194 void clearLayoutOverflow();195 194 196 195 void updateLayerTransform(); -
trunk/Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp
r151178 r151360 379 379 // Update our scrollbars if we're overflow:auto/scroll/hidden now that we know if 380 380 // we overflow or not. 381 if (hasOverflowClip()) 382 layer()->updateScrollInfoAfterLayout(); 381 updateScrollInfoAfterLayout(); 383 382 384 383 // Repaint with our new bounds if they are different from our old bounds. -
trunk/Source/WebCore/rendering/RenderGrid.cpp
r151178 r151360 181 181 // Update our scroll information if we're overflow:auto/scroll/hidden now that we know if 182 182 // we overflow or not. 183 if (hasOverflowClip()) 184 layer()->updateScrollInfoAfterLayout(); 183 updateScrollInfoAfterLayout(); 185 184 186 185 repainter.repaintAfterLayout();
Note: See TracChangeset
for help on using the changeset viewer.