⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 282495 in webkit


Ignore:
Timestamp:
Sep 16, 2021, 1:00:00 AM (5 years ago)
Author:
Adrian Perez de Castro
Message:

Merge r275495 - [css-grid] Initialize auto-repeat data in RenderStyle in applyInitialGridTemplate{Columns|Rows}
​https://bugs.webkit.org/show_bug.cgi?id=222852

Reviewed by Antti Koivisto.

We should initialize the auto repeat data (like auto repeat tracks or the insertion point) whenever
applyInitialGridTemplateXXX is called. That method is normally called using different RenderStyle's
but under some circumstances it might be the same. For those cases we wouldn't like to end up with
obsolete data from a previous style resolution.

The same applies also to the applyInheritGridTemplateXXX calls. We're also removing a duplicate call
to setGridAutoRepeat{Row|Column}sInsertionPoint() that is not needed at all.

In order to have a single place with all the style properties affecting columns and rows, all the set
calls were moved to a macro that is used by all the apply{Initial|Inherit}GridTemplate{Columns|Rows}
methods. This would allow us to prevent eventual out-of-sync issues like this one.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateRows):

Location:
releases/WebKitGTK/webkit-2.32/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/ChangeLog

    r282493 r282495  
     12021-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
    1262021-04-02  Ryosuke Niwa  <rniwa@webkit.org>
    227
  • releases/WebKitGTK/webkit-2.32/Source/WebCore/style/StyleBuilderCustom.h

    r272805 r282495  
    18001800}
    18011801
     1802#define SET_TRACKS_DATA_INTERNAL(tracksData, style, parentStyle, TrackType) \
     1803    ASSERT(tracksData || parentStyle); \
     1804    style.setGrid##TrackType##s(tracksData ? tracksData->m_trackSizes : parentStyle->grid##TrackType##s()); \
     1805    style.setNamedGrid##TrackType##Lines(tracksData ? tracksData->m_namedGridLines : parentStyle->namedGrid##TrackType##Lines()); \
     1806    style.setOrderedNamedGrid##TrackType##Lines(tracksData ? tracksData->m_orderedNamedGridLines : parentStyle->orderedNamedGrid##TrackType##Lines()); \
     1807    style.setGridAutoRepeat##TrackType##s(tracksData ? tracksData->m_autoRepeatTrackSizes : parentStyle->gridAutoRepeat##TrackType##s()); \
     1808    style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData ? tracksData->m_autoRepeatInsertionPoint : parentStyle->gridAutoRepeat##TrackType##sInsertionPoint()); \
     1809    style.setAutoRepeatNamedGrid##TrackType##Lines(tracksData ? tracksData->m_autoRepeatNamedGridLines : parentStyle->autoRepeatNamedGrid##TrackType##Lines()); \
     1810    style.setAutoRepeatOrderedNamedGrid##TrackType##Lines(tracksData ? tracksData->m_autoRepeatOrderedNamedGridLines : parentStyle->autoRepeatOrderedNamedGrid##TrackType##Lines()); \
     1811    style.setGridAutoRepeat##TrackType##sType(tracksData ? tracksData->m_autoRepeatType : parentStyle->gridAutoRepeat##TrackType##sType());
     1812
     1813#define SET_INHERIT_TRACKS_DATA(style, parentStyle, TrackType) \
     1814    BuilderConverter::TracksData* tracksData = nullptr; \
     1815    const RenderStyle* parentStylePointer = &parentStyle; \
     1816    SET_TRACKS_DATA_INTERNAL(tracksData, style, parentStylePointer, TrackType)
     1817
     1818#define SET_TRACKS_DATA(tracksData, style, TrackType) \
     1819    BuilderConverter::TracksData* tracksDataPointer = &tracksData; \
     1820    const RenderStyle* parentStyle = nullptr; \
     1821    SET_TRACKS_DATA_INTERNAL(tracksDataPointer, style, parentStyle, TrackType)
     1822
    18021823inline void BuilderCustom::applyInitialGridTemplateColumns(BuilderState& builderState)
    18031824{
    1804     builderState.style().setGridColumns(RenderStyle::initialGridColumns());
    1805     builderState.style().setNamedGridColumnLines(RenderStyle::initialNamedGridColumnLines());
    1806     builderState.style().setOrderedNamedGridColumnLines(RenderStyle::initialOrderedNamedGridColumnLines());
     1825    BuilderConverter::TracksData initialTracksData;
     1826    SET_TRACKS_DATA(initialTracksData, builderState.style(), Column);
    18071827}
    18081828
    18091829inline void BuilderCustom::applyInheritGridTemplateColumns(BuilderState& builderState)
    18101830{
    1811     builderState.style().setGridColumns(builderState.parentStyle().gridColumns());
    1812     builderState.style().setNamedGridColumnLines(builderState.parentStyle().namedGridColumnLines());
    1813     builderState.style().setOrderedNamedGridColumnLines(builderState.parentStyle().orderedNamedGridColumnLines());
    1814 }
    1815 
    1816 #define SET_TRACKS_DATA(tracksData, style, TrackType) \
    1817     style.setGrid##TrackType##s(tracksData.m_trackSizes); \
    1818     style.setNamedGrid##TrackType##Lines(tracksData.m_namedGridLines); \
    1819     style.setOrderedNamedGrid##TrackType##Lines(tracksData.m_orderedNamedGridLines); \
    1820     style.setGridAutoRepeat##TrackType##s(tracksData.m_autoRepeatTrackSizes); \
    1821     style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData.m_autoRepeatInsertionPoint); \
    1822     style.setAutoRepeatNamedGrid##TrackType##Lines(tracksData.m_autoRepeatNamedGridLines); \
    1823     style.setAutoRepeatOrderedNamedGrid##TrackType##Lines(tracksData.m_autoRepeatOrderedNamedGridLines); \
    1824     style.setGridAutoRepeat##TrackType##sType(tracksData.m_autoRepeatType); \
    1825     style.setGridAutoRepeat##TrackType##sInsertionPoint(tracksData.m_autoRepeatInsertionPoint);
     1831    SET_INHERIT_TRACKS_DATA(builderState.style(), builderState.parentStyle(), Column);
     1832}
    18261833
    18271834inline void BuilderCustom::applyValueGridTemplateColumns(BuilderState& builderState, CSSValue& value)
    … …  
    18391846inline void BuilderCustom::applyInitialGridTemplateRows(BuilderState& builderState)
    18401847{
    1841     builderState.style().setGridRows(RenderStyle::initialGridRows());
    1842     builderState.style().setNamedGridRowLines(RenderStyle::initialNamedGridRowLines());
    1843     builderState.style().setOrderedNamedGridRowLines(RenderStyle::initialOrderedNamedGridRowLines());
     1848    BuilderConverter::TracksData initialTracksData;
     1849    SET_TRACKS_DATA(initialTracksData, builderState.style(), Row);
    18441850}
    18451851
    18461852inline void BuilderCustom::applyInheritGridTemplateRows(BuilderState& builderState)
    18471853{
    1848     builderState.style().setGridRows(builderState.parentStyle().gridRows());
    1849     builderState.style().setNamedGridRowLines(builderState.parentStyle().namedGridRowLines());
    1850     builderState.style().setOrderedNamedGridRowLines(builderState.parentStyle().orderedNamedGridRowLines());
     1854    SET_INHERIT_TRACKS_DATA(builderState.style(), builderState.parentStyle(), Row);
    18511855}
    18521856
Note: See TracChangeset for help on using the changeset viewer.