 Chromium Code Reviews
 Chromium Code Reviews Issue 99663004:
  Avoid layout/full-repaint on view height change if possible  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk
    
  
    Issue 99663004:
  Avoid layout/full-repaint on view height change if possible  (Closed) 
  Base URL: svn://svn.chromium.org/blink/trunk| Index: Source/core/rendering/RenderBox.cpp | 
| diff --git a/Source/core/rendering/RenderBox.cpp b/Source/core/rendering/RenderBox.cpp | 
| index 97e85edde618dccb16c4f0300176fbc138f6dae0..0277233a3633b3b3a6d194dcfb416170a4d9821c 100644 | 
| --- a/Source/core/rendering/RenderBox.cpp | 
| +++ b/Source/core/rendering/RenderBox.cpp | 
| @@ -2868,8 +2868,8 @@ LayoutUnit RenderBox::computePercentageLogicalHeight(const Length& height) const | 
| skippedAutoHeightContainingBlock = true; | 
| containingBlockChild = cb; | 
| cb = cb->containingBlock(); | 
| - cb->addPercentHeightDescendant(const_cast<RenderBox*>(this)); | 
| } | 
| + cb->addPercentHeightDescendant(const_cast<RenderBox*>(this)); | 
| 
ojan
2013/12/18 00:48:20
Why is moving this outside the loop correct? Befor
 
Xianzhu
2013/12/18 20:22:45
I did some research about this (crbug.com/327815)
 | 
| RenderStyle* cbstyle = cb->style(); | 
| @@ -3034,10 +3034,10 @@ LayoutUnit RenderBox::computeReplacedLogicalHeightUsing(Length logicalHeight) co | 
| case Calculated: | 
| { | 
| RenderObject* cb = isOutOfFlowPositioned() ? container() : containingBlock(); | 
| - while (cb->isAnonymous()) { | 
| + while (cb->isAnonymous()) | 
| cb = cb->containingBlock(); | 
| + if (cb->isRenderBlock()) | 
| 
ojan
2013/12/18 00:48:20
Can the containingBlock really not be a renderbloc
 
Xianzhu
2013/12/18 20:22:45
Right. I encountered this when running layout test
 | 
| toRenderBlock(cb)->addPercentHeightDescendant(const_cast<RenderBox*>(this)); | 
| - } | 
| // FIXME: This calculation is not patched for block-flow yet. | 
| // https://bugs.webkit.org/show_bug.cgi?id=46500 |