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

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

Issue 1656743002: Removing more implicit LayoutUnit construction (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix additional test Created 4 years, 10 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) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 } else { 657 } else {
658 ASSERT(crossSizeLength.hasPercent()); 658 ASSERT(crossSizeLength.hasPercent());
659 crossSize = hasOrthogonalFlow(child) ? 659 crossSize = hasOrthogonalFlow(child) ?
660 adjustBorderBoxLogicalWidthForBoxSizing(valueForLength(crossSizeLeng th, contentWidth())) : 660 adjustBorderBoxLogicalWidthForBoxSizing(valueForLength(crossSizeLeng th, contentWidth())) :
661 child.computePercentageLogicalHeight(crossSizeLength); 661 child.computePercentageLogicalHeight(crossSizeLength);
662 } 662 }
663 663
664 const LayoutSize& childIntrinsicSize = child.intrinsicSize(); 664 const LayoutSize& childIntrinsicSize = child.intrinsicSize();
665 double ratio = childIntrinsicSize.width().toFloat() / childIntrinsicSize.hei ght().toFloat(); 665 double ratio = childIntrinsicSize.width().toFloat() / childIntrinsicSize.hei ght().toFloat();
666 if (isHorizontalFlow()) 666 if (isHorizontalFlow())
667 return crossSize * ratio; 667 return LayoutUnit(crossSize * ratio);
668 return crossSize / ratio; 668 return LayoutUnit(crossSize / ratio);
669 } 669 }
670 670
671 void LayoutFlexibleBox::setFlowAwareLocationForChild(LayoutBox& child, const Lay outPoint& location) 671 void LayoutFlexibleBox::setFlowAwareLocationForChild(LayoutBox& child, const Lay outPoint& location)
672 { 672 {
673 if (isHorizontalFlow()) 673 if (isHorizontalFlow())
674 child.setLocationAndUpdateOverflowControlsIfNeeded(location); 674 child.setLocationAndUpdateOverflowControlsIfNeeded(location);
675 else 675 else
676 child.setLocationAndUpdateOverflowControlsIfNeeded(location.transposedPo int()); 676 child.setLocationAndUpdateOverflowControlsIfNeeded(location.transposedPo int());
677 } 677 }
678 678
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
1092 bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF lexItemList& children, LayoutUnit availableFreeSpace, LayoutUnit& remainingFreeS pace, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexS hrink, InflexibleFlexItemSize& inflexibleItems, Vector<LayoutUnit, 16>& childSiz es) 1092 bool LayoutFlexibleBox::resolveFlexibleLengths(FlexSign flexSign, const OrderedF lexItemList& children, LayoutUnit availableFreeSpace, LayoutUnit& remainingFreeS pace, double& totalFlexGrow, double& totalFlexShrink, double& totalWeightedFlexS hrink, InflexibleFlexItemSize& inflexibleItems, Vector<LayoutUnit, 16>& childSiz es)
1093 { 1093 {
1094 childSizes.resize(0); 1094 childSizes.resize(0);
1095 LayoutUnit totalViolation; 1095 LayoutUnit totalViolation;
1096 LayoutUnit usedFreeSpace; 1096 LayoutUnit usedFreeSpace;
1097 Vector<Violation> minViolations; 1097 Vector<Violation> minViolations;
1098 Vector<Violation> maxViolations; 1098 Vector<Violation> maxViolations;
1099 1099
1100 double sumFlexFactors = (flexSign == PositiveFlexibility) ? totalFlexGrow : totalFlexShrink; 1100 double sumFlexFactors = (flexSign == PositiveFlexibility) ? totalFlexGrow : totalFlexShrink;
1101 if (sumFlexFactors > 0 && sumFlexFactors < 1) { 1101 if (sumFlexFactors > 0 && sumFlexFactors < 1) {
1102 LayoutUnit fractional = availableFreeSpace * sumFlexFactors; 1102 LayoutUnit fractional(availableFreeSpace * sumFlexFactors);
1103 if (fractional.abs() < remainingFreeSpace.abs()) 1103 if (fractional.abs() < remainingFreeSpace.abs())
1104 remainingFreeSpace = fractional; 1104 remainingFreeSpace = fractional;
1105 } 1105 }
1106 1106
1107 for (size_t i = 0; i < children.size(); ++i) { 1107 for (size_t i = 0; i < children.size(); ++i) {
1108 LayoutBox* child = children[i]; 1108 LayoutBox* child = children[i];
1109 if (child->isOutOfFlowPositioned()) { 1109 if (child->isOutOfFlowPositioned()) {
1110 childSizes.append(0); 1110 childSizes.append(0);
1111 continue; 1111 continue;
1112 } 1112 }
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after
1629 ASSERT(child); 1629 ASSERT(child);
1630 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE xtent; 1630 LayoutUnit lineCrossAxisExtent = lineContexts[lineNumber].crossAxisE xtent;
1631 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset - crossAxisStartEdge; 1631 LayoutUnit originalOffset = lineContexts[lineNumber].crossAxisOffset - crossAxisStartEdge;
1632 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi sExtent; 1632 LayoutUnit newOffset = contentExtent - originalOffset - lineCrossAxi sExtent;
1633 adjustAlignmentForChild(*child, newOffset - originalOffset); 1633 adjustAlignmentForChild(*child, newOffset - originalOffset);
1634 } 1634 }
1635 } 1635 }
1636 } 1636 }
1637 1637
1638 } // namespace blink 1638 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698