diff options
49 files changed, 2886 insertions, 56 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 8a7ba34a58a..ecadcd6f001 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -320758,18 +320758,48 @@ {} ] ], + "css/css-backgrounds/animations/border-bottom-left-radius-composition.html": [ + [ + "css/css-backgrounds/animations/border-bottom-left-radius-composition.html", + {} + ] + ], + "css/css-backgrounds/animations/border-bottom-right-radius-composition.html": [ + [ + "css/css-backgrounds/animations/border-bottom-right-radius-composition.html", + {} + ] + ], + "css/css-backgrounds/animations/border-bottom-width-composition.html": [ + [ + "css/css-backgrounds/animations/border-bottom-width-composition.html", + {} + ] + ], "css/css-backgrounds/animations/border-color-interpolation.html": [ [ "css/css-backgrounds/animations/border-color-interpolation.html", {} ] ], + "css/css-backgrounds/animations/border-image-outset-composition.html": [ + [ + "css/css-backgrounds/animations/border-image-outset-composition.html", + {} + ] + ], "css/css-backgrounds/animations/border-image-outset-interpolation.html": [ [ "css/css-backgrounds/animations/border-image-outset-interpolation.html", {} ] ], + "css/css-backgrounds/animations/border-image-slice-composition.html": [ + [ + "css/css-backgrounds/animations/border-image-slice-composition.html", + {} + ] + ], "css/css-backgrounds/animations/border-image-slice-interpolation-stability.html": [ [ "css/css-backgrounds/animations/border-image-slice-interpolation-stability.html", @@ -320788,18 +320818,54 @@ {} ] ], + "css/css-backgrounds/animations/border-image-width-composition.html": [ + [ + "css/css-backgrounds/animations/border-image-width-composition.html", + {} + ] + ], "css/css-backgrounds/animations/border-image-width-interpolation.html": [ [ "css/css-backgrounds/animations/border-image-width-interpolation.html", {} ] ], + "css/css-backgrounds/animations/border-left-width-composition.html": [ + [ + "css/css-backgrounds/animations/border-left-width-composition.html", + {} + ] + ], "css/css-backgrounds/animations/border-radius-interpolation.html": [ [ "css/css-backgrounds/animations/border-radius-interpolation.html", {} ] ], + "css/css-backgrounds/animations/border-right-width-composition.html": [ + [ + "css/css-backgrounds/animations/border-right-width-composition.html", + {} + ] + ], + "css/css-backgrounds/animations/border-top-left-radius-composition.html": [ + [ + "css/css-backgrounds/animations/border-top-left-radius-composition.html", + {} + ] + ], + "css/css-backgrounds/animations/border-top-right-radius-composition.html": [ + [ + "css/css-backgrounds/animations/border-top-right-radius-composition.html", + {} + ] + ], + "css/css-backgrounds/animations/border-top-width-composition.html": [ + [ + "css/css-backgrounds/animations/border-top-width-composition.html", + {} + ] + ], "css/css-backgrounds/animations/border-width-interpolation.html": [ [ "css/css-backgrounds/animations/border-width-interpolation.html", @@ -330786,18 +330852,36 @@ {} ] ], + "css/css-text/animations/letter-spacing-composition.html": [ + [ + "css/css-text/animations/letter-spacing-composition.html", + {} + ] + ], "css/css-text/animations/letter-spacing-interpolation.html": [ [ "css/css-text/animations/letter-spacing-interpolation.html", {} ] ], + "css/css-text/animations/text-indent-composition.html": [ + [ + "css/css-text/animations/text-indent-composition.html", + {} + ] + ], "css/css-text/animations/text-indent-interpolation.html": [ [ "css/css-text/animations/text-indent-interpolation.html", {} ] ], + "css/css-text/animations/word-spacing-composition.html": [ + [ + "css/css-text/animations/word-spacing-composition.html", + {} + ] + ], "css/css-text/animations/word-spacing-interpolation.html": [ [ "css/css-text/animations/word-spacing-interpolation.html", @@ -338400,12 +338484,24 @@ {} ] ], + "css/motion/animation/offset-anchor-composition.html": [ + [ + "css/motion/animation/offset-anchor-composition.html", + {} + ] + ], "css/motion/animation/offset-anchor-interpolation.html": [ [ "css/motion/animation/offset-anchor-interpolation.html", {} ] ], + "css/motion/animation/offset-distance-composition.html": [ + [ + "css/motion/animation/offset-distance-composition.html", + {} + ] + ], "css/motion/animation/offset-distance-interpolation.html": [ [ "css/motion/animation/offset-distance-interpolation.html", @@ -338418,6 +338514,12 @@ {} ] ], + "css/motion/animation/offset-path-composition.html": [ + [ + "css/motion/animation/offset-path-composition.html", + {} + ] + ], "css/motion/animation/offset-path-interpolation-001.html": [ [ "css/motion/animation/offset-path-interpolation-001.html", @@ -338448,12 +338550,24 @@ {} ] ], + "css/motion/animation/offset-position-composition.html": [ + [ + "css/motion/animation/offset-position-composition.html", + {} + ] + ], "css/motion/animation/offset-position-interpolation.html": [ [ "css/motion/animation/offset-position-interpolation.html", {} ] ], + "css/motion/animation/offset-rotate-composition.html": [ + [ + "css/motion/animation/offset-rotate-composition.html", + {} + ] + ], "css/motion/animation/offset-rotate-interpolation.html": [ [ "css/motion/animation/offset-rotate-interpolation.html", @@ -342134,6 +342248,12 @@ {} ] ], + "domxpath/lexical-structure.html": [ + [ + "domxpath/lexical-structure.html", + {} + ] + ], "domxpath/node-sets.html": [ [ "domxpath/node-sets.html", @@ -559551,14 +559671,34 @@ "f6a480c7bd2ccc4a6c46fa2eade5e7231fab4938", "testharness" ], + "css/css-backgrounds/animations/border-bottom-left-radius-composition.html": [ + "87042d1969d59b6865761c60beaeba5219c6148c", + "testharness" + ], + "css/css-backgrounds/animations/border-bottom-right-radius-composition.html": [ + "2b5a72df6914f571ca00418484d9f782cd46aa63", + "testharness" + ], + "css/css-backgrounds/animations/border-bottom-width-composition.html": [ + "5377c0ab42b44623c1d7e0aa81344345db795f68", + "testharness" + ], "css/css-backgrounds/animations/border-color-interpolation.html": [ "3e7843b8a07577970279ef9a4e14bfb83c1816f0", "testharness" ], + "css/css-backgrounds/animations/border-image-outset-composition.html": [ + "e3311711753e34295eb3c7c83d5aee3d4cd684aa", + "testharness" + ], "css/css-backgrounds/animations/border-image-outset-interpolation.html": [ "aebadbbafb236a090aa543ecf82e5661bee7de74", "testharness" ], + "css/css-backgrounds/animations/border-image-slice-composition.html": [ + "d0ccb1a3a64f2b3fe75b4957dc0a75036c3cd392", + "testharness" + ], "css/css-backgrounds/animations/border-image-slice-interpolation-stability.html": [ "26431334e4acf13f6c095868a0e9cee6926a9ef1", "testharness" @@ -559571,14 +559711,38 @@ "60dcfceddc791737487fab07ea7035fac40856d6", "testharness" ], + "css/css-backgrounds/animations/border-image-width-composition.html": [ + "0d0a1dc4ed263c80b472e3ba241fffeaf771d6aa", + "testharness" + ], "css/css-backgrounds/animations/border-image-width-interpolation.html": [ "ea138201b15805cd86d8a63ed37b401b103bfee2", "testharness" ], + "css/css-backgrounds/animations/border-left-width-composition.html": [ + "1b90effbc32cd56e9120fec92158f518a67d6ae8", + "testharness" + ], "css/css-backgrounds/animations/border-radius-interpolation.html": [ "195469e83164c965ee33b6277983870100bda111", "testharness" ], + "css/css-backgrounds/animations/border-right-width-composition.html": [ + "aa9e1dcc66764c2ec8c072cbf9365529e3729d88", + "testharness" + ], + "css/css-backgrounds/animations/border-top-left-radius-composition.html": [ + "1c2056bc010a82228416983897c63676ac3aeb0f", + "testharness" + ], + "css/css-backgrounds/animations/border-top-right-radius-composition.html": [ + "9a26d51375e78bfe54ba7a3689f6b72fe6c36417", + "testharness" + ], + "css/css-backgrounds/animations/border-top-width-composition.html": [ + "475c3930b9d1704267267ff30d747b266ea3d851", + "testharness" + ], "css/css-backgrounds/animations/border-width-interpolation.html": [ "11f92f41652a9f1b167c5a399849d1e1e61c4df7", "testharness" @@ -598567,14 +598731,26 @@ "e7914c0fc7ff9e6999f8847dc1800968472483f2", "support" ], + "css/css-text/animations/letter-spacing-composition.html": [ + "c1b614b5ebaa5bc190a080bd8da5694096a2be20", + "testharness" + ], "css/css-text/animations/letter-spacing-interpolation.html": [ "7d4958113915913bb8a3a5af13f5cee90b080825", "testharness" ], + "css/css-text/animations/text-indent-composition.html": [ + "57c528ca271646a284048bb49e11025ac25469da", + "testharness" + ], "css/css-text/animations/text-indent-interpolation.html": [ "2269fdfa5b60f6f4a8d63a7f777e6abbf499c4b7", "testharness" ], + "css/css-text/animations/word-spacing-composition.html": [ + "17aacaef1506eddbc8ef40ade114a856310a508e", + "testharness" + ], "css/css-text/animations/word-spacing-interpolation.html": [ "ffd6bb476ad87976a1183cde70a10892bab77982", "testharness" @@ -626311,10 +626487,18 @@ "20835b48397f136a30b82a62654d389cad326315", "support" ], + "css/motion/animation/offset-anchor-composition.html": [ + "53210fdf38a86ec9f4e852a33527fc88b1eb9fe3", + "testharness" + ], "css/motion/animation/offset-anchor-interpolation.html": [ "9c69c0f0bed2b14c02091ccf63f50ace61f2eb2a", "testharness" ], + "css/motion/animation/offset-distance-composition.html": [ + "4ff6e95b05792505b2f98c511f5a80d64e86624d", + "testharness" + ], "css/motion/animation/offset-distance-interpolation.html": [ "bc0c094a8e5305c970f0a4d44ee8a3726d2965a1", "testharness" @@ -626323,6 +626507,10 @@ "2ee011bd77a975e9b566d24658995693c574f620", "testharness" ], + "css/motion/animation/offset-path-composition.html": [ + "eedd363efafe05b870314ad797d9dc63f2c7409c", + "testharness" + ], "css/motion/animation/offset-path-interpolation-001.html": [ "5b90813bb591d0aa7e17eeddcb1a9e3a908670f0", "testharness" @@ -626343,10 +626531,18 @@ "9924106f4b75ede89e5270a76fe217f85ef20050", "testharness" ], + "css/motion/animation/offset-position-composition.html": [ + "0ee517a73a8e9e673a83a0f81bbdea98d6a3d808", + "testharness" + ], "css/motion/animation/offset-position-interpolation.html": [ "9faaf9487afb20059046e95a8cd5b3a796e8fd42", "testharness" ], + "css/motion/animation/offset-rotate-composition.html": [ + "bf60c19abeffafa36c50f1d1da0e9f9d64b1a151", + "testharness" + ], "css/motion/animation/offset-rotate-interpolation.html": [ "55845108ebf5f3c42a8b0532121199136160d695", "testharness" @@ -638440,7 +638636,7 @@ "testharness" ], "custom-elements/pseudo-class-defined.html": [ - "60d88cffb517c0062db338e5ba89e98f7748c280", + "24cb5fe4cd392246e292d255c0858aa7f2b5dd0e", "testharness" ], "custom-elements/range-and-constructors.html": [ @@ -638688,7 +638884,7 @@ "testharness" ], "custom-elements/upgrading.html": [ - "d6b8ed387540ae9572774e5557b1168f844a017f", + "ac0fdff7a2111507632ac2c36fd5c60a6f832b20", "testharness" ], "custom-elements/upgrading/Document-importNode.html": [ @@ -640935,6 +641131,10 @@ "0805bd682b48461588250a22018a6bd90990d002", "support" ], + "domxpath/lexical-structure.html": [ + "f93820b0e4176d8c96518268b6453024dd43f1df", + "testharness" + ], "domxpath/node-sets.html": [ "a47314fb0869885db01fd13bd8aa35687e283d0d", "testharness" @@ -663380,7 +663580,7 @@ "testharness" ], "html/semantics/forms/the-input-element/time.html": [ - "ad4e38cbc74f50dc764fc958b8cf68f4dd790cbe", + "ec815d4cb302cfb68db7976ba79bec1de762b7b7", "testharness" ], "html/semantics/forms/the-input-element/type-change-file-to-text-crash.html": [ @@ -670716,7 +670916,7 @@ "support" ], "interfaces/webaudio.idl": [ - "674673d90b1e8fd3e6d182f25289948fc0290cac", + "9491090337c342fc06a35a97ee6dc6887829c1bc", "support" ], "interfaces/webauthn.idl": [ @@ -670752,7 +670952,7 @@ "support" ], "interfaces/webrtc.idl": [ - "e30fc38fd003a283ebb4184786d181c5b4293dc4", + "49ed6bb0333020a6eee8d5411ae88a4e3a7dbd9a", "support" ], "interfaces/webusb.idl": [ @@ -699584,7 +699784,7 @@ "support" ], "resources/chromium/nfc-mock.js": [ - "7eee8ce04c4630ae82d2520def13cfa107b7ef13", + "4bafc9b0ad8f7f8ad4185914fffef16949695ab3", "support" ], "resources/chromium/sensor.mojom.js": [ @@ -722420,7 +722620,7 @@ "testharness" ], "web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html": [ - "0522c43b16a881a14b339294e5ed56b8ae064f92", + "a1f9e4f3acea04337dd0147fbfa373f950a67409", "testharness" ], "web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html": [ @@ -722636,7 +722836,7 @@ "testharness" ], "web-nfc/NDEFRecord_constructor.https.html": [ - "d46503ab172bf358bff005ce8c2c56941e333eea", + "c62ea7b0d620b6f38f589c751329b40be096e557", "testharness" ], "web-nfc/NDEFWriter-document-hidden-manual.https.html": [ diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-bottom-left-radius-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-bottom-left-radius-composition.html.ini new file mode 100644 index 00000000000..737e7291c6f --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-bottom-left-radius-composition.html.ini @@ -0,0 +1,64 @@ +[border-bottom-left-radius-composition.html] + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.5) should be [150px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0) should be [100px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0) should be [100px 120px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1) should be [200px 120px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (-0.25) should be [75px 220px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1.25) should be [225px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1.25) should be [225px 220px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.25) should be [125px 140px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.25) should be [125px 180px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.75) should be [175px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.75) should be [175px 140px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (-0.25) should be [75px 100px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0) should be [100px 200px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1.25) should be [225px 100px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.75) should be [175px 180px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (-0.25) should be [75px\]] + expected: FAIL + + [Compositing: property <border-bottom-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.25) should be [125px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-bottom-right-radius-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-bottom-right-radius-composition.html.ini new file mode 100644 index 00000000000..1604dd021c5 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-bottom-right-radius-composition.html.ini @@ -0,0 +1,64 @@ +[border-bottom-right-radius-composition.html] + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.75) should be [175px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.75) should be [175px 180px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1.25) should be [225px 100px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.5) should be [150px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0) should be [100px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.25) should be [125px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.25) should be [125px 180px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1.25) should be [225px 220px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (-0.25) should be [75px 220px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0) should be [100px 120px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.75) should be [175px 140px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0) should be [100px 200px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.25) should be [125px 140px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1) should be [200px 120px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1.25) should be [225px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (-0.25) should be [75px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-bottom-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (-0.25) should be [75px 100px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-image-outset-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-image-outset-composition.html.ini new file mode 100644 index 00000000000..da3928e72bf --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-image-outset-composition.html.ini @@ -0,0 +1,169 @@ +[border-image-outset-composition.html] + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (1) should be [300 500 800 700\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (1.25) should be [127 129 131 133\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (1) should be [100px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0.5) should be [50px 50\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (1.25) should be [325 550 900 750\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0) should be [100px 150px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (0.75) should be [77 79 81px 83px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (1.25) should be [200px 250\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (1.25) should be [127 129 131px 133px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (1) should be [102 104 106px 108px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0.75) should be [275 450 700 650\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (-0.25) should be [100 150px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (0.25) should be [27 29 31px 33px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (1.25) should be [225 225px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (1.25) should be [75px 75px 50px 50px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (0.5) should be [52 54 56px 58px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.5) should be [52 54 56 58\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (-0.25) should be [125px 125\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (0.25) should be [100 150px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0.25) should be [175px 175px 250px 250px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (1) should be [200 200px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (0.75) should be [200px 250\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0.75) should be [175px 225px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (-0.25) should be [75px 125px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0.25) should be [225 350 500 550\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0.75) should be [175 175px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0.5) should be [150px 150px 200px 200px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0.25) should be [125 125px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0) should be [100 100px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0.25) should be [125px 175px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (1.25) should be [0px 0\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0) should be [200 300 400 500\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0.5) should be [150 150px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (0) should be [2 4 6px 8px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0.5) should be [250 400 600 600\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (1) should be [0px 0\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (0) should be [100 150px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.75) should be [77 79 81 83\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0.75) should be [25px 25\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0) should be [100px 100\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (-0.25) should be [75 75px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0.75) should be [125px 125px 150px 150px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (0.5) should be [200px 250\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (-0.25) should be [0\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (-0.25) should be [175 250 300 450\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (1) should be [102 104 106 108\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (-0.25) should be [225px 225px 350px 350px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (1) should be [200px 250px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (1.25) should be [225px 275px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0) should be [2 4 6 8\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100 150px\] to add [200px 250\] at (1) should be [200px 250\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0) should be [200px 200px 300px 300px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3px 4px\] from add [1 2 3px 4px\] to add [101 102 103px 104px\] at (-0.25) should be [0 0 0px 0px\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.25) should be [27 29 31 33\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0.25) should be [75px 75\]] + expected: FAIL + + [Compositing: property <border-image-outset> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0.5) should be [150px 200px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-image-slice-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-image-slice-composition.html.ini new file mode 100644 index 00000000000..3b247e9bf05 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-image-slice-composition.html.ini @@ -0,0 +1,169 @@ +[border-image-slice-composition.html] + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (0.75) should be [125% 125% 150% 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (0.5) should be [150% 150% 200% 200%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (-0.25) should be [225% 225% 350% 350%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.5) should be [52 54 56 58\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (0.75) should be [25% 25\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (1.25) should be [325 550 900 750 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (1.25) should be [0% 0\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (-0.25) should be [75 75%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (0.25) should be [100 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (0.75) should be [200% 250% fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (1) should be [200 200%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (1.25) should be [127 129 131 133\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (0.25) should be [225 350 500 550 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.25) should be [27 29 31 33\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (1.25) should be [200% 250% fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (1) should be [102 104 106 108\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (0.5) should be [52 54 56% 58%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (0.5) should be [250 400 600 600 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (0.25) should be [75% 75\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (-0.25) should be [100 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (1) should be [0% 0\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (1) should be [300 500 800 700 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (0.5) should be [200% 250% fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (-0.25) should be [175 250 300 450 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (0.25) should be [175% 175% 250% 250%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (0.5) should be [50% 50\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (0.75) should be [77 79 81% 83%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (0.75) should be [175 175%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (0.75) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (1.25) should be [75% 75% 50% 50%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (0.25) should be [27 29 31% 33%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.75) should be [77 79 81 83\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (-0.25) should be [0 0 0% 0%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0) should be [2 4 6 8\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (0.25) should be [100% 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (1) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (1.25) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (0) should be [2 4 6% 8%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (0) should be [200 300 400 500 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (0.5) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (1) should be [200% 250% fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (0) should be [200% 200% 300% 300%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (1.25) should be [127 129 131% 133%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (0.5) should be [150 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20%\] from add [190% 180% 290% 280%\] to add [90% 80%\] at (1) should be [100%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (-0.25) should be [125% 125\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100 150%\] to add [200% 250\] at (0) should be [100 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (1.25) should be [225 225%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (-0.25) should be [0\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (0.25) should be [125 125%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10% 20\] from add [90% 80\] to replace [0% 0 0% 0\] at (0) should be [100% 100\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (-0.25) should be [100% 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [1 2 3% 4%\] from add [1 2 3% 4%\] to add [101 102 103% 104%\] at (1) should be [102 104 106% 108%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [100 200 300 400 fill\] from add [100 fill\] to add [200 300 500 fill\] at (0.75) should be [275 450 700 650 fill\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20\] from add [100% 150%\] to add [200% 250% fill\] at (0) should be [100% 150%\]] + expected: FAIL + + [Compositing: property <border-image-slice> underlying [10 20%\] from replace [100 100%\] to add [190 180%\] at (0) should be [100 100%\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-image-width-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-image-width-composition.html.ini new file mode 100644 index 00000000000..82af1c481b6 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-image-width-composition.html.ini @@ -0,0 +1,169 @@ +[border-image-width-composition.html] + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.75) should be [77 79 81 83\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (-0.25) should be [0 0 0px 0%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (0.5) should be [52 54 56px 58%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (1.25) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (0.25) should be [27 29 31px 33%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0) should be [2 4 6 8\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (1.25) should be [225px 275px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (0.25) should be [100 150px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (1) should be [102 104 106 108\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0.75) should be [175 175px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0.75) should be [275 450 700 650\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0.25) should be [175px 175px 250px 250px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0.25) should be [225 350 500 550\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (1.25) should be [75px 75px 50px 50px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (-0.25) should be [125px 125\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (1.25) should be [225 225px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0.5) should be [150px 200px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (1) should be [0px 0\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (1) should be [300 500 800 700\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0.75) should be [125px 125px 150px 150px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (1) should be [200px 250px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (-0.25) should be [75px 125px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (1) should be [102 104 106px 108%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (1) should be [200 200px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (0) should be [2 4 6px 8%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0.25) should be [75px 75\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (-0.25) should be [225px 225px 350px 350px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (0.5) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (1.25) should be [325 550 900 750\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (-0.25) should be [100 150px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0) should be [200px 200px 300px 300px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0.25) should be [125 125px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (1) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0.75) should be [175px 225px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.25) should be [27 29 31 33\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (0.75) should be [200% 250\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0.5) should be [250 400 600 600\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (1.25) should be [127 129 131px 133%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (-0.25) should be [175 250 300 450\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (0.5) should be [150px 150px 200px 200px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (1.25) should be [0px 0\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0) should be [100px 150px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100px 150px\] to add [200px 250px\] at (0.25) should be [125px 175px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3px 4%\] from add [1 2 3px 4%\] to add [101 102 103px 104%\] at (0.75) should be [77 79 81px 83%\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [100 200 300 400\] from add [100\] to add [200 300 500\] at (0) should be [200 300 400 500\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20\] from add [100 150px\] to add [200% 250\] at (0) should be [100 150px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (-0.25) should be [75 75px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (0.5) should be [52 54 56 58\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (-0.25) should be [0\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0.5) should be [150 150px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10 20px\] from replace [100 100px\] to add [190 180px\] at (0) should be [100 100px\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0.75) should be [25px 25\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0) should be [100px 100\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20\] from add [90px 80\] to replace [0px 0 0px 0\] at (0.5) should be [50px 50\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [1 2 3 4\] from add [1 2 3 4\] to add [101 102 103 104\] at (1.25) should be [127 129 131 133\]] + expected: FAIL + + [Compositing: property <border-image-width> underlying [10px 20px\] from add [190px 180px 290px 280px\] to add [90px 80px\] at (1) should be [100px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-top-left-radius-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-top-left-radius-composition.html.ini new file mode 100644 index 00000000000..25995a6b87f --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-top-left-radius-composition.html.ini @@ -0,0 +1,64 @@ +[border-top-left-radius-composition.html] + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1.25) should be [225px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.25) should be [125px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.25) should be [125px 140px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0) should be [100px 120px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1.25) should be [225px 100px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0) should be [100px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0) should be [100px 200px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.75) should be [175px 140px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.75) should be [175px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (-0.25) should be [75px 220px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.25) should be [125px 180px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (-0.25) should be [75px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (-0.25) should be [75px 100px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.75) should be [175px 180px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1) should be [200px 120px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.5) should be [150px\]] + expected: FAIL + + [Compositing: property <border-top-left-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1.25) should be [225px 220px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-backgrounds/animations/border-top-right-radius-composition.html.ini b/tests/wpt/metadata/css/css-backgrounds/animations/border-top-right-radius-composition.html.ini new file mode 100644 index 00000000000..682ccbf3446 --- /dev/null +++ b/tests/wpt/metadata/css/css-backgrounds/animations/border-top-right-radius-composition.html.ini @@ -0,0 +1,64 @@ +[border-top-right-radius-composition.html] + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1.25) should be [225px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.25) should be [125px 180px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0) should be [100px 120px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.5) should be [150px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (-0.25) should be [75px 100px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1.25) should be [225px 100px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (1.25) should be [225px 220px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.75) should be [175px 140px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0.5) should be [150px 160px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (1) should be [200px 120px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (0) should be [100px 200px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.25) should be [125px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0.75) should be [175px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (0) should be [100px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.25) should be [125px 140px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 40px\] from add [60px 60px\] to add [160px 160px\] at (-0.25) should be [75px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 140px\] from replace [100px 120px\] to add [160px 60px\] at (0.75) should be [175px 180px\]] + expected: FAIL + + [Compositing: property <border-top-right-radius> underlying [40px 60px\] from add [60px 140px\] to replace [200px 120px\] at (-0.25) should be [75px 220px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/animations/letter-spacing-composition.html.ini b/tests/wpt/metadata/css/css-text/animations/letter-spacing-composition.html.ini new file mode 100644 index 00000000000..e27601fb798 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/animations/letter-spacing-composition.html.ini @@ -0,0 +1,46 @@ +[letter-spacing-composition.html] + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to add [200px\] at (-0.3) should be [120px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [100px\] from add [10px\] to add [2px\] at (0.5) should be [106px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [100px\] from add [10px\] to add [2px\] at (-0.5) should be [114px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to add [200px\] at (0) should be [150px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to add [200px\] at (0.5) should be [200px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to add [200px\] at (1) should be [250px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (1.5) should be [225px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [100px\] from add [10px\] to add [2px\] at (1.5) should be [98px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (0.5) should be [175px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [100px\] from add [10px\] to add [2px\] at (0) should be [110px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to add [200px\] at (1.5) should be [300px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (0) should be [150px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [100px\] from add [10px\] to add [2px\] at (1) should be [102px\]] + expected: FAIL + + [Compositing: property <letter-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (-0.3) should be [135px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/animations/text-indent-composition.html.ini b/tests/wpt/metadata/css/css-text/animations/text-indent-composition.html.ini new file mode 100644 index 00000000000..bf9cc8cda70 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/animations/text-indent-composition.html.ini @@ -0,0 +1,94 @@ +[text-indent-composition.html] + [Compositing: property <text-indent> underlying [250px\] from add [50px each-line hanging\] to replace [150px hanging each-line\] at (0.6) should be [110px hanging each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px each-line\] from add [50px each-line\] to replace [150px hanging\] at (1) should be [150px hanging\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (0) should be [-100%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px each-line hanging\] to replace [150px hanging each-line\] at (0.3) should be [80px hanging each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (0.6) should be [20%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (0.3) should be [-40%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px each-line hanging\] to replace [150px hanging each-line\] at (0) should be [50px hanging each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px each-line\] from add [50px each-line\] to replace [150px hanging\] at (1.5) should be [150px hanging\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [100%\] from add [50px\] to add [150px\] at (0.6) should be [calc(100% + 110px)\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px each-line hanging\] to replace [150px hanging each-line\] at (1) should be [150px hanging each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px\] to replace [100px\] at (0.6) should be [180px\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [100%\] from add [50px\] to add [150px\] at (-0.3) should be [calc(100% + 20px)\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [100%\] from add [50px\] to add [150px\] at (0.3) should be [calc(100% + 80px)\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px each-line hanging\] to replace [150px hanging each-line\] at (1.5) should be [200px hanging each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (1.5) should be [200%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px\] to replace [100px\] at (1) should be [100px\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px each-line\] from add [50px each-line\] to replace [150px hanging\] at (0.6) should be [150px hanging\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [100%\] from add [50px\] to add [150px\] at (0) should be [calc(100% + 50px)\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px\] to replace [100px\] at (0.3) should be [240px\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px\] to replace [100px\] at (1.5) should be [0px\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px each-line hanging\] to replace [150px hanging each-line\] at (-0.3) should be [20px hanging each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [100%\] from add [50px\] to add [150px\] at (1.5) should be [calc(100% + 200px)\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px each-line\] from add [50px each-line\] to replace [150px hanging\] at (-0.3) should be [300px each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px\] to replace [100px\] at (0) should be [300px\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px\] from add [50px\] to replace [100px\] at (-0.3) should be [360px\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (0.5) should be [0%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (1) should be [100%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [50%\] from replace [-100%\] to add [50%\] at (-0.3) should be [-160%\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px each-line\] from add [50px each-line\] to replace [150px hanging\] at (0) should be [300px each-line\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [100%\] from add [50px\] to add [150px\] at (1) should be [calc(100% + 150px)\]] + expected: FAIL + + [Compositing: property <text-indent> underlying [250px each-line\] from add [50px each-line\] to replace [150px hanging\] at (0.3) should be [300px each-line\]] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-text/animations/word-spacing-composition.html.ini b/tests/wpt/metadata/css/css-text/animations/word-spacing-composition.html.ini new file mode 100644 index 00000000000..def2fce15d0 --- /dev/null +++ b/tests/wpt/metadata/css/css-text/animations/word-spacing-composition.html.ini @@ -0,0 +1,46 @@ +[word-spacing-composition.html] + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to add [200px\] at (0) should be [150px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [100px\] from add [10px\] to add [2px\] at (1) should be [102px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (0) should be [150px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [100px\] from add [10px\] to add [2px\] at (-0.5) should be [114px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (-0.3) should be [135px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to add [200px\] at (-0.3) should be [120px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (0.5) should be [175px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to add [200px\] at (0.5) should be [200px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [100px\] from add [10px\] to add [2px\] at (1.5) should be [98px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [100px\] from add [10px\] to add [2px\] at (0.5) should be [106px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (1) should be [200px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to add [200px\] at (1) should be [250px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to replace [200px\] at (1.5) should be [225px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [100px\] from add [10px\] to add [2px\] at (0) should be [110px\]] + expected: FAIL + + [Compositing: property <word-spacing> underlying [50px\] from add [100px\] to add [200px\] at (1.5) should be [300px\]] + expected: FAIL + diff --git a/tests/wpt/metadata/custom-elements/upgrading.html.ini b/tests/wpt/metadata/custom-elements/upgrading.html.ini index 8f4577d5b77..e8aee585a04 100644 --- a/tests/wpt/metadata/custom-elements/upgrading.html.ini +++ b/tests/wpt/metadata/custom-elements/upgrading.html.ini @@ -5,3 +5,9 @@ [If definition's disable shadow is true and element's shadow root is non-null, then throw a "NotSupportedError" DOMException.] expected: FAIL + [Infinite constructor recursion with upgrade(this) should not be possible] + expected: FAIL + + [Infinite constructor recursion with appendChild should not be possible] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index 35c569d8e34..bd2b1f9e21b 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -309,21 +309,18 @@ [<iframe>: separate response Content-Type: */* text/html] expected: FAIL - [<iframe>: combined response Content-Type: text/html;" text/plain] - expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] expected: FAIL [<iframe>: separate response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] + [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] expected: FAIL diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index ecd755157c7..87c807a49ff 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,9 +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 - - [X-Content-Type-Options%3A%20%2Cnosniff] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini index 80ebd73cb00..6bd06899fdd 100644 --- a/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini +++ b/tests/wpt/metadata/fetch/security/embedded-credentials.tentative.sub.html.ini @@ -8,7 +8,7 @@ expected: FAIL [Embedded credentials are treated as network errors in new windows.] - expected: TIMEOUT + expected: FAIL [Embedded credentials matching the top-level are treated as network errors for cross-origin URLs.] expected: TIMEOUT diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..75d75b4cda2 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini index 6852d7663de..c12c0f8ae48 100644 --- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini +++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/skip-document-with-fragment.html.ini @@ -1,8 +1,4 @@ [skip-document-with-fragment.html] - expected: TIMEOUT [Autofocus elements in iframed documents with URL fragments should be skipped.] expected: FAIL - [Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index a56bad443a2..66bd350083b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,5 +1,4 @@ [realtimeanalyser-fft-scaling.html] - expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..064cf47545b --- /dev/null +++ b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini @@ -0,0 +1,5 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index 268949ced5c..f584fce5df1 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,4 +1,5 @@ [005.html] + expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-left-radius-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-left-radius-composition.html new file mode 100644 index 00000000000..87042d1969d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-left-radius-composition.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-bottom-left-radius composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#the-border-radius"> +<meta name="assert" content="border-bottom-left-radius supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-bottom-left-radius', + underlying: '40px 40px', + addFrom: '60px 60px', + addTo: '160px 160px', +}, [ + {at: -0.25, expect: '75px'}, + {at: 0, expect: '100px'}, + {at: 0.25, expect: '125px'}, + {at: 0.5, expect: '150px'}, + {at: 0.75, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px'}, +]); + +test_composition({ + property: 'border-bottom-left-radius', + underlying: '40px 140px', + replaceFrom: '100px 120px', + addTo: '160px 60px', +}, [ + {at: -0.25, expect: '75px 100px'}, + {at: 0, expect: '100px 120px'}, + {at: 0.25, expect: '125px 140px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 180px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px 220px'}, +]); + +test_composition({ + property: 'border-bottom-left-radius', + underlying: '40px 60px', + addFrom: '60px 140px', + replaceTo: '200px 120px', +}, [ + {at: -0.25, expect: '75px 220px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 180px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 140px'}, + {at: 1, expect: '200px 120px'}, + {at: 1.25, expect: '225px 100px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-right-radius-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-right-radius-composition.html new file mode 100644 index 00000000000..2b5a72df691 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-right-radius-composition.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-bottom-right-radius composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#the-border-radius"> +<meta name="assert" content="border-bottom-right-radius supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-bottom-right-radius', + underlying: '40px 40px', + addFrom: '60px 60px', + addTo: '160px 160px', +}, [ + {at: -0.25, expect: '75px'}, + {at: 0, expect: '100px'}, + {at: 0.25, expect: '125px'}, + {at: 0.5, expect: '150px'}, + {at: 0.75, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px'}, +]); + +test_composition({ + property: 'border-bottom-right-radius', + underlying: '40px 140px', + replaceFrom: '100px 120px', + addTo: '160px 60px', +}, [ + {at: -0.25, expect: '75px 100px'}, + {at: 0, expect: '100px 120px'}, + {at: 0.25, expect: '125px 140px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 180px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px 220px'}, +]); + +test_composition({ + property: 'border-bottom-right-radius', + underlying: '40px 60px', + addFrom: '60px 140px', + replaceTo: '200px 120px', +}, [ + {at: -0.25, expect: '75px 220px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 180px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 140px'}, + {at: 1, expect: '200px 120px'}, + {at: 1.25, expect: '225px 100px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-width-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-width-composition.html new file mode 100644 index 00000000000..5377c0ab42b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-bottom-width-composition.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-bottom-width composition</title> +<link rel="help" href="https://www.w3.org/TR/CSS2/box.html#border-width-properties"> +<meta name="assert" content="border-bottom-width supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-bottom-width', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'border-bottom-width', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, // Value clamping should happen after composition. +]); + +test_composition({ + property: 'border-bottom-width', + underlying: '10em', + addFrom: '100px', + addTo: '20em', +}, [ + {at: -0.3, expect: 'calc(130px + 4em)'}, + {at: 0, expect: 'calc(100px + 10em)'}, + {at: 0.5, expect: 'calc(50px + 20em)'}, + {at: 1, expect: '30em'}, + {at: 1.5, expect: 'calc(-50px + 40em)'}, +]); + +test_composition({ + property: 'border-bottom-width', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition.html new file mode 100644 index 00000000000..e3311711753 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-outset-composition.html @@ -0,0 +1,133 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-image-outset composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-outset"> +<meta name="assert" content="border-image-outset supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-image-outset', + underlying: '1 2 3 4', + addFrom: '1 2 3 4', + addTo: '101 102 103 104', +}, [ + {at: -0.25, expect: '0'}, // Non-negative. + {at: 0, expect: '2 4 6 8'}, + {at: 0.25, expect: '27 29 31 33'}, + {at: 0.5, expect: '52 54 56 58'}, + {at: 0.75, expect: '77 79 81 83'}, + {at: 1, expect: '102 104 106 108'}, + {at: 1.25, expect: '127 129 131 133'}, +]); + +test_composition({ + property: 'border-image-outset', + underlying: '100 200 300 400', + addFrom: '100', + addTo: '200 300 500', +}, [ + {at: -0.25, expect: '175 250 300 450'}, + {at: 0, expect: '200 300 400 500'}, + {at: 0.25, expect: '225 350 500 550'}, + {at: 0.5, expect: '250 400 600 600'}, + {at: 0.75, expect: '275 450 700 650'}, + {at: 1, expect: '300 500 800 700'}, + {at: 1.25, expect: '325 550 900 750'}, +]); + +test_composition({ + property: 'border-image-outset', + underlying: '1 2 3px 4px', + addFrom: '1 2 3px 4px', + addTo: '101 102 103px 104px', +}, [ + {at: -0.25, expect: '0 0 0px 0px'}, // Non-negative. + {at: 0, expect: '2 4 6px 8px'}, + {at: 0.25, expect: '27 29 31px 33px'}, + {at: 0.5, expect: '52 54 56px 58px'}, + {at: 0.75, expect: '77 79 81px 83px'}, + {at: 1, expect: '102 104 106px 108px'}, + {at: 1.25, expect: '127 129 131px 133px'}, +]); + +test_composition({ + property: 'border-image-outset', + underlying: '10px 20px', + addFrom: '190px 180px 290px 280px', + addTo: '90px 80px', +}, [ + {at: -0.25, expect: '225px 225px 350px 350px'}, + {at: 0, expect: '200px 200px 300px 300px'}, + {at: 0.25, expect: '175px 175px 250px 250px'}, + {at: 0.5, expect: '150px 150px 200px 200px'}, + {at: 0.75, expect: '125px 125px 150px 150px'}, + {at: 1, expect: '100px'}, + {at: 1.25, expect: '75px 75px 50px 50px'}, +]); + +test_composition({ + property: 'border-image-outset', + underlying: '10 20px', + replaceFrom: '100 100px', + addTo: '190 180px', +}, [ + {at: -0.25, expect: '75 75px'}, + {at: 0, expect: '100 100px'}, + {at: 0.25, expect: '125 125px'}, + {at: 0.5, expect: '150 150px'}, + {at: 0.75, expect: '175 175px'}, + {at: 1, expect: '200 200px'}, + {at: 1.25, expect: '225 225px'}, +]); + +test_composition({ + property: 'border-image-outset', + underlying: '10px 20', + addFrom: '90px 80', + replaceTo: '0px 0 0px 0', +}, [ + {at: -0.25, expect: '125px 125'}, + {at: 0, expect: '100px 100'}, + {at: 0.25, expect: '75px 75'}, + {at: 0.5, expect: '50px 50'}, + {at: 0.75, expect: '25px 25'}, + {at: 1, expect: '0px 0'}, + {at: 1.25, expect: '0px 0'}, // Non-negative. +]); + +test_composition({ + property: 'border-image-outset', + underlying: '10 20', + addFrom: '100px 150px', + addTo: '200px 250px', +}, [ + {at: -0.25, expect: '75px 125px'}, + {at: 0, expect: '100px 150px'}, + {at: 0.25, expect: '125px 175px'}, + {at: 0.5, expect: '150px 200px'}, + {at: 0.75, expect: '175px 225px'}, + {at: 1, expect: '200px 250px'}, + {at: 1.25, expect: '225px 275px'}, +]); + +test_composition({ + property: 'border-image-outset', + underlying: '10 20', + addFrom: '100 150px', + addTo: '200px 250', +}, [ + {at: -0.25, expect: '100 150px'}, + {at: 0, expect: '100 150px'}, + {at: 0.25, expect: '100 150px'}, + {at: 0.5, expect: '200px 250'}, + {at: 0.75, expect: '200px 250'}, + {at: 1, expect: '200px 250'}, + {at: 1.25, expect: '200px 250'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition.html new file mode 100644 index 00000000000..d0ccb1a3a64 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-slice-composition.html @@ -0,0 +1,133 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-image-slice composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-slice"> +<meta name="assert" content="border-image-slice supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-image-slice', + underlying: '1 2 3 4', + addFrom: '1 2 3 4', + addTo: '101 102 103 104', +}, [ + {at: -0.25, expect: '0'}, // Non-negative. + {at: 0, expect: '2 4 6 8'}, + {at: 0.25, expect: '27 29 31 33'}, + {at: 0.5, expect: '52 54 56 58'}, + {at: 0.75, expect: '77 79 81 83'}, + {at: 1, expect: '102 104 106 108'}, + {at: 1.25, expect: '127 129 131 133'}, +]); + +test_composition({ + property: 'border-image-slice', + underlying: '100 200 300 400 fill', + addFrom: '100 fill', + addTo: '200 300 500 fill', +}, [ + {at: -0.25, expect: '175 250 300 450 fill'}, + {at: 0, expect: '200 300 400 500 fill'}, + {at: 0.25, expect: '225 350 500 550 fill'}, + {at: 0.5, expect: '250 400 600 600 fill'}, + {at: 0.75, expect: '275 450 700 650 fill'}, + {at: 1, expect: '300 500 800 700 fill'}, + {at: 1.25, expect: '325 550 900 750 fill'}, +]); + +test_composition({ + property: 'border-image-slice', + underlying: '1 2 3% 4%', + addFrom: '1 2 3% 4%', + addTo: '101 102 103% 104%', +}, [ + {at: -0.25, expect: '0 0 0% 0%'}, // Non-negative. + {at: 0, expect: '2 4 6% 8%'}, + {at: 0.25, expect: '27 29 31% 33%'}, + {at: 0.5, expect: '52 54 56% 58%'}, + {at: 0.75, expect: '77 79 81% 83%'}, + {at: 1, expect: '102 104 106% 108%'}, + {at: 1.25, expect: '127 129 131% 133%'}, +]); + +test_composition({ + property: 'border-image-slice', + underlying: '10% 20%', + addFrom: '190% 180% 290% 280%', + addTo: '90% 80%', +}, [ + {at: -0.25, expect: '225% 225% 350% 350%'}, + {at: 0, expect: '200% 200% 300% 300%'}, + {at: 0.25, expect: '175% 175% 250% 250%'}, + {at: 0.5, expect: '150% 150% 200% 200%'}, + {at: 0.75, expect: '125% 125% 150% 150%'}, + {at: 1, expect: '100%'}, + {at: 1.25, expect: '75% 75% 50% 50%'}, +]); + +test_composition({ + property: 'border-image-slice', + underlying: '10 20%', + replaceFrom: '100 100%', + addTo: '190 180%', +}, [ + {at: -0.25, expect: '75 75%'}, + {at: 0, expect: '100 100%'}, + {at: 0.25, expect: '125 125%'}, + {at: 0.5, expect: '150 150%'}, + {at: 0.75, expect: '175 175%'}, + {at: 1, expect: '200 200%'}, + {at: 1.25, expect: '225 225%'}, +]); + +test_composition({ + property: 'border-image-slice', + underlying: '10% 20', + addFrom: '90% 80', + replaceTo: '0% 0 0% 0', +}, [ + {at: -0.25, expect: '125% 125'}, + {at: 0, expect: '100% 100'}, + {at: 0.25, expect: '75% 75'}, + {at: 0.5, expect: '50% 50'}, + {at: 0.75, expect: '25% 25'}, + {at: 1, expect: '0% 0'}, + {at: 1.25, expect: '0% 0'}, // Non-negative. +]); + +test_composition({ + property: 'border-image-slice', + underlying: '10 20', + addFrom: '100% 150%', + addTo: '200% 250% fill', +}, [ + {at: -0.25, expect: '100% 150%'}, + {at: 0, expect: '100% 150%'}, + {at: 0.25, expect: '100% 150%'}, + {at: 0.5, expect: '200% 250% fill'}, + {at: 0.75, expect: '200% 250% fill'}, + {at: 1, expect: '200% 250% fill'}, + {at: 1.25, expect: '200% 250% fill'}, +]); + +test_composition({ + property: 'border-image-slice', + underlying: '10 20', + addFrom: '100 150%', + addTo: '200% 250', +}, [ + {at: -0.25, expect: '100 150%'}, + {at: 0, expect: '100 150%'}, + {at: 0.25, expect: '100 150%'}, + {at: 0.5, expect: '200% 250'}, + {at: 0.75, expect: '200% 250'}, + {at: 1, expect: '200% 250'}, + {at: 1.25, expect: '200% 250'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-width-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-width-composition.html new file mode 100644 index 00000000000..0d0a1dc4ed2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-image-width-composition.html @@ -0,0 +1,133 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-image-width composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-image-width"> +<meta name="assert" content="border-image-width supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-image-width', + underlying: '1 2 3 4', + addFrom: '1 2 3 4', + addTo: '101 102 103 104', +}, [ + {at: -0.25, expect: '0'}, // Non-negative. + {at: 0, expect: '2 4 6 8'}, + {at: 0.25, expect: '27 29 31 33'}, + {at: 0.5, expect: '52 54 56 58'}, + {at: 0.75, expect: '77 79 81 83'}, + {at: 1, expect: '102 104 106 108'}, + {at: 1.25, expect: '127 129 131 133'}, +]); + +test_composition({ + property: 'border-image-width', + underlying: '100 200 300 400', + addFrom: '100', + addTo: '200 300 500', +}, [ + {at: -0.25, expect: '175 250 300 450'}, + {at: 0, expect: '200 300 400 500'}, + {at: 0.25, expect: '225 350 500 550'}, + {at: 0.5, expect: '250 400 600 600'}, + {at: 0.75, expect: '275 450 700 650'}, + {at: 1, expect: '300 500 800 700'}, + {at: 1.25, expect: '325 550 900 750'}, +]); + +test_composition({ + property: 'border-image-width', + underlying: '1 2 3px 4%', + addFrom: '1 2 3px 4%', + addTo: '101 102 103px 104%', +}, [ + {at: -0.25, expect: '0 0 0px 0%'}, // Non-negative. + {at: 0, expect: '2 4 6px 8%'}, + {at: 0.25, expect: '27 29 31px 33%'}, + {at: 0.5, expect: '52 54 56px 58%'}, + {at: 0.75, expect: '77 79 81px 83%'}, + {at: 1, expect: '102 104 106px 108%'}, + {at: 1.25, expect: '127 129 131px 133%'}, +]); + +test_composition({ + property: 'border-image-width', + underlying: '10px 20px', + addFrom: '190px 180px 290px 280px', + addTo: '90px 80px', +}, [ + {at: -0.25, expect: '225px 225px 350px 350px'}, + {at: 0, expect: '200px 200px 300px 300px'}, + {at: 0.25, expect: '175px 175px 250px 250px'}, + {at: 0.5, expect: '150px 150px 200px 200px'}, + {at: 0.75, expect: '125px 125px 150px 150px'}, + {at: 1, expect: '100px'}, + {at: 1.25, expect: '75px 75px 50px 50px'}, +]); + +test_composition({ + property: 'border-image-width', + underlying: '10 20px', + replaceFrom: '100 100px', + addTo: '190 180px', +}, [ + {at: -0.25, expect: '75 75px'}, + {at: 0, expect: '100 100px'}, + {at: 0.25, expect: '125 125px'}, + {at: 0.5, expect: '150 150px'}, + {at: 0.75, expect: '175 175px'}, + {at: 1, expect: '200 200px'}, + {at: 1.25, expect: '225 225px'}, +]); + +test_composition({ + property: 'border-image-width', + underlying: '10px 20', + addFrom: '90px 80', + replaceTo: '0px 0 0px 0', +}, [ + {at: -0.25, expect: '125px 125'}, + {at: 0, expect: '100px 100'}, + {at: 0.25, expect: '75px 75'}, + {at: 0.5, expect: '50px 50'}, + {at: 0.75, expect: '25px 25'}, + {at: 1, expect: '0px 0'}, + {at: 1.25, expect: '0px 0'}, // Non-negative. +]); + +test_composition({ + property: 'border-image-width', + underlying: '10 20', + addFrom: '100px 150px', + addTo: '200px 250px', +}, [ + {at: -0.25, expect: '75px 125px'}, + {at: 0, expect: '100px 150px'}, + {at: 0.25, expect: '125px 175px'}, + {at: 0.5, expect: '150px 200px'}, + {at: 0.75, expect: '175px 225px'}, + {at: 1, expect: '200px 250px'}, + {at: 1.25, expect: '225px 275px'}, +]); + +test_composition({ + property: 'border-image-width', + underlying: '10 20', + addFrom: '100 150px', + addTo: '200% 250', +}, [ + {at: -0.25, expect: '100 150px'}, + {at: 0, expect: '100 150px'}, + {at: 0.25, expect: '100 150px'}, + {at: 0.5, expect: '200% 250'}, + {at: 0.75, expect: '200% 250'}, + {at: 1, expect: '200% 250'}, + {at: 1.25, expect: '200% 250'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-left-width-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-left-width-composition.html new file mode 100644 index 00000000000..1b90effbc32 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-left-width-composition.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-left-width composition</title> +<link rel="help" href="https://www.w3.org/TR/CSS2/box.html#border-width-properties"> +<meta name="assert" content="border-left-width supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-left-width', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'border-left-width', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, // Value clamping should happen after composition. +]); + +test_composition({ + property: 'border-left-width', + underlying: '10em', + addFrom: '100px', + addTo: '20em', +}, [ + {at: -0.3, expect: 'calc(130px + 4em)'}, + {at: 0, expect: 'calc(100px + 10em)'}, + {at: 0.5, expect: 'calc(50px + 20em)'}, + {at: 1, expect: '30em'}, + {at: 1.5, expect: 'calc(-50px + 40em)'}, +]); + +test_composition({ + property: 'border-left-width', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-right-width-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-right-width-composition.html new file mode 100644 index 00000000000..aa9e1dcc667 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-right-width-composition.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-right-width composition</title> +<link rel="help" href="https://www.w3.org/TR/CSS2/box.html#border-width-properties"> +<meta name="assert" content="border-right-width supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-right-width', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'border-right-width', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, // Value clamping should happen after composition. +]); + +test_composition({ + property: 'border-right-width', + underlying: '10em', + addFrom: '100px', + addTo: '20em', +}, [ + {at: -0.3, expect: 'calc(130px + 4em)'}, + {at: 0, expect: 'calc(100px + 10em)'}, + {at: 0.5, expect: 'calc(50px + 20em)'}, + {at: 1, expect: '30em'}, + {at: 1.5, expect: 'calc(-50px + 40em)'}, +]); + +test_composition({ + property: 'border-right-width', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-left-radius-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-left-radius-composition.html new file mode 100644 index 00000000000..1c2056bc010 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-left-radius-composition.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-top-left-radius composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#the-border-radius"> +<meta name="assert" content="border-top-left-radius supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-top-left-radius', + underlying: '40px 40px', + addFrom: '60px 60px', + addTo: '160px 160px', +}, [ + {at: -0.25, expect: '75px'}, + {at: 0, expect: '100px'}, + {at: 0.25, expect: '125px'}, + {at: 0.5, expect: '150px'}, + {at: 0.75, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px'}, +]); + +test_composition({ + property: 'border-top-left-radius', + underlying: '40px 140px', + replaceFrom: '100px 120px', + addTo: '160px 60px', +}, [ + {at: -0.25, expect: '75px 100px'}, + {at: 0, expect: '100px 120px'}, + {at: 0.25, expect: '125px 140px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 180px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px 220px'}, +]); + +test_composition({ + property: 'border-top-left-radius', + underlying: '40px 60px', + addFrom: '60px 140px', + replaceTo: '200px 120px', +}, [ + {at: -0.25, expect: '75px 220px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 180px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 140px'}, + {at: 1, expect: '200px 120px'}, + {at: 1.25, expect: '225px 100px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-right-radius-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-right-radius-composition.html new file mode 100644 index 00000000000..9a26d51375e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-right-radius-composition.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-top-right-radius composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#the-border-radius"> +<meta name="assert" content="border-top-right-radius supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-top-right-radius', + underlying: '40px 40px', + addFrom: '60px 60px', + addTo: '160px 160px', +}, [ + {at: -0.25, expect: '75px'}, + {at: 0, expect: '100px'}, + {at: 0.25, expect: '125px'}, + {at: 0.5, expect: '150px'}, + {at: 0.75, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px'}, +]); + +test_composition({ + property: 'border-top-right-radius', + underlying: '40px 140px', + replaceFrom: '100px 120px', + addTo: '160px 60px', +}, [ + {at: -0.25, expect: '75px 100px'}, + {at: 0, expect: '100px 120px'}, + {at: 0.25, expect: '125px 140px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 180px'}, + {at: 1, expect: '200px'}, + {at: 1.25, expect: '225px 220px'}, +]); + +test_composition({ + property: 'border-top-right-radius', + underlying: '40px 60px', + addFrom: '60px 140px', + replaceTo: '200px 120px', +}, [ + {at: -0.25, expect: '75px 220px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 180px'}, + {at: 0.5, expect: '150px 160px'}, + {at: 0.75, expect: '175px 140px'}, + {at: 1, expect: '200px 120px'}, + {at: 1.25, expect: '225px 100px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-width-composition.html b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-width-composition.html new file mode 100644 index 00000000000..475c3930b9d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-backgrounds/animations/border-top-width-composition.html @@ -0,0 +1,65 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>border-top-width composition</title> +<link rel="help" href="https://drafts.csswg.org/css-backgrounds-3/#border-width"> +<meta name="assert" content="border-top-width supports animation by computed value"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'border-top-width', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'border-top-width', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, // Value clamping should happen after composition. +]); + +test_composition({ + property: 'border-top-width', + underlying: '10em', + addFrom: '100px', + addTo: '20em', +}, [ + {at: -0.3, expect: 'calc(130px + 4em)'}, + {at: 0, expect: 'calc(100px + 10em)'}, + {at: 0.5, expect: 'calc(50px + 20em)'}, + {at: 1, expect: '30em'}, + {at: 1.5, expect: 'calc(-50px + 40em)'}, +]); + +test_composition({ + property: 'border-top-width', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/animations/letter-spacing-composition.html b/tests/wpt/web-platform-tests/css/css-text/animations/letter-spacing-composition.html new file mode 100644 index 00000000000..c1b614b5eba --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/animations/letter-spacing-composition.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>letter-spacing composition</title> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#letter-spacing-property"> +<meta name="test" content="letter-spacing supports animation by computed value type"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script src="../interpolation/resources/interpolation-test.js"></script> +<script> +test_composition({ + property: 'letter-spacing', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'letter-spacing', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, +]); + +test_composition({ + property: 'letter-spacing', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/animations/text-indent-composition.html b/tests/wpt/web-platform-tests/css/css-text/animations/text-indent-composition.html new file mode 100644 index 00000000000..57c528ca271 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/animations/text-indent-composition.html @@ -0,0 +1,84 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>letter-spacing composition</title> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#text-indent-property"> +<meta name="test" content="text-indent supports animation by computed value type"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body></body> +<script> +test_composition({ + property: 'text-indent', + underlying: '100%', + addFrom: '50px', + addTo: '150px', +}, [ + {at: -0.3, expect: 'calc(100% + 20px)'}, + {at: 0, expect: 'calc(100% + 50px)'}, + {at: 0.3, expect: 'calc(100% + 80px)'}, + {at: 0.6, expect: 'calc(100% + 110px)'}, + {at: 1, expect: 'calc(100% + 150px)'}, + {at: 1.5, expect: 'calc(100% + 200px)'}, +]); + +test_composition({ + property: 'text-indent', + underlying: '250px', + addFrom: '50px', + replaceTo: '100px', +}, [ + {at: -0.3, expect: '360px'}, + {at: 0, expect: '300px'}, + {at: 0.3, expect: '240px'}, + {at: 0.6, expect: '180px'}, + {at: 1, expect: '100px'}, + {at: 1.5, expect: '0px'}, +]); + +test_composition({ + property: 'text-indent', + underlying: '50%', + replaceFrom: '-100%', + addTo: '50%', +}, [ + {at: -0.3, expect: '-160%'}, + {at: 0, expect: '-100%'}, + {at: 0.3, expect: '-40%'}, + {at: 0.5, expect: '0%'}, + {at: 0.6, expect: '20%'}, + {at: 1, expect: '100%'}, + {at: 1.5, expect: '200%'}, +]); + +test_composition({ + property: 'text-indent', + underlying: '250px', + addFrom: '50px each-line hanging', + replaceTo: '150px hanging each-line', +}, [ + {at: -0.3, expect: '20px hanging each-line'}, + {at: 0, expect: '50px hanging each-line'}, + {at: 0.3, expect: '80px hanging each-line'}, + {at: 0.6, expect: '110px hanging each-line'}, + {at: 1, expect: '150px hanging each-line'}, + {at: 1.5, expect: '200px hanging each-line'}, +]); + +test_composition({ + property: 'text-indent', + underlying: '250px each-line', + addFrom: '50px each-line', + replaceTo: '150px hanging', +}, [ + {at: -0.3, expect: '300px each-line'}, + {at: 0, expect: '300px each-line'}, + {at: 0.3, expect: '300px each-line'}, + {at: 0.6, expect: '150px hanging'}, + {at: 1, expect: '150px hanging'}, + {at: 1.5, expect: '150px hanging'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/animations/word-spacing-composition.html b/tests/wpt/web-platform-tests/css/css-text/animations/word-spacing-composition.html new file mode 100644 index 00000000000..17aacaef150 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text/animations/word-spacing-composition.html @@ -0,0 +1,52 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>word-spacing composition</title> +<link rel="help" href="https://drafts.csswg.org/css-text-3/#word-spacing-property"> +<meta name="test" content="word-spacing supports animation by computed value type"> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'word-spacing', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'word-spacing', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, +]); + +test_composition({ + property: 'word-spacing', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/motion/animation/offset-anchor-composition.html b/tests/wpt/web-platform-tests/css/motion/animation/offset-anchor-composition.html new file mode 100644 index 00000000000..53210fdf38a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/animation/offset-anchor-composition.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>offset-anchor composition</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-anchor-property"> +<meta name="assert" content="offset-anchor 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: 200px; + height: 200px; +} +</style> +<body> +<script> +test_composition({ + property: 'offset-anchor', + underlying: '40px 60px', + addFrom: '60px 40px', + addTo: '160px 140px', +}, [ + {at: -0.25, expect: '75px 75px'}, + {at: 0, expect: '100px 100px'}, + {at: 0.25, expect: '125px 125px'}, + {at: 0.5, expect: '150px 150px'}, + {at: 0.75, expect: '175px 175px'}, + {at: 1, expect: '200px 200px'}, + {at: 1.25, expect: '225px 225px'}, +]); + +test_composition({ + property: 'offset-anchor', + underlying: 'top 20% left 40%', + addFrom: 'left 60% top 80%', + addTo: 'right 80% bottom 40%', +}, [ + {at: -0.25, expect: '110% 105%'}, + {at: 0, expect: '100% 100%'}, + {at: 0.25, expect: '90% 95%'}, + {at: 0.5, expect: '80% 90%'}, + {at: 0.75, expect: '70% 85%'}, + {at: 1, expect: '60% 80%'}, + {at: 1.25, expect: '50% 75%'}, +]); + +test_composition({ + property: 'offset-anchor', + underlying: '40px 60px', + replaceFrom: '100px 200px', + addTo: '160px 40px', +}, [ + {at: -0.25, expect: '75px 225px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 175px'}, + {at: 0.5, expect: '150px 150px'}, + {at: 0.75, expect: '175px 125px'}, + {at: 1, expect: '200px 100px'}, + {at: 1.25, expect: '225px 75px'}, +]); + +test_composition({ + property: 'offset-anchor', + underlying: '40px 60px', + addFrom: '60px 140px', + replaceTo: '200px 100px', +}, [ + {at: -0.25, expect: '75px 225px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 175px'}, + {at: 0.5, expect: '150px 150px'}, + {at: 0.75, expect: '175px 125px'}, + {at: 1, expect: '200px 100px'}, + {at: 1.25, expect: '225px 75px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/motion/animation/offset-distance-composition.html b/tests/wpt/web-platform-tests/css/motion/animation/offset-distance-composition.html new file mode 100644 index 00000000000..4ff6e95b057 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/animation/offset-distance-composition.html @@ -0,0 +1,66 @@ +<!DOCTYPE html> +<meta charset="UTF-8"> +<title>offset-distance composition</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-distance-property"> +<meta name="assert" content="offset-distance supports animation."> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +test_composition({ + property: 'offset-distance', + underlying: '50px', + addFrom: '100px', + addTo: '200px', +}, [ + {at: -0.3, expect: '120px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '200px'}, + {at: 1, expect: '250px'}, + {at: 1.5, expect: '300px'}, +]); + +test_composition({ + property: 'offset-distance', + underlying: '100px', + addFrom: '10px', + addTo: '2px', +}, [ + {at: -0.5, expect: '114px'}, + {at: 0, expect: '110px'}, + {at: 0.5, expect: '106px'}, + {at: 1, expect: '102px'}, + {at: 1.5, expect: '98px'}, +]); + +test_composition({ + property: 'offset-distance', + underlying: '10%', + addFrom: '100px', + addTo: '20%', +}, [ + {at: -0.3, expect: 'calc(130px + 4%)'}, + {at: 0, expect: 'calc(100px + 10%)'}, + {at: 0.5, expect: 'calc(50px + 20%)'}, + {at: 1, expect: '30%'}, + {at: 1.5, expect: 'calc(-50px + 40%)'}, +]); + +test_composition({ + property: 'offset-distance', + underlying: '50px', + addFrom: '100px', + replaceTo: '200px', +}, [ + {at: -0.3, expect: '135px'}, + {at: 0, expect: '150px'}, + {at: 0.5, expect: '175px'}, + {at: 1, expect: '200px'}, + {at: 1.5, expect: '225px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/motion/animation/offset-path-composition.html b/tests/wpt/web-platform-tests/css/motion/animation/offset-path-composition.html new file mode 100644 index 00000000000..eedd363efaf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/animation/offset-path-composition.html @@ -0,0 +1,120 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>offset-distance composition</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-distance-property"> +<meta name="assert" content="offset-distance supports animation."> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +// TODO(ericwilligers) Support additive animation for path strings crbug.com/699308 + +// Ray paths compose. +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg sides)', + addFrom: 'ray(10deg sides)', + addTo: 'ray(20deg sides)', +}, [ + {at: -0.3, expect: 'ray(27deg sides)'}, + {at: 0, expect: 'ray(30deg sides)'}, + {at: 0.3, expect: 'ray(33deg sides)'}, + {at: 0.6, expect: 'ray(36deg sides)'}, + {at: 1, expect: 'ray(40deg sides)'}, + {at: 1.5, expect: 'ray(45deg sides)'}, +]); + +// Ray paths without contain don't compose with underlying contain. +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg closest-corner contain)', + addFrom: 'ray(10deg closest-corner)', + addTo: 'ray(20deg closest-corner)', +}, [ + {at: -0.3, expect: 'ray(7deg closest-corner)'}, + {at: 0, expect: 'ray(10deg closest-corner)'}, + {at: 0.3, expect: 'ray(13deg closest-corner)'}, + {at: 0.6, expect: 'ray(16deg closest-corner)'}, + {at: 1, expect: 'ray(20deg closest-corner)'}, + {at: 1.5, expect: 'ray(25deg closest-corner)'}, +]); + +// Ray paths don't compose when underlying has different size. +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg closest-side)', + addFrom: 'ray(10deg closest-corner)', + addTo: 'ray(20deg closest-corner)', +}, [ + {at: -0.3, expect: 'ray(7deg closest-corner)'}, + {at: 0, expect: 'ray(10deg closest-corner)'}, + {at: 0.3, expect: 'ray(13deg closest-corner)'}, + {at: 0.6, expect: 'ray(16deg closest-corner)'}, + {at: 1, expect: 'ray(20deg closest-corner)'}, + {at: 1.5, expect: 'ray(25deg closest-corner)'}, +]); + +// Ray contain paths compose with underlying contain. +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg farthest-side contain)', + addFrom: 'ray(190deg farthest-side contain)', + addTo: 'ray(20deg farthest-side contain)', +}, [ + {at: -0.3, expect: 'ray(261deg farthest-side contain)'}, + {at: 0, expect: 'ray(210deg farthest-side contain)'}, + {at: 0.3, expect: 'ray(159deg farthest-side contain)'}, + {at: 0.6, expect: 'ray(108deg farthest-side contain)'}, + {at: 1, expect: 'ray(40deg farthest-side contain)'}, + {at: 1.5, expect: 'ray(-45deg farthest-side contain)'}, +]); + +// When we can't interpolate, we can't compose. +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg farthest-corner)', + addFrom: 'ray(190deg farthest-corner contain)', + addTo: 'ray(20deg farthest-corner)', +}, [ + {at: -0.3, expect: 'ray(190deg farthest-corner contain)'}, + {at: 0, expect: 'ray(190deg farthest-corner contain)'}, + {at: 0.3, expect: 'ray(190deg farthest-corner contain)'}, + {at: 0.6, expect: 'ray(40deg farthest-corner)'}, + {at: 1, expect: 'ray(40deg farthest-corner)'}, + {at: 1.5, expect: 'ray(40deg farthest-corner)'}, +]); + +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg sides)', + replaceFrom: 'ray(190deg sides contain)', + addTo: 'ray(20deg sides)', +}, [ + {at: -0.3, expect: 'ray(190deg sides contain)'}, + {at: 0, expect: 'ray(190deg sides contain)'}, + {at: 0.3, expect: 'ray(190deg sides contain)'}, + {at: 0.6, expect: 'ray(40deg sides)'}, + {at: 1, expect: 'ray(40deg sides)'}, + {at: 1.5, expect: 'ray(40deg sides)'}, +]); + +// Ray paths compose with underlying. +test_composition({ + property: 'offset-path', + underlying: 'ray(20deg closest-side)', + addFrom: 'ray(10deg closest-side)', + replaceTo: 'ray(10deg closest-side)', +}, [ + {at: -0.3, expect: 'ray(36deg closest-side)'}, + {at: 0, expect: 'ray(30deg closest-side)'}, + {at: 0.3, expect: 'ray(24deg closest-side)'}, + {at: 0.6, expect: 'ray(18deg closest-side)'}, + {at: 1, expect: 'ray(10deg closest-side)'}, + {at: 1.5, expect: 'ray(0deg closest-side)'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/motion/animation/offset-position-composition.html b/tests/wpt/web-platform-tests/css/motion/animation/offset-position-composition.html new file mode 100644 index 00000000000..0ee517a73a8 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/animation/offset-position-composition.html @@ -0,0 +1,80 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>offset-position composition</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-position-property"> +<meta name="assert" content="offset-position supports <position> animation."> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<style> +.target { + width: 200px; + height: 200px; +} +</style> +<body> +<script> +test_composition({ + property: 'offset-position', + underlying: '40px 60px', + addFrom: '60px 40px', + addTo: '160px 140px', +}, [ + {at: -0.25, expect: '75px 75px'}, + {at: 0, expect: '100px 100px'}, + {at: 0.25, expect: '125px 125px'}, + {at: 0.5, expect: '150px 150px'}, + {at: 0.75, expect: '175px 175px'}, + {at: 1, expect: '200px 200px'}, + {at: 1.25, expect: '225px 225px'}, +]); + +test_composition({ + property: 'offset-position', + underlying: 'top 20% left 40%', + addFrom: 'left 60% top 80%', + addTo: 'right 80% bottom 40%', +}, [ + {at: -0.25, expect: '110% 105%'}, + {at: 0, expect: '100% 100%'}, + {at: 0.25, expect: '90% 95%'}, + {at: 0.5, expect: '80% 90%'}, + {at: 0.75, expect: '70% 85%'}, + {at: 1, expect: '60% 80%'}, + {at: 1.25, expect: '50% 75%'}, +]); + +test_composition({ + property: 'offset-position', + underlying: '40px 60px', + replaceFrom: '100px 200px', + addTo: '160px 40px', +}, [ + {at: -0.25, expect: '75px 225px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 175px'}, + {at: 0.5, expect: '150px 150px'}, + {at: 0.75, expect: '175px 125px'}, + {at: 1, expect: '200px 100px'}, + {at: 1.25, expect: '225px 75px'}, +]); + +test_composition({ + property: 'offset-position', + underlying: '40px 60px', + addFrom: '60px 140px', + replaceTo: '200px 100px', +}, [ + {at: -0.25, expect: '75px 225px'}, + {at: 0, expect: '100px 200px'}, + {at: 0.25, expect: '125px 175px'}, + {at: 0.5, expect: '150px 150px'}, + {at: 0.75, expect: '175px 125px'}, + {at: 1, expect: '200px 100px'}, + {at: 1.25, expect: '225px 75px'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/css/motion/animation/offset-rotate-composition.html b/tests/wpt/web-platform-tests/css/motion/animation/offset-rotate-composition.html new file mode 100644 index 00000000000..bf60c19abef --- /dev/null +++ b/tests/wpt/web-platform-tests/css/motion/animation/offset-rotate-composition.html @@ -0,0 +1,103 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>offset-rotate composition</title> +<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org"> +<link rel="help" href="https://drafts.fxtf.org/motion-1/#offset-rotate-property"> +<meta name="assert" content="offset-rotate supports animation."> + +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/interpolation-testcommon.js"></script> + +<body> +<script> +// Angle rotations compose. +test_composition({ + property: 'offset-rotate', + underlying: '20deg', + addFrom: '10deg', + addTo: '20deg', +}, [ + {at: -0.3, expect: '27deg'}, + {at: 0, expect: '30deg'}, + {at: 0.3, expect: '33deg'}, + {at: 0.6, expect: '36deg'}, + {at: 1, expect: '40deg'}, + {at: 1.5, expect: '45deg'}, +]); + +// Angle rotations don't compose with underlying 'auto'. +test_composition({ + property: 'offset-rotate', + underlying: 'auto 20deg', + addFrom: '10deg', + addTo: '20deg', +}, [ + {at: -0.3, expect: '7deg'}, + {at: 0, expect: '10deg'}, + {at: 0.3, expect: '13deg'}, + {at: 0.6, expect: '16deg'}, + {at: 1, expect: '20deg'}, + {at: 1.5, expect: '25deg'}, +]); + +// Auto rotations compose with underlying 'auto'. +test_composition({ + property: 'offset-rotate', + underlying: 'auto 20deg', + addFrom: 'reverse 10deg', + addTo: 'auto 20deg', +}, [ + {at: -0.3, expect: 'auto 261deg'}, + {at: 0, expect: 'auto 210deg'}, + {at: 0.3, expect: 'auto 159deg'}, + {at: 0.6, expect: 'auto 108deg'}, + {at: 1, expect: 'auto 40deg'}, + {at: 1.5, expect: 'auto -45deg'}, +]); + +// When we can't interpolate, we can't compose. +test_composition({ + property: 'offset-rotate', + underlying: '20deg', + addFrom: 'reverse 10deg', + addTo: '20deg', +}, [ + {at: -0.3, expect: 'auto 190deg'}, + {at: 0, expect: 'auto 190deg'}, + {at: 0.3, expect: 'auto 190deg'}, + {at: 0.6, expect: '40deg'}, + {at: 1, expect: '40deg'}, + {at: 1.5, expect: '40deg'}, +]); + +test_composition({ + property: 'offset-rotate', + underlying: '20deg', + replaceFrom: 'reverse 10deg', + addTo: '20deg', +}, [ + {at: -0.3, expect: 'auto 190deg'}, + {at: 0, expect: 'auto 190deg'}, + {at: 0.3, expect: 'auto 190deg'}, + {at: 0.6, expect: '40deg'}, + {at: 1, expect: '40deg'}, + {at: 1.5, expect: '40deg'}, +]); + +// Angle rotations compose with underlying angle. +test_composition({ + property: 'offset-rotate', + underlying: '20deg', + addFrom: '10deg', + replaceTo: '10deg', +}, [ + {at: -0.3, expect: '36deg'}, + {at: 0, expect: '30deg'}, + {at: 0.3, expect: '24deg'}, + {at: 0.6, expect: '18deg'}, + {at: 1, expect: '10deg'}, + {at: 1.5, expect: '0deg'}, +]); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html b/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html index 60d88cffb51..24cb5fe4cd3 100644 --- a/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html +++ b/tests/wpt/web-platform-tests/custom-elements/pseudo-class-defined.html @@ -90,4 +90,22 @@ function test_defined(expected, element, description) { assert_equals(style.color, expected ? defined : not_defined, 'getComputedStyle'); }, `${description} should ${expected ? 'be' : 'not be'} :defined`); } + +test(function () { + var log = []; + var instance = document.createElement('my-custom-element-2'); + document.body.appendChild(instance); + customElements.define('my-custom-element-2',class extends HTMLElement { + constructor() { + super(); + log.push([this, 'begin']); + assert_false(this.matches(":defined"), "During construction, this should not match :defined"); + log.push([this, 'end']); + } + }); + assert_equals(log.length, 2); + assert_array_equals(log[0], [instance, 'begin']); + assert_array_equals(log[1], [instance, 'end']); +}, 'this.matches(:defined) should not match during an upgrade'); + </script> diff --git a/tests/wpt/web-platform-tests/custom-elements/upgrading.html b/tests/wpt/web-platform-tests/custom-elements/upgrading.html index d6b8ed38754..ac0fdff7a21 100644 --- a/tests/wpt/web-platform-tests/custom-elements/upgrading.html +++ b/tests/wpt/web-platform-tests/custom-elements/upgrading.html @@ -12,6 +12,9 @@ <script src="resources/custom-elements-helpers.js"></script> </head> <body> +<infinite-cloning-element-1></infinite-cloning-element-1> +<infinite-cloning-element-2 id="a"></infinite-cloning-element-2> +<infinite-cloning-element-2 id="b"></infinite-cloning-element-2> <div id="log"></div> <script> setup({allow_uncaught_exception:true}); @@ -203,6 +206,53 @@ test(() => { }, 'If definition\'s disable shadow is true and element\'s shadow root is ' + 'non-null, then throw a "NotSupportedError" DOMException.'); +test(() => { + var log = []; + + customElements.define('infinite-cloning-element-1',class extends HTMLElement { + constructor() { + super(); + log.push([this, 'begin']); + // Potential infinite recursion: + customElements.upgrade(this); + log.push([this, 'end']); + } + }); + + assert_equals(log.length, 2); + const instance = document.querySelector("infinite-cloning-element-1"); + assert_array_equals(log[0], [instance, 'begin']); + assert_array_equals(log[1], [instance, 'end']); +}, 'Infinite constructor recursion with upgrade(this) should not be possible'); + +test(() => { + var log = []; + + customElements.define('infinite-cloning-element-2',class extends HTMLElement { + constructor() { + super(); + log.push([this, 'begin']); + const b = document.querySelector("#b"); + b.remove(); + // While this constructor is running for "a", "b" is still + // undefined, and so inserting it into the document will enqueue a + // second upgrade reaction for "b" in addition to the one enqueued + // by defining x-foo. + document.body.appendChild(b); + log.push([this, 'end']); + } + }); + + assert_equals(log.length, 4); + const instanceA = document.querySelector("#a"); + const instanceB = document.querySelector("#b"); + assert_array_equals(log[0], [instanceA, 'begin']); + assert_array_equals(log[1], [instanceB, 'begin']); + assert_array_equals(log[2], [instanceB, 'end']); + assert_array_equals(log[3], [instanceA, 'end']); +}, 'Infinite constructor recursion with appendChild should not be possible'); + + </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/domxpath/lexical-structure.html b/tests/wpt/web-platform-tests/domxpath/lexical-structure.html new file mode 100644 index 00000000000..f93820b0e41 --- /dev/null +++ b/tests/wpt/web-platform-tests/domxpath/lexical-structure.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<link rel="help" href="https://www.w3.org/TR/1999/REC-xpath-19991116/#exprlex"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<script> +function parse(expression) { + document.evaluate(expression, document, null, XPathResult.ANY_TYPE, null); +} + +// https://www.w3.org/TR/1999/REC-xpath-19991116/#NT-Literal +test(() => { + parse(' \'a"bc\' '); + parse(' "a\'bc" '); + + assert_throws(new SyntaxError(), () => { parse(' \u2019xyz\u2019 '); }); +}, 'Literal: Only \' and " should be handled as literal quotes.'); + +// https://www.w3.org/TR/1999/REC-xpath-19991116/#NT-ExprWhitespace +test(() => { + parse(' \t\r\n.\r\n\t '); + + assert_throws(new SyntaxError(), () => { parse('\x0B\x0C .'); }); + assert_throws(new SyntaxError(), () => { parse('\x0E\x0F .'); }); + assert_throws(new SyntaxError(), () => { parse('\u3000 .'); }); + assert_throws(new SyntaxError(), () => { parse('\u2029 .'); }); +}, 'ExprWhitespace: Only #x20 #x9 #xD or #xA must be handled as a whitespace.'); +</script> +</body> diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/time.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/time.html index ad4e38cbc74..ec815d4cb30 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/time.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/time.html @@ -291,8 +291,11 @@ test(function(){ } , "stepDown stop so lower than the minimum value"); test(function(){ + // Set min value to ensure that 15:01 - base is a multiple of 2 min (i.e., a + // valid value). + _StepTest.min = "14:01"; _StepTest.max = "15:01"; - this.add_cleanup(function() { _StepTest.max = ""; }); + this.add_cleanup(function() { _StepTest.min = _StepTest.max = ""; }); _StepTest.value = "15:00"; _StepTest.step = "120"; _StepTest.stepUp(); diff --git a/tests/wpt/web-platform-tests/interfaces/webaudio.idl b/tests/wpt/web-platform-tests/interfaces/webaudio.idl index 674673d90b1..9491090337c 100644 --- a/tests/wpt/web-platform-tests/interfaces/webaudio.idl +++ b/tests/wpt/web-platform-tests/interfaces/webaudio.idl @@ -26,28 +26,36 @@ interface BaseAudioContext : EventTarget { AnalyserNode createAnalyser (); BiquadFilterNode createBiquadFilter (); - AudioBuffer createBuffer (unsigned long numberOfChannels, unsigned long length, float sampleRate); + AudioBuffer createBuffer (unsigned long numberOfChannels, + unsigned long length, + float sampleRate); AudioBufferSourceNode createBufferSource (); ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6); - ChannelSplitterNode createChannelSplitter (optional unsigned long numberOfOutputs = 6); + ChannelSplitterNode createChannelSplitter ( + optional unsigned long numberOfOutputs = 6); ConstantSourceNode createConstantSource (); ConvolverNode createConvolver (); DelayNode createDelay (optional double maxDelayTime = 1.0); DynamicsCompressorNode createDynamicsCompressor (); GainNode createGain (); - IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback); + IIRFilterNode createIIRFilter (sequence<double> feedforward, + sequence<double> feedback); OscillatorNode createOscillator (); PannerNode createPanner (); - PeriodicWave createPeriodicWave (sequence<float> real, sequence<float> imag, optional PeriodicWaveConstraints constraints = {}); - ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0, - optional unsigned long numberOfInputChannels = 2, - optional unsigned long numberOfOutputChannels = 2); + PeriodicWave createPeriodicWave (sequence<float> real, + sequence<float> imag, + optional PeriodicWaveConstraints constraints = {}); + ScriptProcessorNode createScriptProcessor( + optional unsigned long bufferSize = 0, + optional unsigned long numberOfInputChannels = 2, + optional unsigned long numberOfOutputChannels = 2); StereoPannerNode createStereoPanner (); WaveShaperNode createWaveShaper (); - Promise<AudioBuffer> decodeAudioData (ArrayBuffer audioData, - optional DecodeSuccessCallback? successCallback, - optional DecodeErrorCallback? errorCallback); + Promise<AudioBuffer> decodeAudioData ( + ArrayBuffer audioData, + optional DecodeSuccessCallback? successCallback, + optional DecodeErrorCallback? errorCallback); }; enum AudioContextLatencyCategory { @@ -67,7 +75,8 @@ interface AudioContext : BaseAudioContext { Promise<void> close (); MediaElementAudioSourceNode createMediaElementSource (HTMLMediaElement mediaElement); MediaStreamAudioSourceNode createMediaStreamSource (MediaStream mediaStream); - MediaStreamTrackAudioSourceNode createMediaStreamTrackSource (MediaStreamTrack mediaStreamTrack); + MediaStreamTrackAudioSourceNode createMediaStreamTrackSource ( + MediaStreamTrack mediaStreamTrack); MediaStreamAudioDestinationNode createMediaStreamDestination (); }; @@ -116,8 +125,14 @@ interface AudioBuffer { readonly attribute double duration; readonly attribute unsigned long numberOfChannels; Float32Array getChannelData (unsigned long channel); - void copyFromChannel (Float32Array destination, unsigned long channelNumber, optional unsigned long bufferOffset = 0); - void copyToChannel (Float32Array source, unsigned long channelNumber, optional unsigned long bufferOffset = 0); + void copyFromChannel (Float32Array destination, + unsigned long channelNumber, + optional unsigned long bufferOffset = 0); + void copyToChannel (Float32Array source, + + unsigned long channelNumber, + + optional unsigned long bufferOffset = 0); }; dictionary AudioBufferOptions { @@ -136,7 +151,9 @@ interface AudioNode : EventTarget { void disconnect (unsigned long output); void disconnect (AudioNode destinationNode); void disconnect (AudioNode destinationNode, unsigned long output); - void disconnect (AudioNode destinationNode, unsigned long output, unsigned long input); + void disconnect (AudioNode destinationNode, + unsigned long output, + unsigned long input); void disconnect (AudioParam destinationParam); void disconnect (AudioParam destinationParam, unsigned long output); readonly attribute BaseAudioContext context; @@ -180,7 +197,11 @@ interface AudioParam { AudioParam linearRampToValueAtTime (float value, double endTime); AudioParam exponentialRampToValueAtTime (float value, double endTime); AudioParam setTargetAtTime (float target, double startTime, float timeConstant); - AudioParam setValueCurveAtTime (sequence<float> values, double startTime, double duration); + AudioParam setValueCurveAtTime (sequence<float> values, + + double startTime, + + double duration); AudioParam cancelScheduledValues (double cancelTime); AudioParam cancelAndHoldAtTime (double cancelTime); }; @@ -215,7 +236,8 @@ dictionary AnalyserOptions : AudioNodeOptions { [Exposed=Window] interface AudioBufferSourceNode : AudioScheduledSourceNode { - constructor (BaseAudioContext context, optional AudioBufferSourceOptions options = {}); + constructor (BaseAudioContext context, + optional AudioBufferSourceOptions options = {}); attribute AudioBuffer? buffer; readonly attribute AudioParam playbackRate; readonly attribute AudioParam detune; @@ -289,7 +311,9 @@ interface BiquadFilterNode : AudioNode { readonly attribute AudioParam detune; readonly attribute AudioParam Q; readonly attribute AudioParam gain; - void getFrequencyResponse (Float32Array frequencyHz, Float32Array magResponse, Float32Array phaseResponse); + void getFrequencyResponse (Float32Array frequencyHz, + Float32Array magResponse, + Float32Array phaseResponse); }; dictionary BiquadFilterOptions : AudioNodeOptions { @@ -353,7 +377,8 @@ dictionary DelayOptions : AudioNodeOptions { [Exposed=Window] interface DynamicsCompressorNode : AudioNode { - constructor (BaseAudioContext context, optional DynamicsCompressorOptions options = {}); + constructor (BaseAudioContext context, + optional DynamicsCompressorOptions options = {}); readonly attribute AudioParam threshold; readonly attribute AudioParam knee; readonly attribute AudioParam ratio; @@ -383,7 +408,9 @@ dictionary GainOptions : AudioNodeOptions { [Exposed=Window] interface IIRFilterNode : AudioNode { constructor (BaseAudioContext context, IIRFilterOptions options); - void getFrequencyResponse (Float32Array frequencyHz, Float32Array magResponse, Float32Array phaseResponse); + void getFrequencyResponse (Float32Array frequencyHz, + Float32Array magResponse, + Float32Array phaseResponse); }; dictionary IIRFilterOptions : AudioNodeOptions { @@ -555,7 +582,8 @@ callback AudioWorkletProcessorConstructor = AudioWorkletProcessor (object option [Global=(Worklet, AudioWorklet), Exposed=AudioWorklet] interface AudioWorkletGlobalScope : WorkletGlobalScope { - void registerProcessor (DOMString name, AudioWorkletProcessorConstructor processorCtor); + void registerProcessor (DOMString name, + AudioWorkletProcessorConstructor processorCtor); readonly attribute unsigned long long currentFrame; readonly attribute double currentTime; readonly attribute float sampleRate; diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc.idl b/tests/wpt/web-platform-tests/interfaces/webrtc.idl index e30fc38fd00..49ed6bb0333 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc.idl @@ -13,7 +13,7 @@ dictionary RTCConfiguration { }; enum RTCIceCredentialType { - "password", + "password" }; dictionary RTCIceServer { diff --git a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js index 7eee8ce04c4..4bafc9b0ad8 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js +++ b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js @@ -24,6 +24,14 @@ function toMojoNDEFMessage(message) { function toMojoNDEFRecord(record) { let nfcRecord = new device.mojom.NDEFRecord(); + if (record.recordType.search(':') != -1) { + // Simply checks the existence of ':' to decide whether it's an external + // type. As a mock, no need to really implement the validation algo at + // https://w3c.github.io/web-nfc/#dfn-validate-external-type. + nfcRecord.category = device.mojom.NDEFRecordTypeCategory.kExternal; + } else { + nfcRecord.category = device.mojom.NDEFRecordTypeCategory.kStandardized; + } nfcRecord.recordType = record.recordType; nfcRecord.mediaType = record.mediaType; nfcRecord.id = record.id; diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html index 0522c43b16a..a1f9e4f3ace 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/animations/setting-the-playback-rate-of-an-animation.html @@ -97,8 +97,8 @@ promise_test(async t => { promise_test(async t => { const animation = createDiv(t).animate(null, 100 * MS_PER_SEC); - animation.currentTime = 50 * MS_PER_SEC; await animation.ready; + animation.currentTime = 50 * MS_PER_SEC; animation.playbackRate = 0; // Ensure that current time does not drift. assert_equals(animation.playState, 'running'); diff --git a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html index d46503ab172..c62ea7b0d62 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NDEFRecord_constructor.https.html @@ -260,15 +260,15 @@ test(() => { assert_throws(new TypeError, () => new NDEFRecord( - createRecord('foo.eXamPle.coM:bAr*-', "A string is not a BufferSource or NDEFMessage")), + createRecord('foo.eXamPle.com:bAr*-', "A string is not a BufferSource or NDEFMessage")), 'Only BufferSource and NDEFMessage are allowed to be the record data.'); let buffer = new ArrayBuffer(4); new Uint8Array(buffer).set([1, 2, 3, 4]); // Feed ArrayBuffer. { - const record = new NDEFRecord(createRecord('foo.eXamPle.coM:bAr*-', buffer, test_record_id)); - assert_equals(record.recordType, 'foo.example.com:bAr*-', 'recordType'); + const record = new NDEFRecord(createRecord('foo.eXamPle.com:bAr*-', buffer, test_record_id)); + assert_equals(record.recordType, 'foo.eXamPle.com:bAr*-', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [1, 2, 3, 4], @@ -280,8 +280,8 @@ { let buffer_view = new Uint8Array(buffer, 1); const record = new NDEFRecord(createRecord( - 'foo.eXamPle.coM:bAr*-', buffer_view, test_record_id)); - assert_equals(record.recordType, 'foo.example.com:bAr*-', 'recordType'); + 'foo.eXamPle.com:bAr*-', buffer_view, test_record_id)); + assert_equals(record.recordType, 'foo.eXamPle.com:bAr*-', 'recordType'); assert_equals(record.mediaType, null, 'mediaType'); assert_equals(record.id, test_record_id, 'id'); assert_array_equals(new Uint8Array(record.data.buffer), [2, 3, 4], @@ -305,13 +305,23 @@ }, 'NDEFRecord constructor with record type string being treated as case sensitive'); test(() => { + // Length of the external type is 255, OK. + const record = new NDEFRecord(createRecord( + [...Array(251)].map(_ => 'a').join('') + ':xyz', test_buffer_data)); + // Exceeding 255, Throws. assert_throws(new TypeError, () => new NDEFRecord(createRecord( - ':xyz', test_buffer_data)), 'The domain should not be empty.'); + [...Array(252)].map(_ => 'a').join('') + ':xyz', test_buffer_data)), + 'The external type should not be longer than 255.'); + assert_throws(new TypeError, () => new NDEFRecord(createRecord( - '[:xyz', test_buffer_data)), '"[" is not a valid FQDN.'); + 'xyz', test_buffer_data)), 'The external type must have a \':\'.'); + assert_throws(new TypeError, () => new NDEFRecord(createRecord( + ':xyz', test_buffer_data)), 'The domain should not be empty.'); assert_throws(new TypeError, () => new NDEFRecord(createRecord( 'example.com:', test_buffer_data)), 'The type should not be empty.'); assert_throws(new TypeError, () => new NDEFRecord(createRecord( + 'example.com:xyz[', test_buffer_data)), 'The type should not contain \'[\'.'); + assert_throws(new TypeError, () => new NDEFRecord(createRecord( 'example.com:xyz~', test_buffer_data)), 'The type should not contain \'~\'.'); assert_throws(new TypeError, () => new NDEFRecord(createRecord( 'example.com:xyz/', test_buffer_data)), 'The type should not contain \'/\'.'); |