Changeset 275495 in webkit
- Timestamp:
- Apr 6, 2021, 1:39:45 AM (6 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
-
ChangeLog (modified) (1 diff)
-
style/StyleBuilderCustom.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r275494 r275495 1 2021-03-24 Sergio Villar Senin <svillar@igalia.com> 2 3 [css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows} 4 https://bugs.webkit.org/show_bug.cgi?id=222852 5 6 Reviewed by Antti Koivisto. 7 8 We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever 9 applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's 10 but under some circumstances it might be the same. For those cases we wouldn't like to end up with 11 obsolete data from a previous style resolution. 12 13 The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call 14 to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all. 15 16 In order to have a single place with all the style properties affecting columns and rows, all the set 17 calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows} 18 methods. This would allow us to prevent eventual out-of-sync issues like this one. 19 20 * style/StyleBuilderCustom.h: 21 (WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns): 22 (WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns): 23 (WebCore::Style::BuilderCustom::applyInitialGridTemplateRows): 24 (WebCore::Style::BuilderCustom::applyInheritGridTemplateRows): 25 1 26 2021-04-06 Rob Buis <rbuis@igalia.com> 2 27 -
trunk/Source/WebCore/style/StyleBuilderCustom.h
r275420 r275495 1895 1895 } 1896 1896 1897 #define SET_TRACKS_DATA_INTERNAL(tracksData, style, parentStyle, TrackType) \ 1898 ASSERT(tracksData || parentStyle); \ 1899 style.setGrid##TrackType##s(tracksData ? tracksData->m_trackSizes : parentStyle->grid##TrackType##s()); \ 1900 style.setNamedGrid##TrackType##Lines(tracksData ? tracksData->m_namedGridLines : parentStyle->namedGrid##TrackType##Lines()); \ 1901 style.setOrderedNamedGrid##TrackType##Lines(tracksData ? tracksData->m_orderedNamedGridLines : parentStyle->orderedNamedGrid##TrackType##Lines()); \ 1902 style.setGridAutoRepeat##TrackType##s(tracksData ? tracksData->m_autoRepeatTrackSizes : parentStyle->gridAutoRepeat##TrackType##s()); \ 1903 style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData ? tracksData->m_autoRepeatInsertionPoint : parentStyle->gridAutoRepeat##TrackType##sInsertionPoint()); \ 1904 style.setAutoRepeatNamedGrid##TrackType##Lines(tracksData ? tracksData->m_autoRepeatNamedGridLines : parentStyle->autoRepeatNamedGrid##TrackType##Lines()); \ 1905 style.setAutoRepeatOrderedNamedGrid##TrackType##Lines(tracksData ? tracksData->m_autoRepeatOrderedNamedGridLines : parentStyle->autoRepeatOrderedNamedGrid##TrackType##Lines()); \ 1906 style.setGridAutoRepeat##TrackType##sType(tracksData ? tracksData->m_autoRepeatType : parentStyle->gridAutoRepeat##TrackType##sType()); 1907 1908 #define SET_INHERIT_TRACKS_DATA(style, parentStyle, TrackType) \ 1909 BuilderConverter::TracksData* tracksData = nullptr; \ 1910 const RenderStyle* parentStylePointer = &parentStyle; \ 1911 SET_TRACKS_DATA_INTERNAL(tracksData, style, parentStylePointer, TrackType) 1912 1913 #define SET_TRACKS_DATA(tracksData, style, TrackType) \ 1914 BuilderConverter::TracksData* tracksDataPointer = &tracksData; \ 1915 const RenderStyle* parentStyle = nullptr; \ 1916 SET_TRACKS_DATA_INTERNAL(tracksDataPointer, style, parentStyle, TrackType) 1917 1897 1918 inline void BuilderCustom::applyInitialGridTemplateColumns(BuilderState& builderState) 1898 1919 { 1899 builderState.style().setGridColumns(RenderStyle::initialGridColumns()); 1900 builderState.style().setNamedGridColumnLines(RenderStyle::initialNamedGridColumnLines()); 1901 builderState.style().setOrderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines()); 1920 BuilderConverter::TracksData initialTracksData; 1921 SET_TRACKS_DATA(initialTracksData, builderState.style(), Column); 1902 1922 } 1903 1923 1904 1924 inline void BuilderCustom::applyInheritGridTemplateColumns(BuilderState& builderState) 1905 1925 { 1906 builderState.style().setGridColumns(builderState.parentStyle().gridColumns()); 1907 builderState.style().setNamedGridColumnLines(builderState.parentStyle().namedGridColumnLines()); 1908 builderState.style().setOrderedNamedGridColumnLines(builderState.parentStyle().orderedNamedGridColumnLines()); 1909 } 1910 1911 #define SET_TRACKS_DATA(tracksData, style, TrackType) \ 1912 style.setGrid##TrackType##s(tracksData.m_trackSizes); \ 1913 style.setNamedGrid##TrackType##Lines(tracksData.m_namedGridLines); \ 1914 style.setOrderedNamedGrid##TrackType##Lines(tracksData.m_orderedNamedGridLines); \ 1915 style.setGridAutoRepeat##TrackType##s(tracksData.m_autoRepeatTrackSizes); \ 1916 style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData.m_autoRepeatInsertionPoint); \ 1917 style.setAutoRepeatNamedGrid##TrackType##Lines(tracksData.m_autoRepeatNamedGridLines); \ 1918 style.setAutoRepeatOrderedNamedGrid##TrackType##Lines(tracksData.m_autoRepeatOrderedNamedGridLines); \ 1919 style.setGridAutoRepeat##TrackType##sType(tracksData.m_autoRepeatType); \ 1920 style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData.m_autoRepeatInsertionPoint); 1926 SET_INHERIT_TRACKS_DATA(builderState.style(), builderState.parentStyle(), Column); 1927 } 1921 1928 1922 1929 inline void BuilderCustom::applyValueGridTemplateColumns(BuilderState& builderState, CSSValue& value) … … 1934 1941 inline void BuilderCustom::applyInitialGridTemplateRows(BuilderState& builderState) 1935 1942 { 1936 builderState.style().setGridRows(RenderStyle::initialGridRows()); 1937 builderState.style().setNamedGridRowLines(RenderStyle::initialNamedGridRowLines()); 1938 builderState.style().setOrderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines()); 1943 BuilderConverter::TracksData initialTracksData; 1944 SET_TRACKS_DATA(initialTracksData, builderState.style(), Row); 1939 1945 } 1940 1946 1941 1947 inline void BuilderCustom::applyInheritGridTemplateRows(BuilderState& builderState) 1942 1948 { 1943 builderState.style().setGridRows(builderState.parentStyle().gridRows()); 1944 builderState.style().setNamedGridRowLines(builderState.parentStyle().namedGridRowLines()); 1945 builderState.style().setOrderedNamedGridRowLines(builderState.parentStyle().orderedNamedGridRowLines()); 1949 SET_INHERIT_TRACKS_DATA(builderState.style(), builderState.parentStyle(), Row); 1946 1950 } 1947 1951
Note:
See TracChangeset
for help on using the changeset viewer.