Update web-platform-tests to revision cdd3b613e1e108d805ae9441e9827777f1d7072c

This commit is contained in:
WPT Sync Bot 2020-01-31 08:23:37 +00:00
parent 4edd1590f4
commit e6a0d5b0bd
163 changed files with 7225 additions and 191 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
[CSSAnimation-compositeOrder.tentative.html]
[Animations are composited by their order in the animation-name property.]
expected: FAIL

View file

@ -0,0 +1,121 @@
[box-shadow-composition.html]
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px 118px, rgba(0, 0, 0, 0) -1px -2px 0px -4px, rgba(0, 0, 0, 0) -2px -4px 0px -8px, rgba(0, 0, 0, 0) -5px -10px 0px -20px, rgba(0, 0, 0, 0) -10px -20px 0px -40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (1.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(250, 250, 250) 25px 50px 75px 100px, rgb(250, 250, 250) 25px 50px 75px 100px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1) should be [rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px, rgb(150, 150, 150) 15px 30px 45px 60px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(100, 100, 100) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1) should be [rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0.5) should be [rgb(105, 110, 115) 10.5px 21px 31.5px 42px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(100, 100, 100, 0.5) 5px 10px 15px 20px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px, rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(250, 250, 250) 25px 50px 75px 100px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1) should be [rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (-0.3) should be [rgb(0, 0, 0) -4.7px -9.4px 0px -18.8px, rgb(26, 52, 78) 2.6px 5.2px 7.8px 10.4px, rgb(130, 130, 130) 13px 26px 39px 52px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (-0.3) should be [rgb(70, 70, 70 ) 7px 14px 21px 28px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (-0.3) should be [rgb(0, 0, 0) -4.7px -9.4px 0px -18.8px, rgb(26, 52, 78) 2.6px 5.2px 7.8px 10.4px, rgb(52, 104, 156) 5.2px 10.4px 15.6px 20.8px, rgb(130, 130, 130) 13px 26px 39px 52px, rgb(255, 255, 255) 26px 52px 78px 104px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0.5) should be [rgb(150, 150, 150) 15px 30px 45px 60px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (1.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(250, 250, 250) 25px 50px 75px 100px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(200, 200, 200) 20px 40px 60px 80px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(70, 70, 70) 7px 14px 21px 28px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0.5) should be [rgb(105, 110, 115) 10.5px 21px 31.5px 42px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(40, 80, 120, 0.5) 2px 4px 6px 8px, rgba(100, 100, 100, 0.5) 5px 10px 15px 20px, rgba(200, 200, 200, 0.5) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(100, 100, 100) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(150, 150, 150) 15px 30px 45px 60px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (-0.3) should be [rgb(127, 124, 121) 12.7px 25.4px 38.1px 50.8px, rgba(0, 0, 0, 0) -0.6px -1.2px 0px -2.4px, rgba(0, 0, 0, 0) -6px -12px 0px -24px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px, rgb(70, 70, 70) 7px 14px 21px 28px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px inset\] to add [rgb(200, 200, 200) 20px 40px 60px 80px inset\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(200, 200, 200) 20px 40px 60px 80px inset\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0) should be [rgb(100, 100, 100) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1.5) should be [rgb(250, 250, 250) 25px 50px 75px 100px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(250, 250, 250) 25px 50px 75px 100px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1.5) should be [rgb(0, 0, 0) -3.5px -7px 0px -14px, rgb(30, 60, 90) 3px 6px 9px 12px, rgb(255, 255, 255) 30px 60px 90px 120px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0.5) should be [rgb(55, 60, 65) 5.5px 11px 16.5px 22px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(200, 200, 200, 0.5) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to replace [rgb(200, 200, 200) 20px 40px 60px 80px\] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px 118px, rgba(0, 0, 0, 0) -1px -2px 0px -4px, rgba(0, 0, 0, 0) -5px -10px 0px -20px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px\] from replace [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (0) should be [rgb(100, 100, 100) 10px 20px 30px 40px\]]
expected: FAIL
[Compositing: property <box-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px 4px\] from add [rgb(100, 100, 100) 10px 20px 30px 40px\] to add [rgb(200, 200, 200) 20px 40px 60px 80px\] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px\]]
expected: FAIL

View file

@ -0,0 +1,2 @@
[color-initial-canvastext.html]
expected: ERROR

View file

@ -0,0 +1,2 @@
[svg-skewy-001.html]
expected: FAIL

View file

@ -0,0 +1,91 @@
[text-shadow-composition.html]
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (0.5) should be [rgb(105, 110, 115) 10.5px 21px 31.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(100, 100, 100, 0.5) 5px 10px 15px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px, rgba(0, 0, 0, 0) -1px -2px 0px, rgba(0, 0, 0, 0) -5px -10px 0px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px\] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (1.5) should be [rgb(255, 255, 255) 29.5px 59px 88.5px, rgba(0, 0, 0, 0) -1px -2px 0px, rgba(0, 0, 0, 0) -2px -4px 0px, rgba(0, 0, 0, 0) -5px -10px 0px, rgba(0, 0, 0, 0) -10px -20px 0px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(100, 100, 100) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0.5) should be [rgb(150, 150, 150) 15px 30px 45px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1.5) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(250, 250, 250) 25px 50px 75px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px\] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (-0.3) should be [rgb(0, 0, 0) -4.7px -9.4px 0px, rgb(26, 52, 78) 2.6px 5.2px 7.8px, rgb(52, 104, 156) 5.2px 10.4px 15.6px, rgb(130, 130, 130) 13px 26px 39px, rgb(255, 255, 255) 26px 52px 78px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(150, 150, 150) 15px 30px 45px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(70, 70, 70) 7px 14px 21px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(100, 100, 100) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px\] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (0.5) should be [rgb(105, 110, 115) 10.5px 21px 31.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(40, 80, 120, 0.5) 2px 4px 6px, rgba(100, 100, 100, 0.5) 5px 10px 15px, rgba(200, 200, 200, 0.5) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1.5) should be [rgb(0, 0, 0) -3.5px -7px 0px, rgb(30, 60, 90) 3px 6px 9px, rgb(255, 255, 255) 30px 60px 90px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (1) should be [rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1) should be [rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px\] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px, rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0.5) should be [rgb(55, 60, 65) 5.5px 11px 16.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(200, 200, 200, 0.5) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (-0.3) should be [rgb(0, 0, 0) -4.7px -9.4px 0px, rgb(26, 52, 78) 2.6px 5.2px 7.8px, rgb(130, 130, 130) 13px 26px 39px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (-0.3) should be [rgb(70, 70, 70 ) 7px 14px 21px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(100, 100, 100) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1.5) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(250, 250, 250) 25px 50px 75px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (-0.3) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(70, 70, 70) 7px 14px 21px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0) should be [rgb(100, 100, 100) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px\] from add [rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px\] to replace [rgb(200, 200, 200) 20px 40px 60px\] at (1) should be [rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0) should be [rgb(100, 100, 100) 10px 20px 30px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [undefined\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1.5) should be [rgb(250, 250, 250) 25px 50px 75px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (-0.3) should be [rgb(127, 124, 121) 12.7px 25.4px 38.1px, rgba(0, 0, 0, 0) -0.6px -1.2px 0px, rgba(0, 0, 0, 0) -6px -12px 0px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from replace [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (0.5) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(150, 150, 150) 15px 30px 45px\]]
expected: FAIL
[Compositing: property <text-shadow> underlying [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px\] from add [rgb(100, 100, 100) 10px 20px 30px\] to add [rgb(200, 200, 200) 20px 40px 60px\] at (1) should be [rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(200, 200, 200) 20px 40px 60px\]]
expected: FAIL

View file

@ -1,11 +1,11 @@
[ch-recalc-on-font-load.html]
expected: ERROR
[ch in a normal div should be recalculated after loading a web font]
expected: FAIL
expected: TIMEOUT
[ch in display:none should be recalculated after loading a web font]
expected: FAIL
expected: TIMEOUT
[ch in display:contents should be recalculated after loading a web font]
expected: FAIL
expected: TIMEOUT

View file

@ -0,0 +1,139 @@
[round-function.html]
[round(down, 18px, 10px) should round to 10px]
expected: FAIL
[round(13px, -10px) should round to 10px]
expected: FAIL
[round(18px, 10px) should round to 20px]
expected: FAIL
[round(5px, 0px) should round to calc(NaN)]
expected: FAIL
[round(down, -18px, 10px) should round to -20px]
expected: FAIL
[round(-18px, -10px) should round to -20px]
expected: FAIL
[round(up, -13px, 10px) should round to -10px]
expected: FAIL
[round(up, -18px, 10px) should round to -10px]
expected: FAIL
[round(1px/0, 1px/0) should round to calc(NaN)]
expected: FAIL
[round(to-zero, -13px, 10px) should round to -10px]
expected: FAIL
[round(up, 13px, 10px) should round to 20px]
expected: FAIL
[calc(1/round(-5px, 1px/0)) should round to calc(-infinity * 1px)]
expected: FAIL
[round(1px/0, 5px) should round to calc(infinity * 1px)]
expected: FAIL
[round(nearest, 18px, 10px) should round to 20px]
expected: FAIL
[round(nearest, 15px, 10px) should round to 20px]
expected: FAIL
[round(to-zero, -18px, 10px) should round to -10px]
expected: FAIL
[round(up, 18px, 10px) should round to 20px]
expected: FAIL
[round(-13px, 10px) should round to -10px]
expected: FAIL
[round(up, 23px, 10px) should round to 30px]
expected: FAIL
[round(nearest, 13px, 10px) should round to 10px]
expected: FAIL
[round(-1px/0, -5px) should round to calc(-infinity * 1px)]
expected: FAIL
[round(to-zero, 23px, 10px) should round to 20px]
expected: FAIL
[round(18px, -10px) should round to 20px]
expected: FAIL
[round(to-zero, 15px, 10px) should round to 10px]
expected: FAIL
[round(nearest, -13px, 10px) should round to -10px]
expected: FAIL
[round(23px, -10px) should round to 20px]
expected: FAIL
[round(15px, -10px) should round to 20px]
expected: FAIL
[calc(1/round(5px, 1px/0)) should round to calc(infinity * 1px)]
expected: FAIL
[round(-13px, -10px) should round to -10px]
expected: FAIL
[round(15px, 10px) should round to 20px]
expected: FAIL
[round(down, 13px, 10px) should round to 10px]
expected: FAIL
[round(-18px, 10px) should round to -20px]
expected: FAIL
[round(down, -13px, 10px) should round to -20px]
expected: FAIL
[round(down, 15px, 10px) should round to 10px]
expected: FAIL
[calc(1/round(5px, -1px/0)) should round to calc(infinity * 1px)]
expected: FAIL
[round(nearest, -18px, 10px) should round to -20px]
expected: FAIL
[round(-1px/0, 5px) should round to calc(-infinity * 1px)]
expected: FAIL
[calc(1/round(-5px, -1px/0)) should round to calc(-infinity * 1px)]
expected: FAIL
[round(13px, 10px) should round to 10px]
expected: FAIL
[round(down, 23px, 10px) should round to 20px]
expected: FAIL
[round(up, 15px, 10px) should round to 20px]
expected: FAIL
[round(to-zero, 13px, 10px) should round to 10px]
expected: FAIL
[round(23px, 10px) should round to 20px]
expected: FAIL
[round(1px/0, -5px) should round to calc(infinity * 1px)]
expected: FAIL
[round(nearest, 23px, 10px) should round to 20px]
expected: FAIL
[round(to-zero, 18px, 10px) should round to 10px]
expected: FAIL

View file

@ -1,4 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -2,3 +2,6 @@
[listeners are called when <iframe> is resized]
expected: FAIL
[listeners are called correct number of times]
expected: FAIL

View file

@ -1,2 +0,0 @@
[HTMLMediaElement.html]
expected: CRASH

View file

@ -312,21 +312,21 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: combined response Content-Type: text/plain;charset=gbk text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL

View file

@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
expected: FAIL

View file

@ -16,3 +16,6 @@
[Embedded credentials matching the top-level are not treated as network errors for relative URLs.]
expected: TIMEOUT
[Embedded credentials matching the top-level are not treated as network errors for same-origin URLs.]
expected: TIMEOUT

View file

@ -1,6 +1,5 @@
[location-protocol-setter-non-broken.html]
type: testharness
expected: CRASH
[Set data URL frame location.protocol to gopher]
expected: FAIL

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL

View file

@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
expected: FAIL

View file

@ -318,3 +318,6 @@
[[INPUT in RADIO status\] The checked attribute is false and the name attribute is empty]
expected: FAIL
[validationMessage should return empty string when willValidate is false and valueMissing is true]
expected: FAIL

View file

@ -14,3 +14,27 @@
[Executing "1-channel input"]
expected: FAIL
[X new ConvolverNode({channelCountMode: 'explicit'}) incorrectly threw ReferenceError: "ConvolverNode is not defined".]
expected: FAIL
[Executing "3-channel input, explicit"]
expected: FAIL
[Executing "5.1-channel input, explicit"]
expected: FAIL
[Executing "mono-upmix-clamped-max"]
expected: FAIL
[X new ConvolverNode({channelCountMode: 'clamped-max'}) incorrectly threw ReferenceError: "ConvolverNode is not defined".]
expected: FAIL
[Executing "4-channel input, explicit"]
expected: FAIL
[Executing "mono-upmix-explicit"]
expected: FAIL
[# AUDIT TASK RUNNER FINISHED: 2 out of 11 tasks were failed.]
expected: FAIL

View file

@ -14,3 +14,15 @@
[Executing "5.1-channel input"]
expected: FAIL
[Executing "3-channel input explicit mode"]
expected: FAIL
[Executing "2-channel input, explicit mode"]
expected: FAIL
[Executing "5.1-channel input explicit mode"]
expected: FAIL
[Executing "4-channel input explicit mode"]
expected: FAIL

View file

@ -17,3 +17,12 @@
[Executing "5.1-channel input"]
expected: FAIL
[Executing "count 1, 5.1-channel in"]
expected: FAIL
[Executing "count 1, 2-channel in"]
expected: FAIL
[Executing "count 1, 4-channel in"]
expected: FAIL

View file

@ -44,3 +44,6 @@
[X node1 = new ConvolverNode(c, {"buffer":null} incorrectly threw ReferenceError: "ConvolverNode is not defined".]
expected: FAIL
[X new ConvolverNode(c, {"channelCount":1}) incorrectly threw ReferenceError: "ConvolverNode is not defined".]
expected: FAIL

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL

View file

@ -15,7 +15,7 @@
var testBase = get_host_info().HTTPS_ORIGIN + RESOURCES_DIR;
testReferrerHeader(testBase, referrerUrl);
testBase = get_host_info().HTTP_ORIGIN + RESOURCES_DIR;
testReferrerHeader(testBase, "");
testReferrerHeader(testBase, "", true);
</script>
</body>
</html>

View file

@ -398,7 +398,7 @@ function wrapResult(server_data) {
requestViaPicture 3 - Y -
requestViaScript 2 Y Y -
requestViaSendBeacon 3 - Y -
requestViaSharedWorker 2 Y - -
requestViaSharedWorker 2 Y - Y
requestViaVideo 3 - Y -
requestViaWebSocket 3 - Y -
requestViaWorklet 3 - Y Y
@ -924,6 +924,11 @@ const subresourceMap = {
path: "/common/security-features/subresource/shared-worker.py",
invoker: url => requestViaSharedWorker(url, {type: "module"}),
},
"sharedworker-import-data": {
path: "/common/security-features/subresource/shared-worker.py",
invoker: url =>
requestViaSharedWorker(workerUrlThatImports(url), {type: "module"}),
},
"websocket": {
path: "/stash_responder",

View file

@ -187,7 +187,7 @@ promise_test(async testCase => {
assert_array_equals(Object.keys(cookie).sort(), kCookieListItemKeys);
}, 'CookieListItem - cookieStore.set with secure set to false');
['strict', 'lax', 'unrestricted'].forEach(sameSiteValue => {
['strict', 'lax', 'none'].forEach(sameSiteValue => {
promise_test(async testCase => {
await cookieStore.delete('cookie-name');

View file

@ -4,6 +4,7 @@
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

View file

@ -4,6 +4,7 @@
<meta charset=utf-8>
<title>Tests basic cookie setting functionality</title>
<meta name=help href="https://tools.ietf.org/html/rfc6265#page-8">
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Animation composite order</title>
<link rel="help" href="https://drafts.csswg.org/css-animations-2/#animation-composite-order">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/testcommon.js"></script>
<style>
@keyframes margin50 {
from {
margin-left: 50px;
}
to {
margin-left: 50px;
}
}
@keyframes margin100 {
from {
margin-left: 100px;
}
to {
margin-left: 100px;
}
}
</style>
<div id="log"</div>
<script>
'use strict';
promise_test(async t => {
const div = addDiv(t);
div.style.animation = 'margin100 100s';
assert_equals(getComputedStyle(div).marginLeft, '100px');
div.style.animation = 'margin50 100s, margin100 100s';
// The margin should be unaffected by margin50 since it is named earlier
// in the animation list.
assert_equals(getComputedStyle(div).marginLeft, '100px');
}, "Animations are composited by their order in the animation-name property.");
</script>

View file

@ -0,0 +1,118 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>box-shadow composition</title>
<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#box-shadow">
<meta name="test" content="box-shadow supports animation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/interpolation-testcommon.js"></script>
<style>
.target {
width: 40px;
height: 40px;
background-color: black;
}
.expected {
background-color: green;
}
</style>
<body>
<script>
test_composition({
property: 'box-shadow',
replaceFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px 80px',
}, [
{at: -0.3, expect: 'rgb(70, 70, 70 ) 7px 14px 21px 28px'},
{at: 0, expect: 'rgb(100, 100, 100) 10px 20px 30px 40px'},
{at: 0.5, expect: 'rgb(150, 150, 150) 15px 30px 45px 60px'},
{at: 1, expect: 'rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 1.5, expect: 'rgb(250, 250, 250) 25px 50px 75px 100px'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px 80px',
}, [
{at: -0.3, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px'},
{at: 0.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 1.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(250, 250, 250) 25px 50px 75px 100px'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px inset',
addTo: 'rgb(200, 200, 200) 20px 40px 60px 80px inset',
}, [
{at: -0.3, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px inset'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px inset'},
{at: 0.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px inset'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(200, 200, 200) 20px 40px 60px 80px inset'},
{at: 1.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(250, 250, 250) 25px 50px 75px 100px inset'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px 80px',
}, [
{at: -0.3, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(70, 70, 70) 7px 14px 21px 28px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(100, 100, 100) 10px 20px 30px 40px'},
{at: 0.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(150, 150, 150) 15px 30px 45px 60px'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 1.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(250, 250, 250) 25px 50px 75px 100px'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset',
addTo: 'rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset',
}, [
{at: -0.3, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(70, 70, 70) 7px 14px 21px 28px, rgb(70, 70, 70) 7px 14px 21px 28px inset'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(100, 100, 100) 10px 20px 30px 40px, rgb(100, 100, 100) 10px 20px 30px 40px inset'},
{at: 0.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(150, 150, 150) 15px 30px 45px 60px, rgb(150, 150, 150) 15px 30px 45px 60px inset'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(200, 200, 200) 20px 40px 60px 80px, rgb(200, 200, 200) 20px 40px 60px 80px inset'},
{at: 1.5, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(250, 250, 250) 25px 50px 75px 100px, rgb(250, 250, 250) 25px 50px 75px 100px inset'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px',
replaceTo: 'rgb(200, 200, 200) 20px 40px 60px 80px',
}, [
{at: -0.3, expect: 'rgb(0, 0, 0) -4.7px -9.4px 0px -18.8px, rgb(26, 52, 78) 2.6px 5.2px 7.8px 10.4px, rgb(130, 130, 130) 13px 26px 39px 52px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(100, 100, 100) 10px 20px 30px 40px'},
{at: 0.5, expect: 'rgb(105, 110, 115) 10.5px 21px 31.5px 42px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(100, 100, 100, 0.5) 5px 10px 15px 20px'},
{at: 1, expect: 'rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 1.5, expect: 'rgb(255, 255, 255) 29.5px 59px 88.5px 118px, rgba(0, 0, 0, 0) -1px -2px 0px -4px, rgba(0, 0, 0, 0) -5px -10px 0px -20px'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px',
replaceFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px 80px',
}, [
{at: -0.3, expect: 'rgb(127, 124, 121) 12.7px 25.4px 38.1px 50.8px, rgba(0, 0, 0, 0) -0.6px -1.2px 0px -2.4px, rgba(0, 0, 0, 0) -6px -12px 0px -24px'},
{at: 0, expect: 'rgb(100, 100, 100) 10px 20px 30px 40px'},
{at: 0.5, expect: 'rgb(55, 60, 65) 5.5px 11px 16.5px 22px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(200, 200, 200, 0.5) 10px 20px 30px 40px'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 1.5, expect: 'rgb(0, 0, 0) -3.5px -7px 0px -14px, rgb(30, 60, 90) 3px 6px 9px 12px, rgb(255, 255, 255) 30px 60px 90px 120px'},
]);
test_composition({
property: 'box-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px',
replaceTo: 'rgb(200, 200, 200) 20px 40px 60px 80px',
}, [
{at: -0.3, expect: 'rgb(0, 0, 0) -4.7px -9.4px 0px -18.8px, rgb(26, 52, 78) 2.6px 5.2px 7.8px 10.4px, rgb(52, 104, 156) 5.2px 10.4px 15.6px 20.8px, rgb(130, 130, 130) 13px 26px 39px 52px, rgb(255, 255, 255) 26px 52px 78px 104px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px 4px, rgb(20, 40, 60) 2px 4px 6px 8px, rgb(40, 80, 120) 4px 8px 12px 16px, rgb(100, 100, 100) 10px 20px 30px 40px, rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 0.5, expect: 'rgb(105, 110, 115) 10.5px 21px 31.5px 42px, rgba(20, 40, 60, 0.5) 1px 2px 3px 4px, rgba(40, 80, 120, 0.5) 2px 4px 6px 8px, rgba(100, 100, 100, 0.5) 5px 10px 15px 20px, rgba(200, 200, 200, 0.5) 10px 20px 30px 40px'},
{at: 1, expect: 'rgb(200, 200, 200) 20px 40px 60px 80px'},
{at: 1.5, expect: 'rgb(255, 255, 255) 29.5px 59px 88.5px 118px, rgba(0, 0, 0, 0) -1px -2px 0px -4px, rgba(0, 0, 0, 0) -2px -4px 0px -8px, rgba(0, 0, 0, 0) -5px -10px 0px -20px, rgba(0, 0, 0, 0) -10px -20px 0px -40px'},
]);
</script>
</body>

View file

@ -0,0 +1,30 @@
<!doctype html>
<html class="dark">
<head>
<title>CSS Color Adjustment Test: the initial color is affected by color-scheme</title>
<link rel="help" href="https://drafts.csswg.org/css-color-adjust/#color-scheme-processing">
<link rel="stylesheet" href="support/assert-preferred-dark.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.dark { color-scheme: dark }
.light { color-scheme: light }
.initial { color: initial }
</style>
</head>
<body>
<div id="dark" class="dark initial"></div>
<div id="light" class="light initial"></div>
</body>
<script>
test(() => {
assert_equals(getComputedStyle(dark).color, getComputedStyle(document.documentElement).color);
assert_not_equals(getComputedStyle(light).color, getComputedStyle(document.documentElement).color);
}, "Check that color:initial resolves to the intial color for the dark color-scheme.");
test(() => {
document.documentElement.className = "light";
assert_equals(getComputedStyle(light).color, getComputedStyle(document.documentElement).color);
assert_not_equals(getComputedStyle(dark).color, getComputedStyle(document.documentElement).color);
}, "Check that color:initial resolves to the intial color for the light color-scheme.");
</script>

View file

@ -0,0 +1,4 @@
<!doctype html>
<html style="color-scheme:dark">
<title>CSS Test Reference</title>
This text should be rendered with canvastext for the dark color-scheme.

View file

@ -0,0 +1,11 @@
<!doctype html>
<title>CSS Color Adjustment Test: initial color on visited link affected by color-scheme</title>
<link rel="help" href="https://drafts.csswg.org/css-color-adjust/#color-scheme-processing">
<link rel="stylesheet" href="support/assert-preferred-dark.css">
<link rel="match" href="color-scheme-visited-link-initial-ref.html">
<style>
:root { color-scheme: dark }
a { text-decoration: none }
a:visited { color: initial }
</style>
<a href="">This text should be rendered with canvastext for the dark color-scheme.</a>

View file

@ -0,0 +1,22 @@
<!doctype html>
<title>CSS Color 4: Initial value of the color property</title>
<link rel="help" href="https://drafts.csswg.org/css-color/#the-color-property">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#ref { color: canvastext }
#initial { color: initial }
</style>
<div id="ref"></div>
<div id="initial"></div>
<script>
const canvastext = getComputedStyle(ref).color;
test(() => {
assert_equals(getComputedStyle(document.documentElement).color, canvastext);
}, "Check that the resolved value for the initial color on the root element matches canvastext.");
test(() => {
assert_equals(getComputedStyle(initial).color, canvastext);
}, "Check that the resolved value of an explicit color:initial matches canvastext.");
</script>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: align-content/justify-content:baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
display: grid;
grid: auto / repeat(4, auto);
}
.c {
grid: repeat(4, auto) / auto;
}
div {
float: left;
border:2px solid;
padding:1px;
margin:1px;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-self:baseline; justify-self:baseline; }
.lb { align-self:last baseline; justify-self:last baseline; }
.s { align-self:self-stretch; justify-self:self-stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb">A<br>B</span><span class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s">X<br>Z</span></div>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:2px;" class="fb">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:4px; padding-block-end:36px;" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:15px;" class="fb pbs">A<br>B</span><span style="padding-block-start:18px;" class="fb">M<br>N</span><span style="padding-block-start:22px; padding-block-end:36px;" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span style="padding-block-end:2px;" class="lb">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid hl"><span style="padding-block-end:7px;" class="lb pbe">A<br>B</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb pbs">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:2px;" class="lb">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:7px;" class="lb pbe">A<br>B</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl">A<br>B</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; padding-block-end:36px;" class="fb s vl">X<br>Z</span></div>
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; padding-block-end:36px;" class="fb s vl">X<br>Z</span></div>
<div class="grid c vl"><span style="padding-block-start:8px;" class="fb hl">A<br>B</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s hl">X<br>Z</span></div>
<div class="grid c vl"><span style="padding-block-start:15px;" class="fb hl pbs">A<br>B</span><span style="padding-block-start:12px;" class="fb hl">M<br>N</span><span style="padding-block-start:28px; padding-block-end:24px;" class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl">A<br>B</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s hl">X<br>Z</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:8px;" class="lb vl">A<br>B</span><span style="padding-block-end:0;" class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vl pbe">A<br>B</span><span style="padding-block-end:2px;" class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl">A<br>B</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl pbs">A<br>B</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:2px;" class="lb hl">A<br>B</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:7px;" class="lb hl pbe">A<br>B</span><span style="padding-block-end:8px;" class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:8px;" class="fb vr">A<br>B</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s vr">X<br>Z</span></div>
<div class="grid c hl"><span style="padding-block-start:5px;" class="fb vr pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:8px;" class="fb vr">A<br>B</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px;" class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:15px;" class="fb vr pbs">A<br>B</span><span style="padding-block-start:7px;" class="fb vr">M<br>N</span><span style="padding-block-start:23px; padding-block-end:24px;" class="fb s vr">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:2px;" class="fb vl">A<br>B</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; padding-block-end:36px;" class="fb s vl">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:0;" class="fb vl pbe">A<br>B</span><span style="padding-block-start:1px;" class="fb vl">M<br>N</span><span style="padding-block-start:5px; padding-block-end:36px;" class="fb s vl">X<br>Z</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:2px;" class="lb vr">A<br>B</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vr pbe">A<br>B</span><span style="padding-block-end:5px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:2px;" class="lb vr">A<br>B</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:0px;" class="lb vr pbs">A<br>B</span><span style="padding-block-end:3px;" class="lb vr">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl">A<br>B</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl pbe">A<br>B</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: align-content:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-content-baseline-001-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: auto / repeat(4, auto);
border: 2px solid;
padding: 1px;
margin: 1px;
}
.c {
grid: repeat(4, auto) / auto;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="fb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="fb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="fb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="fb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="fb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="fb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="lb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid hl"><span class="lb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="lb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="lb pbs">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="lb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="lb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vl">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<div class="grid c hl"><span class="fb vl pbe">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<div class="grid c vl"><span class="fb hl">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<div class="grid c vl"><span class="fb hl pbs">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span class="fb hl">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span class="fb hl pbe">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<br clear="all">
<div class="grid c hl"><span class="lb vl">A<br>B</span><span class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span class="lb vl pbe">A<br>B</span><span class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span class="lb hl">A<br>B</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span class="lb hl pbs">A<br>B</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span class="lb hl">A<br>B</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span class="lb hl pbe">A<br>B</span><span class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vr">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid c hl"><span class="fb vr pbe">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span class="fb vr">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span class="fb vr pbs">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid vr"><span class="fb vl">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<div class="grid vr"><span class="fb vl pbe">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<br clear="all">
<div class="grid c hl"><span class="lb vr">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span class="lb vr pbe">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid vl"><span class="lb vr">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid vl"><span class="lb vr pbs">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid vr"><span class="lb vl">A<br>B</span><span class="lb vl">M<br>N</span></div>
<div class="grid vr"><span class="lb vl pbe">A<br>B</span><span class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,109 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: align-content/justify-content:baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
display: grid;
grid: 100px / repeat(4, auto);
}
.c {
grid: repeat(4, auto) / 100px;
}
div {
float: left;
border:2px solid;
padding:1px;
margin:1px;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-self:baseline; justify-self:baseline; }
.lb { align-self:last baseline; justify-self:last baseline; }
.s { align-self:self-stretch; justify-self:self-stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb">A<br>B</span><span class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s">X<br>Z</span></div>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:2px;" class="fb">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:4px; padding-block-end:74px;" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:15px;" class="fb pbs">A<br>B</span><span style="padding-block-start:18px;" class="fb">M<br>N</span><span style="padding-block-start:22px; padding-block-end:56px;" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span style="padding-block-end:2px;" class="lb">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid hl"><span style="padding-block-end:7px;" class="lb pbe">A<br>B</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb pbs">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:2px;" class="lb">A<br>B</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:7px;" class="lb pbe">A<br>B</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl">A<br>B</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; padding-block-end:74px;" class="fb s vl">X<br>Z</span></div>
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; padding-block-end:74px;" class="fb s vl">X<br>Z</span></div>
<div class="grid c vl"><span style="padding-block-start:8px;" class="fb hl">A<br>B</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s hl">X<br>Z</span></div>
<div class="grid c vl"><span style="padding-block-start:15px;" class="fb hl pbs">A<br>B</span><span style="padding-block-start:12px;" class="fb hl">M<br>N</span><span style="padding-block-start:28px; padding-block-end:50px;" class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl">A<br>B</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s hl">X<br>Z</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:8px;" class="lb vl">A<br>B</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vl pbe">A<br>B</span><span style="padding-block-end:2px;" class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl">A<br>B</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl pbs">A<br>B</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:2px;" class="lb hl">A<br>B</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:7px;" class="lb hl pbe">A<br>B</span><span style="padding-block-end:8px;" class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:8px;" class="fb vr">A<br>B</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s vr">X<br>Z</span></div>
<div class="grid c hl"><span style="padding-block-start:5px;" class="fb vr pbe">A<br>B</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:8px;" class="fb vr">A<br>B</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px;" class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span style="padding-block-start:15px;" class="fb vr pbs">A<br>B</span><span style="padding-block-start:7px;" class="fb vr">M<br>N</span><span style="padding-block-start:23px; padding-block-end:55px;" class="fb s vr">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:2px;" class="fb vl">A<br>B</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; padding-block-end:74px;" class="fb s vl">X<br>Z</span></div>
<div class="grid vr"><span style="padding-block-start:0;" class="fb vl pbe">A<br>B</span><span style="padding-block-start:1px;" class="fb vl">M<br>N</span><span style="padding-block-start:5px; padding-block-end:73px;" class="fb s vl">X<br>Z</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:2px;" class="lb vr">A<br>B</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vr pbe">A<br>B</span><span style="padding-block-end:5px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:2px;" class="lb vr">A<br>B</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:0px;" class="lb vr pbs">A<br>B</span><span style="padding-block-end:3px;" class="lb vr">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl">A<br>B</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl pbe">A<br>B</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,112 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: align-content:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-content-baseline-002-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: 100px / repeat(4, auto);
border: 2px solid;
padding: 1px;
margin: 1px;
}
.c {
grid: repeat(4, auto) / 100px;
}
.e { align-content:end; }
.c.e { justify-content:end; }
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="fb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="fb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="fb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="fb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="fb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="fb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid e hl"><span class="lb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid e hl"><span class="lb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid e vl"><span class="lb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid e vl"><span class="lb pbs">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid e vr"><span class="lb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid e vr"><span class="lb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vl">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<div class="grid c hl"><span class="fb vl pbe">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<div class="grid c vl"><span class="fb hl">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<div class="grid c vl"><span class="fb hl pbs">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span class="fb hl">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<div class="grid c vr"><span class="fb hl pbe">A<br>B</span><span class="fb hl">M<br>N</span><span class="fb s hl">X<br>Z</span></div>
<br clear="all">
<div class="grid e c hl"><span class="lb vl">A<br>B</span><span class="lb vl">M<br>N</span></div>
<div class="grid e c hl"><span class="lb vl pbe">A<br>B</span><span class="lb vl">M<br>N</span></div>
<div class="grid e c vl"><span class="lb hl">A<br>B</span><span class="lb hl">M<br>N</span></div>
<div class="grid e c vl"><span class="lb hl pbs">A<br>B</span><span class="lb hl">M<br>N</span></div>
<div class="grid e c vr"><span class="lb hl">A<br>B</span><span class="lb hl">M<br>N</span></div>
<div class="grid e c vr"><span class="lb hl pbe">A<br>B</span><span class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vr">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid c hl"><span class="fb vr pbe">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span class="fb vr">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid vl"><span class="fb vr pbs">A<br>B</span><span class="fb vr">M<br>N</span><span class="fb s vr">X<br>Z</span></div>
<div class="grid vr"><span class="fb vl">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<div class="grid vr"><span class="fb vl pbe">A<br>B</span><span class="fb vl">M<br>N</span><span class="fb s vl">X<br>Z</span></div>
<br clear="all">
<div class="grid e c hl"><span class="lb vr">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid e c hl"><span class="lb vr pbe">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid e vl"><span class="lb vr">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid e vl"><span class="lb vr pbs">A<br>B</span><span class="lb vr">M<br>N</span></div>
<div class="grid e vr"><span class="lb vl">A<br>B</span><span class="lb vl">M<br>N</span></div>
<div class="grid e vr"><span class="lb vl pbe">A<br>B</span><span class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: align-content/justify-content:baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1611724">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
display: grid;
grid: auto / repeat(4, auto);
}
.c {
grid: repeat(4, auto) / auto;
}
div {
float: left;
border:2px solid;
padding:1px;
margin:1px;
}
span {
background: content-box silver;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-self:baseline; justify-self:baseline; }
.lb { align-self:last baseline; justify-self:last baseline; }
.s { align-self:self-stretch; justify-self:self-stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb">A</span><span class="fb">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s">X</span></div>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb pbe">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s">X</span></div>
<div class="grid vl"><span style="padding-block-start:2px;" class="fb">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s">X</span></div>
<div class="grid vl"><span style="padding-block-start:15px;" class="fb">A</span><span style="padding-block-start:18px;" class="fb">M<br>N</span><span style="padding-block-start:22px; width:56px;" class="fb s">X</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s">X</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb pbe">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s">X</span></div>
<br clear="all">
<div class="grid hl"><span style="padding-block-end:2px;" class="lb">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid hl"><span style="padding-block-end:7px;" class="lb pbe">A</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb pbs">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:2px;" class="lb">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:7px;" class="lb pbe">A</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl">A</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s vl">X</span></div>
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl pbe">A</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s vl">X</span></div>
<div class="grid c vl"><span style="padding-block-start:8px;" class="fb hl">A</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s hl">X</span></div>
<div class="grid c vl"><span style="padding-block-start:15px;" class="fb hl pbs">A</span><span style="padding-block-start:12px;" class="fb hl">M<br>N</span><span style="padding-block-start:28px; height:44px;" class="fb s hl">X</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl">A</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s hl">X</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl pbe">A</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s hl">X</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:8px;" class="lb vl">A</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vl pbe">A</span><span style="padding-block-end:2px;" class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl">A</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl pbs">A</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:2px;" class="lb hl">A</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:7px;" class="lb hl pbe">A</span><span style="padding-block-end:8px;" class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:8px;" class="fb vr">A</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s vr">X</span></div>
<div class="grid c hl"><span style="padding-block-start:5px;" class="fb vr pbe">A</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s vr">X</span></div>
<div class="grid vl"><span style="padding-block-start:8px;" class="fb vr">A</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s vr">X</span></div>
<div class="grid vl"><span style="" class="fb vr pbs">A</span><span style="padding-block-start:7px;" class="fb vr">M<br>N</span><span style="padding-block-start:23px; width:44px;" class="fb s vr">X</span></div>
<div class="grid vr"><span style="padding-block-start:2px;" class="fb vl">A</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s vl">X</span></div>
<div class="grid vr"><span style="padding-block-start:0;" class="fb vl pbe">A</span><span style="padding-block-start:1px;" class="fb vl">M<br>N</span><span style="padding-block-start:5px; width:56px;" class="fb s vl">X</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:2px;" class="lb vr">A</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vr pbe">A</span><span style="padding-block-end:5px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:2px;" class="lb vr">A</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:0px;" class="lb vr pbs">A</span><span style="padding-block-end:3px;" class="lb vr">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl">A</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl pbe">A</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: align-content:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1611724">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-content-baseline-003-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: auto / repeat(4, auto);
border: 2px solid;
padding: 1px;
margin: 1px;
}
.c {
grid: repeat(4, auto) / auto;
}
span {
background: content-box silver;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="fb">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid hl"><span class="fb pbe">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vl"><span class="fb">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vl"><span class="fb pbs">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vr"><span class="fb">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vr"><span class="fb pbe">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<br clear="all">
<div class="grid hl"><span class="lb">A</span><span class="lb">M<br>N</span></div>
<div class="grid hl"><span class="lb pbe">A</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="lb">A</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="lb pbs">A</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="lb">A</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="lb pbe">A</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vl">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<div class="grid c hl"><span class="fb vl pbe">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<div class="grid c vl"><span class="fb hl">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<div class="grid c vl"><span class="fb hl pbs">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<div class="grid c vr"><span class="fb hl">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<div class="grid c vr"><span class="fb hl pbe">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<br clear="all">
<div class="grid c hl"><span class="lb vl">A</span><span class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span class="lb vl pbe">A</span><span class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span class="lb hl">A</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span class="lb hl pbs">A</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span class="lb hl">A</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span class="lb hl pbe">A</span><span class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vr">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid c hl"><span class="fb vr pbe">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid vl"><span class="fb vr">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid vl"><span class="fb vr pbs">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid vr"><span class="fb vl">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<div class="grid vr"><span class="fb vl pbe">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<br clear="all">
<div class="grid c hl"><span class="lb vr">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span class="lb vr pbe">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid vl"><span class="lb vr">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid vl"><span class="lb vr pbs">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid vr"><span class="lb vl">A</span><span class="lb vl">M<br>N</span></div>
<div class="grid vr"><span class="lb vl pbe">A</span><span class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: align-content/justify-content:baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1611724">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
display: grid;
grid: auto / repeat(4, auto);
}
.c {
grid: repeat(4, auto) / auto;
}
div {
float: left;
border:2px solid;
padding:1px;
margin:1px;
}
span {
background: silver;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-self:baseline; justify-self:baseline; }
.lb { align-self:last baseline; justify-self:last baseline; }
.s { align-self:self-stretch; justify-self:self-stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb">A</span><span class="fb">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s">X</span></div>
<div class="grid hl"><span style="padding-block-start:8px;" class="fb pbe">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s">X</span></div>
<div class="grid vl"><span style="padding-block-start:2px;" class="fb">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s">X</span></div>
<div class="grid vl"><span style="padding-block-start:15px;" class="fb">A</span><span style="padding-block-start:18px;" class="fb">M<br>N</span><span style="padding-block-start:22px; width:56px;" class="fb s">X</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s">X</span></div>
<div class="grid vr"><span style="padding-block-start:8px;" class="fb pbe">A</span><span style="padding-block-start:0px;" class="fb">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s">X</span></div>
<br clear="all">
<div class="grid hl"><span style="padding-block-end:2px;" class="lb">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid hl"><span style="padding-block-end:7px;" class="lb pbe">A</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:8px;" class="lb pbs">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:2px;" class="lb">A</span><span style="padding-block-end:0px;" class="lb">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:7px;" class="lb pbe">A</span><span style="padding-block-end:8px;" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl">A</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s vl">X</span></div>
<div class="grid c hl"><span style="padding-block-start:2px;" class="fb vl pbe">A</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s vl">X</span></div>
<div class="grid c vl"><span style="padding-block-start:8px;" class="fb hl">A</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s hl">X</span></div>
<div class="grid c vl"><span style="padding-block-start:15px;" class="fb hl pbs">A</span><span style="padding-block-start:12px;" class="fb hl">M<br>N</span><span style="padding-block-start:28px; height:44px;" class="fb s hl">X</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl">A</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s hl">X</span></div>
<div class="grid c vr"><span style="padding-block-start:8px;" class="fb hl pbe">A</span><span style="padding-block-start:0px;" class="fb hl">M<br>N</span><span style="padding-block-start:16px; height:44px;" class="fb s hl">X</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:8px;" class="lb vl">A</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vl pbe">A</span><span style="padding-block-end:2px;" class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl">A</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span style="padding-block-end:2px;" class="lb hl pbs">A</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:2px;" class="lb hl">A</span><span style="padding-block-end:0px;" class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span style="padding-block-end:7px;" class="lb hl pbe">A</span><span style="padding-block-end:8px;" class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-start:8px;" class="fb vr">A</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s vr">X</span></div>
<div class="grid c hl"><span style="padding-block-start:5px;" class="fb vr pbe">A</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s vr">X</span></div>
<div class="grid vl"><span style="padding-block-start:8px;" class="fb vr">A</span><span style="padding-block-start:0px;" class="fb vr">M<br>N</span><span style="padding-block-start:16px; width:44px;" class="fb s vr">X</span></div>
<div class="grid vl"><span style="" class="fb vr pbs">A</span><span style="padding-block-start:7px;" class="fb vr">M<br>N</span><span style="padding-block-start:23px; width:44px;" class="fb s vr">X</span></div>
<div class="grid vr"><span style="padding-block-start:2px;" class="fb vl">A</span><span style="padding-block-start:0px;" class="fb vl">M<br>N</span><span style="padding-block-start:4px; width:56px;" class="fb s vl">X</span></div>
<div class="grid vr"><span style="padding-block-start:0;" class="fb vl pbe">A</span><span style="padding-block-start:1px;" class="fb vl">M<br>N</span><span style="padding-block-start:5px; width:56px;" class="fb s vl">X</span></div>
<br clear="all">
<div class="grid c hl"><span style="padding-block-end:2px;" class="lb vr">A</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span style="padding-block-end:7px;" class="lb vr pbe">A</span><span style="padding-block-end:5px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:2px;" class="lb vr">A</span><span style="padding-block-end:0px;" class="lb vr">M<br>N</span></div>
<div class="grid vl"><span style="padding-block-end:0px;" class="lb vr pbs">A</span><span style="padding-block-end:3px;" class="lb vr">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl">A</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
<div class="grid vr"><span style="padding-block-end:8px;" class="lb vl pbe">A</span><span style="padding-block-end:0px;" class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: align-content:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1611724">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-content-baseline-004-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style>
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: auto / repeat(4, auto);
border: 2px solid;
padding: 1px;
margin: 1px;
}
.c {
grid: repeat(4, auto) / auto;
}
span {
background: silver;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:20px; }
span:nth-child(2) { font-size:30px; }
span:nth-child(3) { font-size:10px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="fb">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid hl"><span class="fb pbe">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vl"><span class="fb">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vl"><span class="fb pbs">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vr"><span class="fb">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<div class="grid vr"><span class="fb pbe">A</span><span class="fb">M<br>N</span><span class="fb s">X</span></div>
<br clear="all">
<div class="grid hl"><span class="lb">A</span><span class="lb">M<br>N</span></div>
<div class="grid hl"><span class="lb pbe">A</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="lb">A</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="lb pbs">A</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="lb">A</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="lb pbe">A</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vl">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<div class="grid c hl"><span class="fb vl pbe">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<div class="grid c vl"><span class="fb hl">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<div class="grid c vl"><span class="fb hl pbs">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<div class="grid c vr"><span class="fb hl">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<div class="grid c vr"><span class="fb hl pbe">A</span><span class="fb hl">M<br>N</span><span class="fb s hl">X</span></div>
<br clear="all">
<div class="grid c hl"><span class="lb vl">A</span><span class="lb vl">M<br>N</span></div>
<div class="grid c hl"><span class="lb vl pbe">A</span><span class="lb vl">M<br>N</span></div>
<div class="grid c vl"><span class="lb hl">A</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vl"><span class="lb hl pbs">A</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span class="lb hl">A</span><span class="lb hl">M<br>N</span></div>
<div class="grid c vr"><span class="lb hl pbe">A</span><span class="lb hl">M<br>N</span></div>
<br clear="all">
<div class="grid c hl"><span class="fb vr">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid c hl"><span class="fb vr pbe">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid vl"><span class="fb vr">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid vl"><span class="fb vr pbs">A</span><span class="fb vr">M<br>N</span><span class="fb s vr">X</span></div>
<div class="grid vr"><span class="fb vl">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<div class="grid vr"><span class="fb vl pbe">A</span><span class="fb vl">M<br>N</span><span class="fb s vl">X</span></div>
<br clear="all">
<div class="grid c hl"><span class="lb vr">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid c hl"><span class="lb vr pbe">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid vl"><span class="lb vr">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid vl"><span class="lb vr pbs">A</span><span class="lb vr">M<br>N</span></div>
<div class="grid vr"><span class="lb vl">A</span><span class="lb vl">M<br>N</span></div>
<div class="grid vr"><span class="lb vl pbe">A</span><span class="lb vl">M<br>N</span></div>
</body>
</html>

View file

@ -0,0 +1,110 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: mixed align-content/self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: auto / repeat(10, auto);
border: 2px solid;
margin: 1px;
}
.c {
grid: repeat(4, auto) / auto;
}
.t2 { grid: auto / repeat(3, auto);}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-self:baseline; justify-self:self-start; }
.lb { align-self:last baseline; justify-self:self-end; }
.s { justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end;}
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px" class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:34px" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span style="padding-block-start:3px" class="fb">M<br>N</span><span style="padding-block-start:4px; padding-block-end:36px" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span style="padding-block-start:23px" class="fb">M<br>N</span><span style="padding-block-start:24px; padding-block-end:36px" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:24px" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:34px" class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid hl"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span style="padding-block-start:3px" class="fb">M<br>N</span><span style="padding-block-end:8px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span style="padding-block-start:23px" class="fb">M<br>N</span><span style="padding-block-end:8px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span style="padding-block-end:12px" class="lb">R<br>S</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span style="padding-block-end:8px" class="lb">R<br>S</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid t2 hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span style="align-self:stretch" class="vr fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span style="align-self:stretch" class="vl fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="hr sfb">R<br>S</span><span class="hl fb">U<br>V</span><span style="align-self:stretch" class="hr fb s">X<br>Z</span><span class="hr sfb">K<br>L</span></div>
<br clear="all">
<div class="grid t2 vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="hr lb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span style="align-self:stretch" class="hl fb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<br clear="all">
</body>
</html>

View file

@ -0,0 +1,112 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: mixed align-content/self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-mixed-baseline-001-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: auto / repeat(10, auto);
border: 2px solid;
margin: 1px;
}
.c {
grid: repeat(4, auto) / auto;
}
.t2 { grid: auto / repeat(3, auto);}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end;}
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid hl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="lb">R<br>S</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="lb">R<br>S</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid t2 hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span class="vr fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span class="vl fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="hr sfb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hr fb s">X<br>Z</span><span class="hr sfb">K<br>L</span></div>
<br clear="all">
<div class="grid t2 vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span><span class="hr lb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl fb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<br clear="all">
</body>
</html>

View file

@ -0,0 +1,114 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: mixed align-content/self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: 100px / repeat(10, auto);
border: 2px solid;
margin: 1px;
align-content: start;
justify-content: end;
}
.c {
grid: repeat(4, auto) / 100px;
align-content: end;
justify-content: start;
}
.t2 { grid: 100px / repeat(3, auto);}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { place-self:first baseline self-start; }
.lb { place-self:last baseline self-end; }
.s { justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end;}
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span style="padding-block-start:3px" class="fb">M<br>N</span><span style="padding-block-start:4px; padding-block-end:74px" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span style="padding-block-start:23px" class="fb">M<br>N</span><span style="padding-block-start:24px; padding-block-end:54px" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid hl"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span style="padding-block-start:3px" class="fb">M<br>N</span><span style="padding-block-end:8px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span style="padding-block-start:23px" class="fb">M<br>N</span><span style="padding-block-end:8px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span style="padding-block-end:12px" class="lb">R<br>S</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span style="padding-block-end:8px" class="lb">R<br>S</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid t2 hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span style="align-self:stretch" class="vr fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span style="align-self:stretch" class="vl fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="hr sfb">R<br>S</span><span class="hl fb">U<br>V</span><span style="align-self:stretch" class="hr fb s">X<br>Z</span><span class="hr sfb">K<br>L</span></div>
<br clear="all">
<div class="grid t2 vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span style="padding-block-end:0px" class="hr lb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span style="align-self:stretch" class="hl fb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<br clear="all">
</body>
</html>

View file

@ -0,0 +1,114 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: mixed align-content/self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-mixed-baseline-002-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: 100px / repeat(10, auto);
border: 2px solid;
margin: 1px;
place-content: start end;
}
.c {
grid: repeat(4, auto) / 100px;
place-content: end start;
}
.t2 { grid: 100px / repeat(3, auto);}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; place-self:self-start; }
.lb { align-content:last baseline; place-self:self-end; }
.s { place-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end;}
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid hl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="lb">R<br>S</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="lb">R<br>S</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid t2 hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span class="vr fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span class="vl fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="hr sfb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hr fb s">X<br>Z</span><span class="hr sfb">K<br>L</span></div>
<br clear="all">
<div class="grid t2 vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span><span class="hr lb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl fb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<br clear="all">
</body>
</html>

View file

@ -0,0 +1,114 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: mixed align-content/self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: 100px / repeat(10, auto);
border: 2px solid;
margin: 1px;
align-content: end;
justify-content: start;
}
.c {
grid: repeat(4, auto) / 100px;
align-content: start;
justify-content: end;
}
.t2 { grid: 100px / repeat(3, auto);}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-self:baseline; justify-self:self-start; }
.lb { align-self:last baseline; justify-self:self-end; }
.s { justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end;}
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span style="padding-block-start:3px" class="fb">M<br>N</span><span style="padding-block-start:4px; padding-block-end:74px" class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span style="padding-block-start:23px" class="fb">M<br>N</span><span style="padding-block-start:24px; padding-block-end:54px" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-start:16px; padding-block-end:62px" class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid hl"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span style="padding-block-start:3px" class="fb">M<br>N</span><span style="padding-block-end:8px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span style="padding-block-start:23px" class="fb">M<br>N</span><span style="padding-block-end:8px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span style="padding-block-start:12px" class="fb">M<br>N</span><span style="padding-block-end:2px" class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span style="padding-block-end:12px" class="lb">R<br>S</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span style="padding-block-end:8px" class="lb">R<br>S</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid t2 hl"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span style="align-self:stretch" class="vr fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 hl"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span style="align-self:stretch" class="vl fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 vl"><span class="slb">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="hr sfb">R<br>S</span><span class="hl fb">U<br>V</span><span style="align-self:stretch" class="hr fb s">X<br>Z</span><span class="hr sfb">K<br>L</span></div>
<br clear="all">
<div class="grid t2 vl"><span class="slb pbs">A<br>B</span><span style="padding-block-end:12px" class="lb">M<br>N</span><span class="hr lb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb">A<br>B</span><span style="padding-block-end:3px" class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb pbe">A<br>B</span><span style="padding-block-end:13px" class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span style="align-self:stretch" class="hl fb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<br clear="all">
</body>
</html>

View file

@ -0,0 +1,116 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: mixed align-content/self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-mixed-baseline-003-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: 100px / repeat(10, auto);
border: 2px solid;
margin: 1px;
align-content: end;
justify-content: start;
}
.c {
grid: repeat(4, auto) / 100px;
align-content: start;
justify-content: end;
}
.t2 { grid: 100px / repeat(3, auto);}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end;}
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid hl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span></div>
<br clear="all">
<div class="grid hl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="sfb pbs">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="sfb pbe">A<br>B</span><span class="fb">M<br>N</span><span class="lb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="lb">R<br>S</span></div>
<div class="grid vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="lb">R<br>S</span></div>
<div class="grid vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<div class="grid vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="fb">X<br>Z</span><span class="slb">R<br>S</span></div>
<br clear="all">
<div class="grid t2 hl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span class="vr fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 hl"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="vl sfb">R<br>S</span><span class="vl fb">U<br>V</span><span class="vl fb s">X<br>Z</span><span class="vr sfb">K<br>L</span></div>
<div class="grid t2 vl"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="hr sfb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hr fb s">X<br>Z</span><span class="hr sfb">K<br>L</span></div>
<br clear="all">
<div class="grid t2 vl"><span class="slb pbs">A<br>B</span><span class="lb">M<br>N</span><span class="hr lb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb">A<br>B</span><span class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl sfb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<div class="grid t2 vr"><span class="slb pbe">A<br>B</span><span class="lb">M<br>N</span><span class="hl fb">R<br>S</span><span class="hl fb">U<br>V</span><span class="hl fb s">X<br>Z</span><span class="hl sfb s">X<br>Z</span><span class="hl slb">K<br>L</span></div>
<br clear="all">
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: mixed align-content/self:baseline/last baseline in fragmentated grid</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.columns {
position:relative;
columns: 5;
-ms-columns: 5;
-webkit-columns: 5;
columns: 5;
column-fill: auto;
-ms-column-fill: auto;
-webkit-column-fill: auto;
column-fill: auto;
border: 2px dashed;
margin-bottom: 5px;
height: 120px;
}
.grid {
display: grid;
grid: 100px / repeat(3, auto);
grid-auto-rows: 100px;
border: 2px solid;
margin: 1px;
}
.g1 {
border-bottom-width: 0;
grid-template-rows: 100px 0 0;
}
.g2 {
border-top-width: 0;
grid-template-rows: 0 100px 100px;
}
.h {
visibility: hidden;
height: 0;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="columns">
<div class="grid hl g1">
<span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span>
<span class="sfb h">A<br>B</span><span class="fb h">M<br>N</span><span class="fb h">X<br>Z</span>
<span class="sfb h">A<br>B</span><span class="fb h">M<br>N</span><span class="fb s h">X<br>Z</span>
</div>
<div class="grid hl g2">
<span class="sfb h ">A<br>B</span><span class="fb h">M<br>N</span><span class="fb s h">X<br>Z</span>
<span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb">X<br>Z</span>
<span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,82 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: mixed align-content/self:baseline/last baseline in fragmentated grid</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256429">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-content">
<link rel="match" href="grid-item-mixed-baseline-004-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css">
<style type="text/css">
html,body {
color:black; background-color:white; font:20px/1 Ahem; padding:0; margin:0;
}
.columns {
position:relative;
columns: 5;
-ms-columns: 5;
-webkit-columns: 5;
columns: 5;
column-fill: auto;
-ms-column-fill: auto;
-webkit-column-fill: auto;
column-fill: auto;
border: 2px dashed;
margin-bottom: 5px;
height: 120px;
}
.grid {
display: grid;
grid: 100px / repeat(3, auto);
grid-auto-rows: 100px;
border: 2px solid;
margin: 1px;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
}
span:nth-child(1) { font-size:30px; }
span:nth-child(2) { font-size:15px; }
span:nth-child(3) { font-size:10px; }
span:nth-child(4) { font-size:20px; }
.pbs { padding-block-start: 15px; margin-block-start: 5px; }
.pbe { padding-block-end: 7px; margin-block-end: 3px; }
.fb { align-content:baseline; align-self:self-start; justify-self:self-start; }
.lb { align-content:last baseline; align-self:self-end; justify-self:self-end; }
.s { align-self:stretch; justify-self:stretch; }
.sfb { align-self:baseline; }
.slb { align-self:last baseline; align-content:self-end; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="columns">
<div class="grid hl">
<span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span>
<span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb">X<br>Z</span>
<span class="sfb">A<br>B</span><span class="fb">M<br>N</span><span class="fb s">X<br>Z</span>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,92 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: align-self/justify-self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1221525">
<style type="text/css">
html,body {
color:black; background-color:white; font-size:16px; padding:0; margin:0;
}
.grid {
display: grid;
grid: auto / repeat(4, auto);
align-items: start;
justify-items: start;
}
.c {
grid: repeat(4, auto) / auto;
}
div {
float: left;
border:2px solid;
padding:1px;
margin:1px;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
box-sizing: border-box;
}
span:nth-child(1) { font-size:12px; }
span:nth-child(2) { font-size:16px; }
span:nth-child(3) { font-size:24px; }
span:nth-child(4) { font-size:32px; }
.pbe { padding-block-end:20px; }
.pbs { padding-block-start:20px; }
.fb { align-self:baseline; }
.lb { align-self:last baseline; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div><span class="fb hl">A</span><span class="fb hl">A</span><span class="fb hl">A</span><span class="fb hl">A</span></div>
<div><span class="fb hl pbe">A</span><span class="fb hl">A</span><span class="fb hl">A</span><span class="fb hl">A</span></div>
<div class="vl"><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="vl"><span class="fb pbs">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="vr"><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="vr"><span class="fb pbe">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<br clear="all">
<div><span class="lb hl">A</span><span class="lb hl">A</span><span class="lb hl">A</span><span class="lb hl">A</span></div>
<div><span class="lb hl pbe">A</span><span class="lb hl">A</span><span class="lb hl">A</span><span class="lb hl">A</span></div>
<div class="vl"><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<div class="vl"><span class="lb pbs">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<div class="vr"><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<div class="vr"><span class="lb pbe">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<br clear="all">
<div class="grid vl"><span class="fb vl">A</span><span class="fb vl">A</span><span class="fb vl">A</span><span class="fb vl">A</span></div>
<div class="grid vl"><span class="fb vl pbe">A</span><span class="fb vl">A</span><span class="fb vl">A</span><span class="fb vl">A</span></div>
<div class="grid"><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="grid"><span class="fb pbs">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="grid"><span class="fb" style="order:99">A</span><span class="fb" style="order:98">A</span><span class="fb" style="order:97">A</span><span class="fb" style="order:96">A</span></div>
<div class="grid"><span class="fb pbe" style="order:99;">A</span><span class="fb" style="order:98">A</span><span class="fb" style="order:97">A</span><span class="fb" style="order:96">A</span></div>
<br clear="all">
<div><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span></div>
<div><span class="lb hl pbe">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span></div>
<div class="vl"><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
<div class="vl"><span class="lb pbs">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
<div class="vr"><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
<div class="vr"><span class="lb pbe">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
</body>
</html>

View file

@ -0,0 +1,95 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: align-self/justify-self:baseline/last baseline</title>
<link rel="author" title="Mats Palmgren" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1221525">
<link rel="help" href="https://drafts.csswg.org/css-align-3/#baseline-align-self">
<link rel="match" href="grid-item-self-baseline-001-ref.html">
<style type="text/css">
html,body {
color:black; background-color:white; font-size:16px; padding:0; margin:0;
}
.grid {
float: left;
display: grid;
grid: auto / repeat(4, auto);
place-items: start;
border: 2px solid;
padding: 1px;
margin: 1px;
}
.c {
grid: repeat(4, auto) / auto;
}
span {
background: lime;
display: inline-block;
border: 1px solid black;
box-sizing: border-box;
}
span:nth-child(1) { font-size:12px; }
span:nth-child(2) { font-size:16px; }
span:nth-child(3) { font-size:24px; }
span:nth-child(4) { font-size:32px; }
.pbe { padding-block-end:20px; }
.pbs { padding-block-start:20px; }
.fb { align-self:baseline; }
.lb { align-self:last baseline; }
.jfb { justify-self:baseline; }
.jlb { justify-self:last baseline; }
.hl { writing-mode: horizontal-tb; direction:ltr; }
.hr { writing-mode: horizontal-tb; direction:rtl; }
.vl { writing-mode: vertical-lr; text-orientation: sideways; }
.vr { writing-mode: vertical-rl; text-orientation: sideways; }
.vlr { writing-mode: vertical-lr; direction:rtl; text-orientation: sideways; }
.vrl { writing-mode: vertical-rl; direction:ltr; text-orientation: sideways; }
</style>
</head>
<body>
<div class="grid"><span class="fb hl">A</span><span class="fb hl">A</span><span class="fb hl">A</span><span class="fb hl">A</span></div>
<div class="grid"><span class="fb hl pbe">A</span><span class="fb hl">A</span><span class="fb hl">A</span><span class="fb hl">A</span></div>
<div class="grid vl"><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="grid vl"><span class="fb pbs">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="grid vr"><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<div class="grid vr"><span class="fb pbe">A</span><span class="fb">A</span><span class="fb">A</span><span class="fb">A</span></div>
<br clear="all">
<div class="grid"><span class="lb hl">A</span><span class="lb hl">A</span><span class="lb hl">A</span><span class="lb hl">A</span></div>
<div class="grid"><span class="lb hl pbe">A</span><span class="lb hl">A</span><span class="lb hl">A</span><span class="lb hl">A</span></div>
<div class="grid vl"><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<div class="grid vl"><span class="lb pbs">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<div class="grid vr"><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<div class="grid vr"><span class="lb pbe">A</span><span class="lb">A</span><span class="lb">A</span><span class="lb">A</span></div>
<br clear="all">
<div class="grid c"><span class="jfb vl">A</span><span class="jfb vl">A</span><span class="jfb vl">A</span><span class="jfb vl">A</span></div>
<div class="grid c"><span class="jfb vl pbe">A</span><span class="jfb vl">A</span><span class="jfb vl">A</span><span class="jfb vl">A</span></div>
<div class="grid c vl"><span class="jfb hl">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span></div>
<div class="grid c vl"><span class="jfb hl pbs">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span></div>
<div class="grid c vr"><span class="jfb hl">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span></div>
<div class="grid c vr"><span class="jfb hl pbe">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span><span class="jfb hl">A</span></div>
<br clear="all">
<div class="grid"><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span></div>
<div class="grid"><span class="lb hl pbe">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span><span class="lb hl">A<br>A</span></div>
<div class="grid vl"><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
<div class="grid vl"><span class="lb pbs">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
<div class="grid vr"><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
<div class="grid vr"><span class="lb pbe">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span><span class="lb">A<br>A</span></div>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html class="reftest-wait">
<title>Switch from an empty to a non-empty clip-path url()</title>
<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
<link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
<link rel="match" href="reference/green-100x100.html">
<script src="/common/reftest-wait.js"></script>
<svg>
<clipPath id="empty"/>
<clipPath id="rect">
<rect width="100" height="100"/>
</clipPath>
<rect width="100" height="100" fill="red"/>
<rect width="100" height="100" fill="green" id="target" clip-path="url(#empty)"/>
</svg>
<script>
requestAnimationFrame(() => {
requestAnimationFrame(() => {
document.getElementById('target').setAttribute('clip-path', 'url(#rect)');
takeScreenshot();
});
});
</script>

View file

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html class="reftest-wait">
<title>Switch from one clip-path url() to another with the same bounds</title>
<link rel="help" href="http://www.w3.org/TR/css-masking-1/#clipping-paths">
<link rel="help" href="http://www.w3.org/TR/css-masking-1/#the-clip-path">
<link rel="match" href="reference/green-100x100.html">
<script src="/common/reftest-wait.js"></script>
<svg>
<clipPath id="circle">
<circle cx="50" cy="50" r="50"/>
</clipPath>
<clipPath id="rect">
<rect width="100" height="100"/>
</clipPath>
<rect width="100" height="100" fill="red"/>
<rect width="100" height="100" fill="green" id="target" clip-path="url(#circle)"/>
</svg>
<script>
requestAnimationFrame(() => {
requestAnimationFrame(() => {
document.getElementById('target').setAttribute('clip-path', 'url(#rect)');
takeScreenshot();
});
});
</script>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<div style="width: 100px; height: 100px; background-color: green"></div>

View file

@ -0,0 +1,101 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>text-shadow composition</title>
<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#text-shadow-property">
<meta name="assert" content="text-shadow supports animation">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/interpolation-testcommon.js"></script>
<style>
.target {
width: 40px;
height: 40px;
background-color: black;
}
.expected {
background-color: green;
}
</style>
<body>
<script>
test_composition({
property: 'text-shadow',
replaceFrom: 'rgb(100, 100, 100) 10px 20px 30px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px',
}, [
{at: -0.3, expect: 'rgb(70, 70, 70 ) 7px 14px 21px'},
{at: 0, expect: 'rgb(100, 100, 100) 10px 20px 30px'},
{at: 0.5, expect: 'rgb(150, 150, 150) 15px 30px 45px'},
{at: 1, expect: 'rgb(200, 200, 200) 20px 40px 60px'},
{at: 1.5, expect: 'rgb(250, 250, 250) 25px 50px 75px'},
]);
test_composition({
property: 'text-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px',
}, [
{at: -0.3, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(70, 70, 70) 7px 14px 21px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(100, 100, 100) 10px 20px 30px'},
{at: 0.5, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(150, 150, 150) 15px 30px 45px'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(200, 200, 200) 20px 40px 60px'},
{at: 1.5, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(250, 250, 250) 25px 50px 75px'},
]);
test_composition({
property: 'text-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px',
}, [
{at: -0.3, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(70, 70, 70) 7px 14px 21px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(100, 100, 100) 10px 20px 30px'},
{at: 0.5, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(150, 150, 150) 15px 30px 45px'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(200, 200, 200) 20px 40px 60px'},
{at: 1.5, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(250, 250, 250) 25px 50px 75px'},
]);
test_composition({
property: 'text-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px',
replaceTo: 'rgb(200, 200, 200) 20px 40px 60px',
}, [
{at: -0.3, expect: 'rgb(0, 0, 0) -4.7px -9.4px 0px, rgb(26, 52, 78) 2.6px 5.2px 7.8px, rgb(130, 130, 130) 13px 26px 39px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(100, 100, 100) 10px 20px 30px'},
{at: 0.5, expect: 'rgb(105, 110, 115) 10.5px 21px 31.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(100, 100, 100, 0.5) 5px 10px 15px'},
{at: 1, expect: 'rgb(200, 200, 200) 20px 40px 60px'},
{at: 1.5, expect: 'rgb(255, 255, 255) 29.5px 59px 88.5px, rgba(0, 0, 0, 0) -1px -2px 0px, rgba(0, 0, 0, 0) -5px -10px 0px'},
]);
test_composition({
property: 'text-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px',
replaceFrom: 'rgb(100, 100, 100) 10px 20px 30px',
addTo: 'rgb(200, 200, 200) 20px 40px 60px',
}, [
{at: -0.3, expect: 'rgb(127, 124, 121) 12.7px 25.4px 38.1px, rgba(0, 0, 0, 0) -0.6px -1.2px 0px, rgba(0, 0, 0, 0) -6px -12px 0px'},
{at: 0, expect: 'rgb(100, 100, 100) 10px 20px 30px'},
{at: 0.5, expect: 'rgb(55, 60, 65) 5.5px 11px 16.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(200, 200, 200, 0.5) 10px 20px 30px'},
{at: 1, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(200, 200, 200) 20px 40px 60px'},
{at: 1.5, expect: 'rgb(0, 0, 0) -3.5px -7px 0px, rgb(30, 60, 90) 3px 6px 9px, rgb(255, 255, 255) 30px 60px 90px'},
]);
test_composition({
property: 'text-shadow',
underlying: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px',
addFrom: 'rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px',
replaceTo: 'rgb(200, 200, 200) 20px 40px 60px',
}, [
{at: -0.3, expect: 'rgb(0, 0, 0) -4.7px -9.4px 0px, rgb(26, 52, 78) 2.6px 5.2px 7.8px, rgb(52, 104, 156) 5.2px 10.4px 15.6px, rgb(130, 130, 130) 13px 26px 39px, rgb(255, 255, 255) 26px 52px 78px'},
{at: 0, expect: 'rgb(10, 20, 30) 1px 2px 3px, rgb(20, 40, 60) 2px 4px 6px, rgb(40, 80, 120) 4px 8px 12px, rgb(100, 100, 100) 10px 20px 30px, rgb(200, 200, 200) 20px 40px 60px'},
{at: 0.5, expect: 'rgb(105, 110, 115) 10.5px 21px 31.5px, rgba(20, 40, 60, 0.5) 1px 2px 3px, rgba(40, 80, 120, 0.5) 2px 4px 6px, rgba(100, 100, 100, 0.5) 5px 10px 15px, rgba(200, 200, 200, 0.5) 10px 20px 30px'},
{at: 1, expect: 'rgb(200, 200, 200) 20px 40px 60px'},
{at: 1.5, expect: 'rgb(255, 255, 255) 29.5px 59px 88.5px, rgba(0, 0, 0, 0) -1px -2px 0px, rgba(0, 0, 0, 0) -2px -4px 0px, rgba(0, 0, 0, 0) -5px -10px 0px, rgba(0, 0, 0, 0) -10px -20px 0px'},
]);
</script>
</body>

View file

@ -41,10 +41,10 @@
<script>
function parseFontSizeInPx(element, pseudoElement) {
const value = CSSNumericValue.parse(getComputedStyle(element, pseudoElement).fontSize);
if (!value || !(value instanceof CSSUnitValue) || value.unit !== 'px')
throw 'Cannot parse width in pixels';
return value.value;
const value = getComputedStyle(element, pseudoElement).fontSize;
if (!value.endsWith('px'))
return NaN;
return parseFloat(value);
}
const testCases = ['before', 'after', 'first-letter', 'first-line', 'marker'];

View file

@ -28,10 +28,10 @@
<script>
function parseWidthInPx(element) {
const value = CSSNumericValue.parse(getComputedStyle(element).width);
if (!value || !(value instanceof CSSUnitValue) || value.unit !== 'px')
throw 'Cannot parse width in pixels';
return value.value;
const value = getComputedStyle(element).width;
if (!value.endsWith('px'))
return NaN;
return parseFloat(value);
}
const testCases = document.querySelectorAll('.test');

View file

@ -0,0 +1,92 @@
<!doctype html>
<title>round() function</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
</style>
<meta name=author content="Tab Atkins-Bittner">
<link rel=help href="https://drafts.csswg.org/css-values-4/#round-func">
<div></div>
<script>
const testEl = document.querySelector("div");
function testRound(testString, expectedString, {base="0px", msg}={}) {
test(()=>{
testEl.style.width = base;
testEl.style.width = testString;
const usedValue = getComputedStyle(testEl).width;
assert_not_equals(usedValue, base);
testEl.style.width = base;
testEl.style.width = expectedString;
const expectedValue = getComputedStyle(testEl).width;
assert_not_equals(expectedValue, base)
assert_equal(usedValue, expectedValue);
}, msg || `${testString} should round to ${expectedString}`);
}
// No-op round should be same as nearest
testRound("round(23px, 10px)", "20px");
testRound("round(18px, 10px)", "20px");
testRound("round(15px, 10px)", "20px");
testRound("round(13px, 10px)", "10px");
testRound("round(-13px, 10px)", "-10px");
testRound("round(-18px, 10px)", "-20px");
// Test nearest
testRound("round(nearest, 23px, 10px)", "20px");
testRound("round(nearest, 18px, 10px)", "20px");
testRound("round(nearest, 15px, 10px)", "20px");
testRound("round(nearest, 13px, 10px)", "10px");
testRound("round(nearest, -13px, 10px)", "-10px");
testRound("round(nearest, -18px, 10px)", "-20px");
// Test down
testRound("round(down, 23px, 10px)", "20px");
testRound("round(down, 18px, 10px)", "10px");
testRound("round(down, 15px, 10px)", "10px");
testRound("round(down, 13px, 10px)", "10px");
testRound("round(down, -13px, 10px)", "-20px");
testRound("round(down, -18px, 10px)", "-20px");
// Test up
testRound("round(up, 23px, 10px)", "30px");
testRound("round(up, 18px, 10px)", "20px");
testRound("round(up, 15px, 10px)", "20px");
testRound("round(up, 13px, 10px)", "20px");
testRound("round(up, -13px, 10px)", "-10px");
testRound("round(up, -18px, 10px)", "-10px");
// Test to-zero
testRound("round(to-zero, 23px, 10px)", "20px");
testRound("round(to-zero, 18px, 10px)", "10px");
testRound("round(to-zero, 15px, 10px)", "10px");
testRound("round(to-zero, 13px, 10px)", "10px");
testRound("round(to-zero, -13px, 10px)", "-10px");
testRound("round(to-zero, -18px, 10px)", "-10px");
// Test a negative step
testRound("round(23px, -10px)", "20px");
testRound("round(18px, -10px)", "20px");
testRound("round(15px, -10px)", "20px");
testRound("round(13px, -10px)", "10px");
testRound("round(-13px, -10px)", "-10px");
testRound("round(-18px, -10px)", "-20px");
// Extreme cases:
// 0 step is NaN
testRound("round(5px, 0px)", "calc(NaN)");
// both infinite is NaN
testRound("round(1px/0, 1px/0)", "calc(NaN)");
// infinite value with finite step is the same infinity
testRound("round(1px/0, 5px)", "calc(infinity * 1px)");
testRound("round(1px/0, -5px)", "calc(infinity * 1px)");
testRound("round(-1px/0, 5px)", "calc(-infinity * 1px)");
testRound("round(-1px/0, -5px)", "calc(-infinity * 1px)");
// finite value with infinite step is same-sign 0
testRound("calc(1/round(5px, 1px/0))", "calc(infinity * 1px)");
testRound("calc(1/round(5px, -1px/0))", "calc(infinity * 1px)");
testRound("calc(1/round(-5px, 1px/0))", "calc(-infinity * 1px)");
testRound("calc(1/round(-5px, -1px/0))", "calc(-infinity * 1px)");
</script>

View file

@ -21,3 +21,7 @@ must give a clear pass condition in their rendering).
Similarly, they should consider the [rendering test guidelines](rendering),
especially those about color, to ensure those running the test don't
incorrectly judge its result.
The screenshot for comparison is taken at the same point as when screenshots
for [reftest comparisons](reftests) are taken, including potentially waiting
for any `class="reftest-wait"` to be removed from the root element.

View file

@ -10,7 +10,6 @@ idl_test(
['dom'],
idlArray => {
idlArray.add_objects({
DOMParser: ['new DOMParser()'],
Element: ['document.createElement("div")'],
Range: ['new Range()'],
XMLSerializer: ['new XMLSerializer()'],

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Forced colors mode - svg defaults reference.
Tests that the default colors for svg elements are correct in high contrast.
</title>
<style>
svg, text, path {
forced-color-adjust: none;
}
</style>
<body>
<svg height="600" width="600">
<text x="0" y="15" fill="WindowText">
This text and the triangle below should have a WindowText fill in forced colors mode.
</text>
<path fill="WindowText" d="M150 0 L75 200 L225 200 Z" />
</svg>
</body>

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Forced colors mode - svg defaults.
Tests that the default colors for svg elements are correct in high contrast.
</title>
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
<link rel=match href="forced-colors-mode-26-ref.html">
<body>
<svg height="600" width="600">
<text x="0" y="15" fill="currentcolor">
This text and the triangle below should have a WindowText fill in forced colors mode.
</text>
<path d="M150 0 L75 200 L225 200 Z" />
</svg>
</body>

View file

@ -197,6 +197,7 @@ idl_test(
BeforeUnloadEvent: [],
ApplicationCache: ['window.applicationCache'],
WindowModal: [],
DOMParser: ['new DOMParser()'],
Navigator: ['window.navigator'],
External: ['window.external'],
DataTransfer: [],

View file

@ -8,6 +8,10 @@
<script src="/resources/testharnessreport.js"></script>
<script src="support/validator.js"></script>
<div id="log"></div>
<form>
<input id="messagetest" type="checkbox" required="" disabled="">
</form>
<script>
var testElements = [
{
@ -170,4 +174,8 @@
];
validator.run_test(testElements, "valueMissing");
test(() => {
assert_equals(document.getElementById("messagetest").validationMessage, '');
}, 'validationMessage should return empty string when willValidate is false and valueMissing is true');
</script>

View file

@ -3,20 +3,6 @@
// (https://github.com/tidoust/reffy-reports)
// Source: DOM Parsing and Serialization (https://w3c.github.io/DOM-Parsing/)
[Exposed=Window]
interface DOMParser {
constructor();
[NewObject] Document parseFromString(DOMString str, SupportedType type);
};
enum SupportedType {
"text/html",
"text/xml",
"application/xml",
"application/xhtml+xml",
"image/svg+xml"
};
[Exposed=Window]
interface XMLSerializer {
constructor();

View file

@ -1981,6 +1981,21 @@ interface mixin WindowOrWorkerGlobalScope {
Window includes WindowOrWorkerGlobalScope;
WorkerGlobalScope includes WindowOrWorkerGlobalScope;
[Exposed=Window]
interface DOMParser {
constructor();
[NewObject] Document parseFromString(DOMString string, DOMParserSupportedType type);
};
enum DOMParserSupportedType {
"text/html",
"text/xml",
"application/xml",
"application/xhtml+xml",
"image/svg+xml"
};
[Exposed=Window]
interface Navigator {
// objects implementing this interface also implement the interfaces given below

View file

@ -23,12 +23,12 @@ interface MediaSource : EventTarget {
attribute EventHandler onsourceopen;
attribute EventHandler onsourceended;
attribute EventHandler onsourceclose;
SourceBuffer addSourceBuffer(DOMString type);
void removeSourceBuffer(SourceBuffer sourceBuffer);
void endOfStream(optional EndOfStreamError error);
void setLiveSeekableRange(double start, double end);
void clearLiveSeekableRange();
static boolean isTypeSupported(DOMString type);
SourceBuffer addSourceBuffer (DOMString type);
void removeSourceBuffer (SourceBuffer sourceBuffer);
void endOfStream (optional EndOfStreamError error);
void setLiveSeekableRange (double start, double end);
void clearLiveSeekableRange ();
static boolean isTypeSupported (DOMString type);
};
enum AppendMode {
@ -51,9 +51,9 @@ interface SourceBuffer : EventTarget {
attribute EventHandler onupdateend;
attribute EventHandler onerror;
attribute EventHandler onabort;
void appendBuffer(BufferSource data);
void abort();
void remove(double start, unrestricted double end);
void appendBuffer (BufferSource data);
void abort ();
void remove (double start, unrestricted double end);
};
interface SourceBufferList : EventTarget {
@ -65,7 +65,7 @@ interface SourceBufferList : EventTarget {
[Exposed=Window]
partial interface URL {
static DOMString createObjectURL(MediaSource mediaSource);
static DOMString createObjectURL (MediaSource mediaSource);
};
partial interface AudioTrack {

View file

@ -0,0 +1,24 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Visual Viewport API (https://wicg.github.io/visual-viewport/)
partial interface Window {
[SameObject, Replaceable] readonly attribute VisualViewport visualViewport;
};
interface VisualViewport : EventTarget {
readonly attribute double offsetLeft;
readonly attribute double offsetTop;
readonly attribute double pageLeft;
readonly attribute double pageTop;
readonly attribute double width;
readonly attribute double height;
readonly attribute double scale;
attribute EventHandler onresize;
attribute EventHandler onscroll;
};

View file

@ -1,3 +1,8 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Web Locks API (https://wicg.github.io/web-locks/)
[SecureContext]
interface mixin NavigatorLocks {
readonly attribute LockManager locks;

View file

@ -142,8 +142,7 @@ enum AuthenticatorTransport {
"usb",
"nfc",
"ble",
"internal",
"lightning"
"internal"
};
typedef long COSEAlgorithmIdentifier;

View file

@ -0,0 +1,12 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into reffy-reports
// (https://github.com/tidoust/reffy-reports)
// Source: Scalable Video Coding (SVC) Extension for WebRTC (https://w3c.github.io/webrtc-svc/)
partial dictionary RTCRtpEncodingParameters {
DOMString scalabilityMode;
};
partial dictionary RTCRtpCodecCapability {
sequence<DOMString> scalabilityModes;
};

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<script>
promise_test(async t => {
let portal = document.createElement('portal');
document.body.appendChild(portal);
t.add_cleanup(() => { document.body.removeChild(portal); });
await promise_rejects(t, 'InvalidStateError', portal.activate());
}, "A portal that has never been navigated cannot be activated");
promise_test(async t => {
let portal = document.createElement('portal');
document.body.appendChild(portal);
t.add_cleanup(() => { document.body.removeChild(portal); });
// We use a status of 204 (No Content) as that couldn't possibly mature.
portal.src = "resources/204-no-content.asis";
await promise_rejects(t, 'InvalidStateError', portal.activate());
}, "A portal that has not completed an initial navigation cannot be activated");
</script>
</body>

View file

@ -17,6 +17,7 @@ promise_test(async () => {
const portal = w.document.createElement('portal');
portal.src = new URL('resources/simple-portal.html', location.href);
w.document.body.appendChild(portal);
await nextEvent(portal, 'load');
const pagehideFired = nextEvent(w, 'pagehide');
const unloadFired = nextEvent(w, 'unload');
await portal.activate();

View file

@ -0,0 +1 @@
HTTP/1.1 204 No Content

View file

@ -5,10 +5,11 @@ function nextEvent(target, type) {
return new Promise((resolve, reject) => target.addEventListener(type, e => resolve(e), {once: true}));
}
onload = function() {
onload = async function() {
const portal = document.createElement('portal');
portal.src = new URL('simple-portal.html', location.href);
document.body.appendChild(portal);
await nextEvent(portal, 'load');
let firedEvents = [];
for (let type of ['pagehide', 'unload']) {
@ -19,6 +20,6 @@ onload = function() {
}
portal.activate();
}
};
</script>
</body>

View file

@ -64,6 +64,8 @@ def get_timeout_multiplier(test_type, run_info_data, **kwargs):
# https://bugzilla.mozilla.org/show_bug.cgi?id=1538725
elif run_info_data["os"] == "win" and run_info_data["processor"] == "aarch64":
return 4
elif run_info_data.get("ccov"):
return 2
return 1

View file

@ -9,10 +9,11 @@ import subprocess
import tarfile
import tempfile
import time
from cStringIO import StringIO as CStringIO
import requests
from six.moves import cStringIO as StringIO
from .base import Browser, ExecutorBrowser, require_arg
from .base import get_timeout_multiplier # noqa: F401
from ..executors import executor_kwargs as base_executor_kwargs
@ -124,7 +125,7 @@ def env_options():
def get_tar(url, dest):
resp = requests.get(url, stream=True)
resp.raise_for_status()
with tarfile.open(fileobj=CStringIO(resp.raw.read())) as f:
with tarfile.open(fileobj=StringIO(resp.raw.read())) as f:
f.extractall(path=dest)

View file

@ -1,9 +1,10 @@
import sys
from os.path import join, dirname
import mock
import pytest
from os.path import join, dirname
sys.path.insert(0, join(dirname(__file__), "..", "..", ".."))
sauce = pytest.importorskip("wptrunner.browsers.sauce")
@ -95,7 +96,7 @@ def test_sauceconnect_cleanup():
sleep.assert_called()
@pytest.mark.xfail(sys.version_info >= (3,), reason="fails on Py3")
def test_sauceconnect_failure_never_ready():
with mock.patch.object(sauce.SauceConnect, "upload_prerun_exec"),\
mock.patch.object(sauce.subprocess, "Popen") as Popen,\

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "cross-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "cross-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to cross-https origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "cross-https",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "same-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "same-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to same-https origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "same-https",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-module to same-http-downgrade origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "same-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-module",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-module to same-http-downgrade origin and no-redirect redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "same-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-module",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-module to same-https origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "same-https",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-module",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "cross-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "cross-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-https origin and downgrade redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "cross-https",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and downgrade redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "same-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and no-redirect redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "same-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-https origin and downgrade redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "same-https",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and downgrade redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "same-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-module",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and no-redirect redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "same-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-module",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: With upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="With upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-https origin and downgrade redirection from https context.">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "allowed",
"origin": "same-https",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "iframe-blank"
}
],
"source_scheme": "https",
"subresource": "sharedworker-module",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "cross-http-downgrade",
"redirection": "downgrade",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "srcdoc"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! Generated by `common/security-features/tools/generate.py --spec upgrade-insecure-requests/` -->
<html>
<head>
<title>Upgrade-Insecure-Requests: No upgrade-insecure-request</title>
<meta charset='utf-8'>
<meta name="description" content="No upgrade-insecure-request">
<link rel="author" title="Kristijan Burnik" href="burnik@chromium.org">
<link rel="help" href="https://w3c.github.io/webappsec-upgrade-insecure-requests/">
<meta name="assert" content="Upgrade-Insecure-Requests: Expects blocked for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<script src="../../../../generic/test-case.sub.js"></script>
</head>
<body>
<script>
TestCase(
{
"expectation": "blocked",
"origin": "cross-http-downgrade",
"redirection": "no-redirect",
"source_context_list": [
{
"policyDeliveries": [],
"sourceContextType": "srcdoc"
}
],
"source_scheme": "https",
"subresource": "sharedworker-import-data",
"subresource_policy_deliveries": []
},
document.querySelector("meta[name=assert]").content,
new SanityChecker()
).start();
</script>
<div id="log"></div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more