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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlock.cpp

Issue 2816873002: Update PaintLayer size during layout, not after.
Patch Set: Speculatively remove call to UpdateScrollbars() Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
6 * All rights reserved. 6 * All rights reserved.
7 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 7 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after
404 // Now remove the leftover anonymous block from the tree, and destroy it. 404 // Now remove the leftover anonymous block from the tree, and destroy it.
405 // We'll rip it out manually from the tree before destroying it, because we 405 // We'll rip it out manually from the tree before destroying it, because we
406 // don't want to trigger any tree adjustments with regards to anonymous blocks 406 // don't want to trigger any tree adjustments with regards to anonymous blocks
407 // (or any other kind of undesired chain-reaction). 407 // (or any other kind of undesired chain-reaction).
408 Children()->RemoveChildNode(this, child, false); 408 Children()->RemoveChildNode(this, child, false);
409 child->Destroy(); 409 child->Destroy();
410 } 410 }
411 411
412 void LayoutBlock::UpdateAfterLayout() { 412 void LayoutBlock::UpdateAfterLayout() {
413 InvalidateStickyConstraints(); 413 InvalidateStickyConstraints();
414 414 LayoutBox::UpdateAfterLayout();
415 // Update our scroll information if we're overflow:auto/scroll/hidden now that
416 // we know if we overflow or not.
417 if (HasOverflowClip())
418 Layer()->GetScrollableArea()->UpdateAfterLayout();
419 } 415 }
420 416
421 void LayoutBlock::UpdateLayout() { 417 void LayoutBlock::UpdateLayout() {
422 DCHECK(!GetScrollableArea() || GetScrollableArea()->GetScrollAnchor()); 418 DCHECK(!GetScrollableArea() || GetScrollableArea()->GetScrollAnchor());
423 419
424 LayoutAnalyzer::Scope analyzer(*this); 420 LayoutAnalyzer::Scope analyzer(*this);
425 421
426 bool needs_scroll_anchoring = 422 bool needs_scroll_anchoring =
427 HasOverflowClip() && GetScrollableArea()->ShouldPerformScrollAnchoring(); 423 HasOverflowClip() && GetScrollableArea()->ShouldPerformScrollAnchoring();
428 if (needs_scroll_anchoring) 424 if (needs_scroll_anchoring)
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 // than the old code that called rightmostPosition and lowestPosition on 679 // than the old code that called rightmostPosition and lowestPosition on
684 // every relayout so it's not a regression. computeOverflow expects the 680 // every relayout so it's not a regression. computeOverflow expects the
685 // bottom edge before we clamp our height. Since this information isn't 681 // bottom edge before we clamp our height. Since this information isn't
686 // available during simplifiedLayout, we cache the value in m_overflow. 682 // available during simplifiedLayout, we cache the value in m_overflow.
687 LayoutUnit old_client_after_edge = HasOverflowModel() 683 LayoutUnit old_client_after_edge = HasOverflowModel()
688 ? overflow_->LayoutClientAfterEdge() 684 ? overflow_->LayoutClientAfterEdge()
689 : ClientLogicalBottom(); 685 : ClientLogicalBottom();
690 ComputeOverflow(old_client_after_edge, true); 686 ComputeOverflow(old_client_after_edge, true);
691 } 687 }
692 688
693 UpdateLayerTransformAfterLayout();
694
695 UpdateAfterLayout(); 689 UpdateAfterLayout();
696 690
697 ClearNeedsLayout(); 691 ClearNeedsLayout();
698 692
699 if (LayoutAnalyzer* analyzer = GetFrameView()->GetLayoutAnalyzer()) 693 if (LayoutAnalyzer* analyzer = GetFrameView()->GetLayoutAnalyzer())
700 analyzer->Increment(LayoutAnalyzer::kLayoutObjectsThatNeedSimplifiedLayout); 694 analyzer->Increment(LayoutAnalyzer::kLayoutObjectsThatNeedSimplifiedLayout);
701 695
702 return true; 696 return true;
703 } 697 }
704 698
(...skipping 1501 matching lines...) Expand 10 before | Expand all | Expand 10 after
2206 bool LayoutBlock::HasDefiniteLogicalHeight() const { 2200 bool LayoutBlock::HasDefiniteLogicalHeight() const {
2207 return AvailableLogicalHeightForPercentageComputation() != LayoutUnit(-1); 2201 return AvailableLogicalHeightForPercentageComputation() != LayoutUnit(-1);
2208 } 2202 }
2209 2203
2210 bool LayoutBlock::NeedsPreferredWidthsRecalculation() const { 2204 bool LayoutBlock::NeedsPreferredWidthsRecalculation() const {
2211 return (HasRelativeLogicalHeight() && Style()->LogicalWidth().IsAuto()) || 2205 return (HasRelativeLogicalHeight() && Style()->LogicalWidth().IsAuto()) ||
2212 LayoutBox::NeedsPreferredWidthsRecalculation(); 2206 LayoutBox::NeedsPreferredWidthsRecalculation();
2213 } 2207 }
2214 2208
2215 } // namespace blink 2209 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutBlock.h ('k') | third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698