From e16a340a33bfc826ca3bd360fd60819beb8efaa7 Mon Sep 17 00:00:00 2001 From: FranklinDM Date: Sun, 17 Apr 2022 18:23:41 +0800 Subject: [PATCH] Issue #1838 - Follow-up: Prevent grid shorthand from resetting gutter properties This also fixes crashing when using the grid shorthand property. --- layout/style/Declaration.cpp | 12 ------------ layout/style/nsCSSParser.cpp | 7 ------- 2 files changed, 19 deletions(-) diff --git a/layout/style/Declaration.cpp b/layout/style/Declaration.cpp index 9e7a01aff5..29cae7a3b6 100644 --- a/layout/style/Declaration.cpp +++ b/layout/style/Declaration.cpp @@ -1248,18 +1248,6 @@ Declaration::GetPropertyValueInternal( // #2 <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? // #3 [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'> case eCSSProperty_grid: { - const nsCSSValue& columnGapValue = - *data->ValueFor(eCSSProperty_column_gap); - if (columnGapValue.GetUnit() != eCSSUnit_Pixel || - columnGapValue.GetFloatValue() != 0.0f) { - return; // Not serializable, bail. - } - const nsCSSValue& rowGapValue = - *data->ValueFor(eCSSProperty_row_gap); - if (rowGapValue.GetUnit() != eCSSUnit_Pixel || - rowGapValue.GetFloatValue() != 0.0f) { - return; // Not serializable, bail. - } const nsCSSValue& areasValue = *data->ValueFor(eCSSProperty_grid_template_areas); const nsCSSValue& columnsValue = diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index cada889b42..bfdf6ee6e5 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -9728,13 +9728,6 @@ CSSParserImpl::ParseGrid() return true; } - // https://drafts.csswg.org/css-grid/#grid-shorthand - // "Also, the gutter properties are reset by this shorthand, - // even though they can't be set by it." - value.SetFloatValue(0.0f, eCSSUnit_Pixel); - AppendValue(eCSSProperty_row_gap, value); - AppendValue(eCSSProperty_column_gap, value); - // [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'> auto res = ParseGridShorthandAutoProps(NS_STYLE_GRID_AUTO_FLOW_ROW); if (res == CSSParseResult::Error) {