mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-03 16:16:43 +00:00
LibWeb: Restrict CSS gap properties to values allowed by the spec
Gap values are now represented by Variant<LengthPercentage, NormalGap>. NormalGap is just an empty struct to represent the `normal` keyword. This fixes a long-standing issue where we were incorrectly storing gaps as CSS::Size, which led to us allowing a bunch of invalid gap values.
This commit is contained in:
parent
2a741f81c7
commit
107b20e84d
Notes:
github-actions[bot]
2024-11-09 18:23:29 +00:00
Author: https://github.com/awesomekling
Commit: 107b20e84d
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2253
17 changed files with 157 additions and 120 deletions
|
@ -6,24 +6,24 @@ Rerun
|
|||
|
||||
Found 18 tests
|
||||
|
||||
5 Pass
|
||||
13 Fail
|
||||
16 Pass
|
||||
2 Fail
|
||||
Details
|
||||
Result Test Name MessageFail Default column-gap is 'normal'
|
||||
Result Test Name MessagePass Default column-gap is 'normal'
|
||||
Pass column-gap accepts pixels
|
||||
Pass column-gap accepts em
|
||||
Pass column-gap accepts vw
|
||||
Pass column-gap accepts percentage
|
||||
Fail column-gap accepts calc()
|
||||
Fail column-gap accepts calc() mixing fixed and percentage values
|
||||
Fail Initial column-gap is 'normal'
|
||||
Fail Initial column-gap is 'normal' 2
|
||||
Fail Initial inherited column-gap is 'normal'
|
||||
Pass Initial column-gap is 'normal'
|
||||
Pass Initial column-gap is 'normal' 2
|
||||
Pass Initial inherited column-gap is 'normal'
|
||||
Pass column-gap is inheritable
|
||||
Fail Negative column-gap is invalid
|
||||
Fail 'max-content' column-gap is invalid
|
||||
Fail 'none' column-gap is invalid
|
||||
Fail column-gap with multiple values is invalid
|
||||
Fail Angle column-gap is invalid
|
||||
Fail Resolution column-gap is invalid
|
||||
Fail Time column-gap is invalid
|
||||
Pass Negative column-gap is invalid
|
||||
Pass 'max-content' column-gap is invalid
|
||||
Pass 'none' column-gap is invalid
|
||||
Pass column-gap with multiple values is invalid
|
||||
Pass Angle column-gap is invalid
|
||||
Pass Resolution column-gap is invalid
|
||||
Pass Time column-gap is invalid
|
|
@ -6,11 +6,11 @@ Rerun
|
|||
|
||||
Found 6 tests
|
||||
|
||||
6 Fail
|
||||
6 Pass
|
||||
Details
|
||||
Result Test Name MessageFail colum-gap:normal computes to normal on multicol elements
|
||||
Fail row-gap:normal computes to normal on multicol elements
|
||||
Fail colum-gap:normal computes to normal on grid
|
||||
Fail row-gap:normal computes to normal on grid
|
||||
Fail colum-gap:normal (main axis) computes to normal on flexbox
|
||||
Fail row-gap:normal (cross axis) computes to normal on flexbox
|
||||
Result Test Name MessagePass colum-gap:normal computes to normal on multicol elements
|
||||
Pass row-gap:normal computes to normal on multicol elements
|
||||
Pass colum-gap:normal computes to normal on grid
|
||||
Pass row-gap:normal computes to normal on grid
|
||||
Pass colum-gap:normal (main axis) computes to normal on flexbox
|
||||
Pass row-gap:normal (cross axis) computes to normal on flexbox
|
|
@ -6,10 +6,10 @@ Rerun
|
|||
|
||||
Found 26 tests
|
||||
|
||||
10 Pass
|
||||
16 Fail
|
||||
21 Pass
|
||||
5 Fail
|
||||
Details
|
||||
Result Test Name MessageFail Default gap is 'normal'
|
||||
Result Test Name MessagePass Default gap is 'normal'
|
||||
Pass gap accepts pixels
|
||||
Pass gap accepts pixels 2
|
||||
Pass gap accepts pixels combined with percentage
|
||||
|
@ -22,16 +22,16 @@ Pass gap accepts percentage 2
|
|||
Fail gap accepts calc()
|
||||
Fail gap accepts calc() mixing fixed and percentage values
|
||||
Fail gap accepts calc() 2
|
||||
Fail Initial gap is 'normal'
|
||||
Fail Initial gap is 'normal' 2
|
||||
Fail Initial inherited gap is 'normal'
|
||||
Pass Initial gap is 'normal'
|
||||
Pass Initial gap is 'normal' 2
|
||||
Pass Initial inherited gap is 'normal'
|
||||
Pass gap is inheritable
|
||||
Fail Negative gap is invalid
|
||||
Fail 'max-content' gap is invalid
|
||||
Fail 'none' gap is invalid
|
||||
Fail Angle gap is invalid
|
||||
Fail Resolution gap is invalid
|
||||
Fail Time gap is invalid
|
||||
Fail gap with three values is invalid
|
||||
Pass Negative gap is invalid
|
||||
Pass 'max-content' gap is invalid
|
||||
Pass 'none' gap is invalid
|
||||
Pass Angle gap is invalid
|
||||
Pass Resolution gap is invalid
|
||||
Pass Time gap is invalid
|
||||
Pass gap with three values is invalid
|
||||
Fail gap with slash is invalid
|
||||
Fail gap with one wrong value is invalid
|
|
@ -6,22 +6,22 @@ Rerun
|
|||
|
||||
Found 16 tests
|
||||
|
||||
2 Pass
|
||||
14 Fail
|
||||
6 Pass
|
||||
10 Fail
|
||||
Details
|
||||
Result Test Name MessageFail e.style['gap'] = "normal" should set the property value
|
||||
Fail e.style['gap'] = "10px" should set the property value
|
||||
Fail e.style['gap'] = "normal normal" should set the property value
|
||||
Fail e.style['gap'] = "10px 10px" should set the property value
|
||||
Fail e.style['column-gap'] = "normal" should set the property value
|
||||
Pass e.style['column-gap'] = "normal" should set the property value
|
||||
Pass e.style['column-gap'] = "10px" should set the property value
|
||||
Fail e.style['row-gap'] = "normal" should set the property value
|
||||
Pass e.style['row-gap'] = "normal" should set the property value
|
||||
Pass e.style['row-gap'] = "10px" should set the property value
|
||||
Fail 'row-gap: normal; column-gap: normal;' is serialized to 'gap: normal;'
|
||||
Fail getPropertyValue for 'row-gap: normal; column-gap: normal;' returns 'normal'
|
||||
Fail 'row-gap: 10px; column-gap: 10px;' is serialized to 'gap: 10px;'
|
||||
Fail getPropertyValue for 'row-gap: 10px; column-gap: 10px;' returns '10px'
|
||||
Fail 'row-gap: 10px; column-gap: normal;' is serialized to 'gap: 10px normal;'
|
||||
Fail getPropertyValue for 'row-gap: 10px; column-gap: normal;' returns '10px normal'
|
||||
Pass getPropertyValue for 'row-gap: 10px; column-gap: normal;' returns '10px normal'
|
||||
Fail 'column-gap: normal; row-gap: 10px;' is serialized to 'gap: 10px normal;'
|
||||
Fail getPropertyValue for 'column-gap: normal; row-gap: 10px;' returns '10px normal'
|
||||
Pass getPropertyValue for 'column-gap: normal; row-gap: 10px;' returns '10px normal'
|
|
@ -6,24 +6,24 @@ Rerun
|
|||
|
||||
Found 18 tests
|
||||
|
||||
5 Pass
|
||||
13 Fail
|
||||
16 Pass
|
||||
2 Fail
|
||||
Details
|
||||
Result Test Name MessageFail Default grid-column-gap is 'normal'
|
||||
Result Test Name MessagePass Default grid-column-gap is 'normal'
|
||||
Pass grid-column-gap accepts pixels
|
||||
Pass grid-column-gap accepts em
|
||||
Pass grid-column-gap accepts vw
|
||||
Pass grid-column-gap accepts percentage
|
||||
Fail grid-column-gap accepts calc()
|
||||
Fail grid-column-gap accepts calc() mixing fixed and percentage values
|
||||
Fail Initial grid-column-gap is 'normal'
|
||||
Fail Initial grid-column-gap is 'normal' 2
|
||||
Fail Initial inherited grid-column-gap is 'normal'
|
||||
Pass Initial grid-column-gap is 'normal'
|
||||
Pass Initial grid-column-gap is 'normal' 2
|
||||
Pass Initial inherited grid-column-gap is 'normal'
|
||||
Pass grid-column-gap is inheritable
|
||||
Fail Negative grid-column-gap is invalid
|
||||
Fail 'max-content' grid-column-gap is invalid
|
||||
Fail 'none' grid-column-gap is invalid
|
||||
Fail grid-column-gap with multiple values is invalid
|
||||
Fail Angle grid-column-gap is invalid
|
||||
Fail Resolution grid-column-gap is invalid
|
||||
Fail Time grid-column-gap is invalid
|
||||
Pass Negative grid-column-gap is invalid
|
||||
Pass 'max-content' grid-column-gap is invalid
|
||||
Pass 'none' grid-column-gap is invalid
|
||||
Pass grid-column-gap with multiple values is invalid
|
||||
Pass Angle grid-column-gap is invalid
|
||||
Pass Resolution grid-column-gap is invalid
|
||||
Pass Time grid-column-gap is invalid
|
|
@ -6,10 +6,10 @@ Rerun
|
|||
|
||||
Found 26 tests
|
||||
|
||||
10 Pass
|
||||
16 Fail
|
||||
21 Pass
|
||||
5 Fail
|
||||
Details
|
||||
Result Test Name MessageFail Default grid-gap is 'normal'
|
||||
Result Test Name MessagePass Default grid-gap is 'normal'
|
||||
Pass grid-gap accepts pixels
|
||||
Pass grid-gap accepts pixels 2
|
||||
Pass grid-gap accepts pixels combined with percentage
|
||||
|
@ -22,16 +22,16 @@ Pass grid-gap accepts percentage 2
|
|||
Fail grid-gap accepts calc()
|
||||
Fail grid-gap accepts calc() mixing fixed and percentage values
|
||||
Fail grid-gap accepts calc() 2
|
||||
Fail Initial grid-gap is 'normal'
|
||||
Fail Initial grid-gap is 'normal' 2
|
||||
Fail Initial inherited grid-gap is 'normal'
|
||||
Pass Initial grid-gap is 'normal'
|
||||
Pass Initial grid-gap is 'normal' 2
|
||||
Pass Initial inherited grid-gap is 'normal'
|
||||
Pass grid-gap is inheritable
|
||||
Fail Negative grid-gap is invalid
|
||||
Fail 'max-content' grid-gap is invalid
|
||||
Fail 'none' grid-gap is invalid
|
||||
Fail Angle grid-gap is invalid
|
||||
Fail Resolution grid-gap is invalid
|
||||
Fail Time grid-gap is invalid
|
||||
Fail grid-gap with three values is invalid
|
||||
Pass Negative grid-gap is invalid
|
||||
Pass 'max-content' grid-gap is invalid
|
||||
Pass 'none' grid-gap is invalid
|
||||
Pass Angle grid-gap is invalid
|
||||
Pass Resolution grid-gap is invalid
|
||||
Pass Time grid-gap is invalid
|
||||
Pass grid-gap with three values is invalid
|
||||
Fail grid-gap with slash is invalid
|
||||
Fail grid-gap with one wrong value is invalid
|
|
@ -6,24 +6,24 @@ Rerun
|
|||
|
||||
Found 18 tests
|
||||
|
||||
5 Pass
|
||||
13 Fail
|
||||
16 Pass
|
||||
2 Fail
|
||||
Details
|
||||
Result Test Name MessageFail Default grid-row-gap is 'normal'
|
||||
Result Test Name MessagePass Default grid-row-gap is 'normal'
|
||||
Pass grid-row-gap accepts pixels
|
||||
Pass grid-row-gap accepts em
|
||||
Pass grid-row-gap accepts vw
|
||||
Pass grid-row-gap accepts percentage
|
||||
Fail grid-row-gap accepts calc()
|
||||
Fail grid-row-gap accepts calc() mixing fixed and percentage values
|
||||
Fail Initial grid-row-gap is 'normal'
|
||||
Fail Initial grid-row-gap is 'normal' 2
|
||||
Fail Initial inherited grid-row-gap is 'normal'
|
||||
Pass Initial grid-row-gap is 'normal'
|
||||
Pass Initial grid-row-gap is 'normal' 2
|
||||
Pass Initial inherited grid-row-gap is 'normal'
|
||||
Pass grid-row-gap is inheritable
|
||||
Fail Negative grid-row-gap is invalid
|
||||
Fail 'max-content' grid-row-gap is invalid
|
||||
Fail 'none' grid-row-gap is invalid
|
||||
Fail grid-row-gap with multiple values is invalid
|
||||
Fail Angle grid-row-gap is invalid
|
||||
Fail Resolution grid-row-gap is invalid
|
||||
Fail Time grid-row-gap is invalid
|
||||
Pass Negative grid-row-gap is invalid
|
||||
Pass 'max-content' grid-row-gap is invalid
|
||||
Pass 'none' grid-row-gap is invalid
|
||||
Pass grid-row-gap with multiple values is invalid
|
||||
Pass Angle grid-row-gap is invalid
|
||||
Pass Resolution grid-row-gap is invalid
|
||||
Pass Time grid-row-gap is invalid
|
|
@ -6,24 +6,24 @@ Rerun
|
|||
|
||||
Found 18 tests
|
||||
|
||||
5 Pass
|
||||
13 Fail
|
||||
16 Pass
|
||||
2 Fail
|
||||
Details
|
||||
Result Test Name MessageFail Default row-gap is 'normal'
|
||||
Result Test Name MessagePass Default row-gap is 'normal'
|
||||
Pass row-gap accepts pixels
|
||||
Pass row-gap accepts em
|
||||
Pass row-gap accepts vw
|
||||
Pass row-gap accepts percentage
|
||||
Fail row-gap accepts calc()
|
||||
Fail row-gap accepts calc() mixing fixed and percentage values
|
||||
Fail Initial row-gap is 'normal'
|
||||
Fail Initial row-gap is 'normal' 2
|
||||
Fail Initial inherited row-gap is 'normal'
|
||||
Pass Initial row-gap is 'normal'
|
||||
Pass Initial row-gap is 'normal' 2
|
||||
Pass Initial inherited row-gap is 'normal'
|
||||
Pass row-gap is inheritable
|
||||
Fail Negative row-gap is invalid
|
||||
Fail 'max-content' row-gap is invalid
|
||||
Fail 'none' row-gap is invalid
|
||||
Fail row-gap with multiple values is invalid
|
||||
Fail Angle row-gap is invalid
|
||||
Fail Resolution row-gap is invalid
|
||||
Fail Time row-gap is invalid
|
||||
Pass Negative row-gap is invalid
|
||||
Pass 'max-content' row-gap is invalid
|
||||
Pass 'none' row-gap is invalid
|
||||
Pass row-gap with multiple values is invalid
|
||||
Pass Angle row-gap is invalid
|
||||
Pass Resolution row-gap is invalid
|
||||
Pass Time row-gap is invalid
|
Loading…
Add table
Add a link
Reference in a new issue