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

Unified Diff: third_party/WebKit/Source/core/style/GridTrackSize.h

Issue 2318993002: [css-grid] Fix performance regression in grid layout (Closed)
Patch Set: Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/style/GridTrackSize.h
diff --git a/third_party/WebKit/Source/core/style/GridTrackSize.h b/third_party/WebKit/Source/core/style/GridTrackSize.h
index 5005aed0e7a8d64b1898cb762a054263930537af..646a7bca949206253b919c16c0526794fa0bd0a6 100644
--- a/third_party/WebKit/Source/core/style/GridTrackSize.h
+++ b/third_party/WebKit/Source/core/style/GridTrackSize.h
@@ -54,9 +54,11 @@ public:
GridTrackSize(const GridLength& length, GridTrackSizeType trackSizeType = LengthTrackSizing)
: m_type(trackSizeType)
, m_minTrackBreadth(trackSizeType == FitContentTrackSizing ? Length(Auto) : length)
- , m_maxTrackBreadth(length)
+ , m_maxTrackBreadth(trackSizeType == FitContentTrackSizing ? Length(Auto) : length)
+ , m_fitContentTrackBreadth(trackSizeType == FitContentTrackSizing ? length : GridLength(Length(Fixed)))
Manuel Rego 2016/09/07 10:56:47 Probably using Length(Auto) or Length(Fixed) is en
svillar 2016/09/07 16:27:52 Yes, but there is a recent trend to remove the usa
{
DCHECK(trackSizeType == LengthTrackSizing || trackSizeType == FitContentTrackSizing);
+ DCHECK(trackSizeType != FitContentTrackSizing || length.isLength());
cacheMinMaxTrackBreadthTypes();
}
@@ -64,19 +66,19 @@ public:
: m_type(MinMaxTrackSizing)
, m_minTrackBreadth(minTrackBreadth)
, m_maxTrackBreadth(maxTrackBreadth)
+ , m_fitContentTrackBreadth(GridLength(Length(Fixed)))
{
cacheMinMaxTrackBreadthTypes();
}
- GridLength length() const
+ const GridLength& fitContentTrackBreadth() const
{
- DCHECK(m_type == LengthTrackSizing || m_type == FitContentTrackSizing);
- DCHECK(m_minTrackBreadth == m_maxTrackBreadth || m_type == FitContentTrackSizing);
- return m_maxTrackBreadth;
+ DCHECK(m_type == FitContentTrackSizing);
+ return m_fitContentTrackBreadth;
}
- GridLength minTrackBreadth() const { return m_minTrackBreadth; }
- GridLength maxTrackBreadth() const { return isFitContent() ? GridLength(Length(MaxContent)) : m_maxTrackBreadth; }
+ const GridLength& minTrackBreadth() const { return m_minTrackBreadth; }
+ const GridLength& maxTrackBreadth() const { return m_maxTrackBreadth; }
Manuel Rego 2016/09/07 10:56:47 Probably you can add here a similar DCHECK() to th
svillar 2016/09/07 16:27:52 To check what? All the different types have a min
Manuel Rego 2016/09/07 20:11:47 Yes, right didn't realize about that. I was think
GridTrackSizeType type() const { return m_type; }
@@ -115,12 +117,14 @@ private:
GridTrackSizeType m_type;
GridLength m_minTrackBreadth;
GridLength m_maxTrackBreadth;
- bool m_minTrackBreadthIsAuto;
- bool m_minTrackBreadthIsMaxContent;
- bool m_minTrackBreadthIsMinContent;
- bool m_maxTrackBreadthIsAuto;
- bool m_maxTrackBreadthIsMaxContent;
- bool m_maxTrackBreadthIsMinContent;
+ GridLength m_fitContentTrackBreadth;
+
+ bool m_minTrackBreadthIsAuto : 1;
+ bool m_maxTrackBreadthIsAuto : 1;
+ bool m_minTrackBreadthIsMaxContent : 1;
+ bool m_minTrackBreadthIsMinContent : 1;
+ bool m_maxTrackBreadthIsMaxContent : 1;
+ bool m_maxTrackBreadthIsMinContent : 1;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698