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

Side by Side Diff: Source/core/layout/LayoutBox.cpp

Issue 1081433005: LayoutBox::hasDefiniteLogicalHeight() should not consider abspos boxes as definite (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 8 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 | Annotate | Revision Log
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) 2005 Allan Sandfeld Jensen (kde@carewolf.com) 4 * (C) 2005 Allan Sandfeld Jensen (kde@carewolf.com)
5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com) 5 * (C) 2005, 2006 Samuel Weinig (sam.weinig@gmail.com)
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 7 * Copyright (C) 2013 Adobe Systems Incorporated. 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 4319 matching lines...) Expand 10 before | Expand all | Expand 10 after
4330 return true; 4330 return true;
4331 if (cb->isDocumentElement() && isOutOfFlowPositioned) { 4331 if (cb->isDocumentElement() && isOutOfFlowPositioned) {
4332 // Match the positioned objects behavior, which is that positioned objec ts will fill their viewport 4332 // Match the positioned objects behavior, which is that positioned objec ts will fill their viewport
4333 // always. Note we could only hit this case by recurring into computePe rcentageLogicalHeight on a positioned containing block. 4333 // always. Note we could only hit this case by recurring into computePe rcentageLogicalHeight on a positioned containing block.
4334 return true; 4334 return true;
4335 } 4335 }
4336 4336
4337 return false; 4337 return false;
4338 } 4338 }
4339 4339
4340 bool LayoutBox::hasDefiniteLogicalHeight() const 4340 bool LayoutBox::hasDefiniteLogicalHeight() const
mstensho (USE GERRIT) 2015/04/24 07:22:33 Note (not an issue that should be handled in this
Manuel Rego 2015/04/24 07:35:10 This is in the spec (http://dev.w3.org/csswg/css-s
mstensho (USE GERRIT) 2015/04/24 07:40:03 That's the size of THE CONTAINING BLOCK of an abso
ojan 2015/04/24 18:14:31 Yeah, I think the comment in the code below is con
4341 { 4341 {
4342 const Length& logicalHeight = style()->logicalHeight(); 4342 const Length& logicalHeight = style()->logicalHeight();
4343 if (logicalHeight.isIntrinsicOrAuto())
4344 return false;
4345 if (logicalHeight.isFixed()) 4343 if (logicalHeight.isFixed())
4346 return true; 4344 return true;
4347 // The size of the containing block of an absolutely positioned element is a lways definite with respect to that 4345 // The size of the containing block of an absolutely positioned element is a lways definite with respect to that
4348 // element (http://dev.w3.org/csswg/css-sizing-3/#definite). 4346 // element (http://dev.w3.org/csswg/css-sizing-3/#definite).
4349 if (isOutOfFlowPositioned()) 4347 if (isOutOfFlowPositioned())
4350 return true; 4348 return true;
4351 if (hasOverrideContainingBlockLogicalHeight()) 4349 if (hasOverrideContainingBlockLogicalHeight())
4352 return overrideContainingBlockContentLogicalHeight() != -1; 4350 return overrideContainingBlockContentLogicalHeight() != -1;
4351 if (logicalHeight.isIntrinsicOrAuto())
4352 return false;
4353 4353
4354 return percentageLogicalHeightIsResolvable(this); 4354 return percentageLogicalHeightIsResolvable(this);
4355 } 4355 }
4356 4356
4357 bool LayoutBox::hasUnsplittableScrollingOverflow() const 4357 bool LayoutBox::hasUnsplittableScrollingOverflow() const
4358 { 4358 {
4359 // We will paginate as long as we don't scroll overflow in the pagination di rection. 4359 // We will paginate as long as we don't scroll overflow in the pagination di rection.
4360 bool isHorizontal = isHorizontalWritingMode(); 4360 bool isHorizontal = isHorizontalWritingMode();
4361 if ((isHorizontal && !scrollsOverflowY()) || (!isHorizontal && !scrollsOverf lowX())) 4361 if ((isHorizontal && !scrollsOverflowY()) || (!isHorizontal && !scrollsOverf lowX()))
4362 return false; 4362 return false;
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
4689 computedValues.m_margins.m_end = marginEnd(); 4689 computedValues.m_margins.m_end = marginEnd();
4690 4690
4691 setLogicalTop(oldLogicalTop); 4691 setLogicalTop(oldLogicalTop);
4692 setLogicalWidth(oldLogicalWidth); 4692 setLogicalWidth(oldLogicalWidth);
4693 setLogicalLeft(oldLogicalLeft); 4693 setLogicalLeft(oldLogicalLeft);
4694 setMarginLeft(oldMarginLeft); 4694 setMarginLeft(oldMarginLeft);
4695 setMarginRight(oldMarginRight); 4695 setMarginRight(oldMarginRight);
4696 } 4696 }
4697 4697
4698 } // namespace blink 4698 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698