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

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

Issue 2803323002: Avoiding name collisions between flexbox and grid (Closed)
Patch Set: Moved functions around. Created 3 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
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 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 return previousMaxContentFlexFraction; 157 return previousMaxContentFlexFraction;
158 flexGrow = std::max(1.0f, flexGrow); 158 flexGrow = std::max(1.0f, flexGrow);
159 float maxContentFlexFraction = maxPreferredLogicalWidth.toFloat() / flexGrow; 159 float maxContentFlexFraction = maxPreferredLogicalWidth.toFloat() / flexGrow;
160 if (previousMaxContentFlexFraction != -1 && 160 if (previousMaxContentFlexFraction != -1 &&
161 maxContentFlexFraction != previousMaxContentFlexFraction) 161 maxContentFlexFraction != previousMaxContentFlexFraction)
162 UseCounter::count(document(), 162 UseCounter::count(document(),
163 UseCounter::FlexboxIntrinsicSizeAlgorithmIsDifferent); 163 UseCounter::FlexboxIntrinsicSizeAlgorithmIsDifferent);
164 return maxContentFlexFraction; 164 return maxContentFlexFraction;
165 } 165 }
166 166
167 static int synthesizedBaselineFromContentBox(const LayoutBox& box, 167 int LayoutFlexibleBox::synthesizedBaselineFromContentBox(
168 LineDirectionMode direction) { 168 const LayoutBox& box,
169 LineDirectionMode direction) {
169 if (direction == HorizontalLine) { 170 if (direction == HorizontalLine) {
170 return (box.size().height() - box.borderBottom() - box.paddingBottom() - 171 return (box.size().height() - box.borderBottom() - box.paddingBottom() -
171 box.verticalScrollbarWidth()) 172 box.verticalScrollbarWidth())
172 .toInt(); 173 .toInt();
173 } 174 }
174 return (box.size().width() - box.borderLeft() - box.paddingLeft() - 175 return (box.size().width() - box.borderLeft() - box.paddingLeft() -
175 box.horizontalScrollbarHeight()) 176 box.horizontalScrollbarHeight())
176 .toInt(); 177 .toInt();
177 } 178 }
178 179
179 int LayoutFlexibleBox::baselinePosition(FontBaseline, 180 int LayoutFlexibleBox::baselinePosition(FontBaseline,
180 bool, 181 bool,
181 LineDirectionMode direction, 182 LineDirectionMode direction,
182 LinePositionMode mode) const { 183 LinePositionMode mode) const {
183 DCHECK_EQ(mode, PositionOnContainingLine); 184 DCHECK_EQ(mode, PositionOnContainingLine);
184 int baseline = firstLineBoxBaseline(); 185 int baseline = firstLineBoxBaseline();
185 if (baseline == -1) 186 if (baseline == -1)
186 baseline = synthesizedBaselineFromContentBox(*this, direction); 187 baseline = synthesizedBaselineFromContentBox(*this, direction);
187 188
188 return beforeMarginInLineDirection(direction) + baseline; 189 return beforeMarginInLineDirection(direction) + baseline;
189 } 190 }
190 191
191 static const StyleContentAlignmentData& contentAlignmentNormalBehavior() { 192 const StyleContentAlignmentData&
193 LayoutFlexibleBox::contentAlignmentNormalBehavior() {
192 // The justify-content property applies along the main axis, but since 194 // The justify-content property applies along the main axis, but since
193 // flexing in the main axis is controlled by flex, stretch behaves as 195 // flexing in the main axis is controlled by flex, stretch behaves as
194 // flex-start (ignoring the specified fallback alignment, if any). 196 // flex-start (ignoring the specified fallback alignment, if any).
195 // https://drafts.csswg.org/css-align/#distribution-flex 197 // https://drafts.csswg.org/css-align/#distribution-flex
196 static const StyleContentAlignmentData normalBehavior = { 198 static const StyleContentAlignmentData normalBehavior = {
197 ContentPositionNormal, ContentDistributionStretch}; 199 ContentPositionNormal, ContentDistributionStretch};
198 return normalBehavior; 200 return normalBehavior;
199 } 201 }
200 202
201 int LayoutFlexibleBox::firstLineBoxBaseline() const { 203 int LayoutFlexibleBox::firstLineBoxBaseline() const {
(...skipping 1964 matching lines...) Expand 10 before | Expand all | Expand 10 after
2166 LayoutUnit originalOffset = 2168 LayoutUnit originalOffset =
2167 lineContexts[lineNumber].crossAxisOffset - crossAxisStartEdge; 2169 lineContexts[lineNumber].crossAxisOffset - crossAxisStartEdge;
2168 LayoutUnit newOffset = 2170 LayoutUnit newOffset =
2169 contentExtent - originalOffset - lineCrossAxisExtent; 2171 contentExtent - originalOffset - lineCrossAxisExtent;
2170 adjustAlignmentForChild(*flexItem.box, newOffset - originalOffset); 2172 adjustAlignmentForChild(*flexItem.box, newOffset - originalOffset);
2171 } 2173 }
2172 } 2174 }
2173 } 2175 }
2174 2176
2175 } // namespace blink 2177 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/layout/LayoutFlexibleBox.h ('k') | third_party/WebKit/Source/core/layout/LayoutGrid.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698