diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 9e39bb43f96..05cb83081e4 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -21889,15 +21889,6 @@ ] ] }, - "screen-wake-lock": { - "wakelock-document-hidden-manual.https.html": [ - "05368bdfb89b2fd9e4ea442b4124fa784babfc10", - [ - null, - {} - ] - ] - }, "selection": { "dir-manual.html": [ "39cf6555234b7b2e189412e97aed5a93b19ccea2", @@ -134206,7 +134197,7 @@ ] ], "border-image-slice-005.htm": [ - "9993ccd673cdb0543352b0ff7a639f687b55d48f", + "5d8bd7df1c3fe1b09a8a9387e355e2c7d111b805", [ null, [ @@ -134222,11 +134213,11 @@ [ [ 0, - 35 + 92 ], [ 0, - 1250 + 5314 ] ] ] @@ -134235,7 +134226,7 @@ ] ], "border-image-slice-007.htm": [ - "7666444ce574c1c4c283b6a8fcb27e6dd0ed9917", + "e9c1827fc76c00f0bb81a23f27335a2f2074ace2", [ null, [ @@ -134251,11 +134242,11 @@ [ [ 0, - 35 + 92 ], [ 0, - 1250 + 5314 ] ] ] @@ -135613,7 +135604,7 @@ ] ], "css3-border-image-repeat-repeat.html": [ - "1b8e7588d261e9478cbe35a68039b0da06c900e3", + "b6db467a668856eac84475dc2b86e03fc4342095", [ null, [ @@ -135622,7 +135613,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 58 + ], + [ + 0, + 412 + ] + ] + ] + ] + } ] ], "css3-border-image-repeat-stretch.html": [ @@ -139227,6 +139234,19 @@ {} ] ], + "nested-flex-item-expansion-in-mulicol.html": [ + "56aa3ec5c26878e4b12be7fe09e2700021e6b19c", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "single-line-column-flex-fragmentation-001.html": [ "d1411f9a16a14585b945408b162182ed343419d2", [ @@ -207711,6 +207731,19 @@ {} ] ], + "overflow-overlay.tentative.html": [ + "e3cb8d7180e4bc5ddb84506e401c0b8c90d81470", + [ + null, + [ + [ + "/css/css-overflow/overflow-overlay-ref.html", + "==" + ] + ], + {} + ] + ], "overflow-recalc-001.html": [ "9c5919a5044bdbac0e782fbb662f1ff3b81857fc", [ @@ -216863,32 +216896,6 @@ {} ] ], - "scoped-reference-animation-001.html": [ - "891bda52a39b42322cf15cb01727f9cad58cf026", - [ - null, - [ - [ - "/css/css-scoping/scoped-reference-animation-ref.html", - "==" - ] - ], - {} - ] - ], - "scoped-reference-animation-002.html": [ - "d5c25f06c0aa73269615ec9bf2b6399729ea261a", - [ - null, - [ - [ - "/css/css-scoping/scoped-reference-animation-ref.html", - "==" - ] - ], - {} - ] - ], "shadow-assign-dynamic-001.html": [ "b9a0d1a2991c071bb3654995f93c4ac7ff495aee", [ @@ -224745,6 +224752,32 @@ {} ] ], + "fit-content-block-size-abspos.html": [ + "d8ce91f9f626f8569bd9452c9fd90ead9a75ee4e", + [ + null, + [ + [ + "/css/css-sizing/fit-content-block-size-fixedpos-ref.html", + "==" + ] + ], + {} + ] + ], + "fit-content-block-size-fixedpos.html": [ + "1f08c6ab9f20747a3ab166a12654e106b5d51efd", + [ + null, + [ + [ + "/css/css-sizing/fit-content-block-size-fixedpos-ref.html", + "==" + ] + ], + {} + ] + ], "fit-content-contribution-001.html": [ "efe3d49f4c8e51e9a4d5c0354cf8a35678658f06", [ @@ -227266,6 +227299,19 @@ {} ] ], + "whitespace-001.html": [ + "3fc6040b472228506b94ccc5fc546d9116cdc94d", + [ + null, + [ + [ + "/css/css-tables/whitespace-001-ref.html", + "==" + ] + ], + {} + ] + ], "zero-rowspan-001.html": [ "bef5b947fcc817f165fbd0c73fb5b260c520e632", [ @@ -310401,6 +310447,19 @@ ], {} ] + ], + "painting-stretchy-operator-001.html": [ + "2a9578badc0474075e219bf44a0a855a6fdc362c", + [ + null, + [ + [ + "/mathml/presentation-markup/operators/painting-stretchy-operator-001-ref.html", + "==" + ] + ], + {} + ] ] }, "radicals": { @@ -383236,6 +383295,10 @@ "e81f5c158a91b87f7c9d385331842ed56f09e4b3", [] ], + "overflow-overlay-ref.html": [ + "3d88b75890c0e20a6beda2f4607ed0ae6ef49d4a", + [] + ], "overflow-scroll-big-border-small-content-ref.html": [ "c7ea1807443ef1b2d454edd547e65c89a59cea16", [] @@ -385330,10 +385393,6 @@ [] ] }, - "scoped-reference-animation-ref.html": [ - "9f407eb690e0fb3d033afba0817082f84e30b783", - [] - ], "slotted-placeholder-ref.html": [ "f99c0385d061766b49d55e7703bf596fe69d6ec2", [] @@ -386618,6 +386677,10 @@ "c8d67a8d27457acc6edaf3a60d31fc005791d6ed", [] ], + "fit-content-block-size-fixedpos-ref.html": [ + "0f9f8bd1b0352ea66763232f3a093eb569ca9511", + [] + ], "hori-block-size-small-or-larger-than-container-with-min-or-max-content-1-ref.html": [ "263a0869aedbaceb06ebe81a53372c905e8acd9e", [] @@ -387338,6 +387401,10 @@ "27eceb19b5a41355f288f94dbfa4daba574cbfde", [] ], + "whitespace-001-ref.html": [ + "e9d5c50ccd6fb293976675968dcc591a144cfdf9", + [] + ], "zero-rowspan-001-ref.html": [ "4f1dbdf96d301579da7fe3e9e493318e1920b705", [] @@ -400107,7 +400174,7 @@ [] ], "computed-testcommon.js": [ - "e8d3a523477e11650bea357b1e891faa1a3d9e26", + "831baf311a308ad30f93755ac69d698767254ebb", [] ], "delete-other-rule-crash.css": [ @@ -401318,7 +401385,7 @@ }, "scrolling": { "scroll_support.js": [ - "847a9891d6a87ce3ac5ccfeb382e619f59992999", + "de23b6f84ff668c1542bd5210962e8535eae526d", [] ] } @@ -401891,7 +401958,7 @@ [] ], "delete.js": [ - "26858d17197e124728c548a58796d7a16a08eb03", + "c1f48a74b2010bd44ff71a33f9f9f4b4cbb5caac", [] ], "fontname.js": [ @@ -401903,7 +401970,7 @@ [] ], "forecolor.js": [ - "efca1970ec9f57da8f8ff544f64d21ca875c965f", + "c3271b32c965c7fe56ba8ab85de40eb7ea7e69c1", [] ], "formatblock.js": [ @@ -401911,7 +401978,7 @@ [] ], "forwarddelete.js": [ - "323d2b81b9f45f044729331e0490ef7d2682a4cd", + "832ba608a04587feeb85308f23f6b530b3e65b79", [] ], "hilitecolor.js": [ @@ -406038,8 +406105,12 @@ "7a90c74f3e51bf9d61870ec33d16b0857bb07772", [] ], + "stretchy-centered-on-baseline.woff": [ + "fd753edf7611a36570045a357690a1137ee5d137", + [] + ], "stretchy.woff": [ - "fc1b75c948d460b5f6061122bca29b4ad737fc79", + "eb67181e1ea241ff03a2a5d6b98c93238cc011cf", [] ], "underover-accentbaseheight4000-overbarextraascender3000.woff": [ @@ -410162,19 +410233,19 @@ [] ], "gentestutils.py": [ - "16ca5f410c0dd1182271b151fc2fa3e0530248e6", + "2517568a5a83c9e8539a7c93e69aaf8a085504f4", [] ], "gentestutilsunion.py": [ - "047dd6c802b14f375f8049afa211ba921715ca6c", + "4c65d688c25f27d6d29f4732f1f250323385a945", [] ], "name2dir-canvas.yaml": [ - "f1ebe4b8a9d0c3c1df735f8c00ea9f7f443c3b82", + "c3818ebc76e8d85636ed298a580ec14f8253a6fa", [] ], "name2dir-offscreen.yaml": [ - "4ac261fe325fddc6563f49423c400a15e4884563", + "807b09507b1cb137cef392be63a550f49bdd9725", [] ], "name2dir.yaml": [ @@ -410199,10 +410270,6 @@ "fe7b8841ae97ed4f55abef0f48fd684206d5a4aa", [] ], - "line-styles.yaml": [ - "604f4f3659a40b89b05f1bce3968f2580dce3c6f", - [] - ], "meta.yaml": [ "b8ffbd5075860d9b3600ed2bb794b5da9fa2de5e", [] @@ -410241,10 +410308,6 @@ "9d34588c100cc47586bc1573de182f5b2a7eaf5b", [] ], - "line-styles.yaml": [ - "984949827db86ce0c071db266e399b617fc5c7f1", - [] - ], "meta.yaml": [ "aa850d4e48f37d0231c2af35c6f4ac807c095ede", [] @@ -410293,7 +410356,7 @@ [] ], "drawing-images-to-the-canvas.yaml": [ - "83de88113f23a5051bed0296db4ce17c2bec9ebe", + "e263bf0253dd121a97f32e3747c32e7799518ccd", [] ], "drawing-rectangles-to-the-canvas.yaml": [ @@ -410304,6 +410367,10 @@ "cc5dfe7fefbcd9a5cbf487e46cdab3afdd84c3d1", [] ], + "line-styles.yaml": [ + "604f4f3659a40b89b05f1bce3968f2580dce3c6f", + [] + ], "reset.yaml": [ "4107166248a8a652fbc0441e3c4d30bf71bb4484", [] @@ -415108,6 +415175,14 @@ ] } } + }, + "terminology-0": { + "resources": { + "send-back-base-url.html": [ + "6fdf81d1db76a752283a740a45b79461aaae071a", + [] + ] + } } } }, @@ -423955,7 +424030,7 @@ ] }, "lint.ignore": [ - "011f05c607e24b53f0d1120dc9c8a6cf5fdf06d9", + "f6776a6617497600fb985d921859e5672f2f8df3", [] ], "loading": { @@ -424565,6 +424640,10 @@ "2cbed129401e721fccfeb12874d6b7223bff8def", [] ], + "painting-stretchy-operator-001-ref.html": [ + "0c7642a20ac6ebc0779a2c9e2222797c92dad579", + [] + ], "support": { "operator-dictionary-tests.css": [ "4f80ad7f8dd0e28a40900b0c11ee9adaa800bd97", @@ -425108,8 +425187,12 @@ "f112a707690e7eb095c9cf7152d0f3877e17a27c", [] ], + "stretchy-centered-on-baseline.py": [ + "fa75bafcf0eb6368bae11b9ac144e6703b58d2ca", + [] + ], "stretchy.py": [ - "b93dbcee74d01b53c8d4cd884fb3b7395f0c0e04", + "1d1096261cb6350291ce1a406c749c0dc434d929", [] ], "underover.py": [ @@ -425126,7 +425209,7 @@ [] ], "mathfont.py": [ - "d030c9f2ce07785112cea4b9e786cdbe7020829e", + "79772a24cb5e8b4269005ef5337495062ccdb8f8", [] ], "misc.py": [ @@ -430057,7 +430140,7 @@ [] ], "nested-contexts.js": [ - "c0822943e86a68f43d003e03166fbc987014946e", + "31337ae5da2e181df178fa881bb38c3f394580b1", [] ], "nested.css": [ @@ -430273,7 +430356,7 @@ [] ], "mock-imagecapture.js": [ - "97d45d453bdda968b2356acf0b129d2eb0347f64", + "5753b7ec502389bcf248ed91ecb4c75d7a975ed3", [] ], "mock-managed-config.js": [ @@ -431025,7 +431108,7 @@ }, "view-timelines": { "testcommon.js": [ - "12693c35d768263b9db625702f174d7cf79606c0", + "65301215c4732720f578140b32b6207a7325f400", [] ] } @@ -434782,12 +434865,12 @@ [] ], "helpers.js": [ - "337a92c5d4a7ca14ec40f165bb95a82c63dd39d1", + "e607124155e031a273f5abe7e9dad2da8b988d7e", [] ], "resources": { "embedded_responder.js": [ - "0d563e6b30ccaf55229de06e5e1c0a846f5f4e4b", + "0ff599d0bbe4d1afab068baf35222d397d7016f7", [] ], "hasStorageAccess-iframe.html": [ @@ -434798,6 +434881,10 @@ "95169503c2a8466ddc5e3d0928de96b4e268b3a8", [] ], + "permissions-iframe.https.html": [ + "b83a05c3f1bdf00107447527d5e009b06ddb0187", + [] + ], "requestStorageAccess-iframe.html": [ "8b47786e17d43ab6b468683dd460d1c77960f47e", [] @@ -445700,6 +445787,20 @@ } } }, + "top-level-storage-access-api": { + "README.md": [ + "31a32b8033e3e3d3b2c6f9a04230b76186fbc1c3", + [] + ], + "tentative": { + "resources": { + "requestStorageAccessForOrigin-iframe.html": [ + "3e2f6d5b6288993714f3ee56ae89631e03d563b9", + [] + ] + } + } + }, "touch-events": { "META.yml": [ "3dcab9a534bc43753827b2d4f7cc6d3cd9974404", @@ -446459,7 +446560,7 @@ [] ], "setters_tests.json": [ - "df75ab57c420dc18067c1ba6d601503a64e9422a", + "9c4eedc60893edc7adab53d85b88e76fe6b9e5a2", [] ], "toascii.json": [ @@ -487915,21 +488016,21 @@ ] ], "anchor-position-dynamic-002.html": [ - "f70f93441d0281c99eb84b3078a11136f09845cd", + "a0924e92201993d081b01ca2a20b9ae37895698a", [ null, {} ] ], "anchor-position-dynamic-003.html": [ - "04ccd56c77c3dc4fae24d90ebc19ad26a29f0eb1", + "6deba86c7efe75dce05a3c3280e4193e7719ae79", [ null, {} ] ], "anchor-position-dynamic-004.html": [ - "b818e23c7fa24dc6cb5e76d09a63c069ff6e7b7a", + "01f1cd2ebc7e185db37c570139bd803756f51c27", [ null, {} @@ -488069,7 +488170,7 @@ ] ], "anchor-query-fallback.html": [ - "8d413fd862d5b697b07d4777ce12053b34c4d7e5", + "95d43ffedb7b8cbe437c2e444d5b454d5738ffcb", [ null, {} @@ -491270,7 +491371,7 @@ ] ], "at-container-parsing.html": [ - "2fbd4b8b6f46185d97b2badf1a71129012cc7df4", + "d0aef94de55eca8c00cde4d3ddb7bd94105573c8", [ null, {} @@ -491283,6 +491384,13 @@ {} ] ], + "at-container-style-parsing.html": [ + "5bd9e018c1a317f5fe0dd055e04ef3f87d55f1cd", + [ + null, + {} + ] + ], "at-container-style-serialization.html": [ "9544463859106e2a4a3ca34cd80364139de29160", [ @@ -499914,6 +500022,13 @@ null, {} ] + ], + "baseline-source-vertical-align.html": [ + "32bbe434974df6bfab2a91c42dca3b8e4bf7f43f", + [ + null, + {} + ] ] }, "inheritance.html": [ @@ -501616,7 +501731,7 @@ }, "css-nesting": { "cssom.html": [ - "c7150cec5db459824e22d2ae445a62db6a484684", + "987c31103677ca662b8d2e2c2d14a542a155103a", [ null, {} @@ -514746,7 +514861,7 @@ ] ], "acos-asin-atan-atan2-computed.html": [ - "6fc8bdfe6af42bb53bbdfdaff71a9bb13135ccb4", + "2835e7a20abc917e111d22a9b04fca17493b4793", [ null, {} @@ -515000,7 +515115,7 @@ ] ], "exp-log-compute.html": [ - "8812253bf10bb940e855b9b0af5a57ab62fbf216", + "3fa240004426d6968f01808a4ab1f3fba3114522", [ null, {} @@ -515042,14 +515157,14 @@ ] ], "hypot-pow-sqrt-computed.html": [ - "a7d7dae72a5282f950fce5b42017755cc5f43116", + "aa4ec22edf2ff32fa5ad129e0cdeb0ca4d6e8fb1", [ null, {} ] ], "hypot-pow-sqrt-invalid.html": [ - "517acf57efd70e88d4f4b68a2206d1e3300fa658", + "edb3138012687d3a6d75a1bdc1a6623aec8deb1d", [ null, {} @@ -515308,7 +515423,7 @@ ] ], "signs-abs-computed.html": [ - "ba672f23cec532befccc2947c4ee14e48d1e2a79", + "74dff7c9c0c157a06db97868cac7abf3b1804d45", [ null, {} @@ -517592,6 +517707,13 @@ null, {} ] + ], + "xml-stylesheet-pi-in-doctype.xhtml": [ + "d25ca1765617f1457b90d31451925adc9817a084", + [ + null, + {} + ] ] }, "cssom-view": { @@ -522237,6 +522359,15 @@ {} ] ], + "requires-width-and-height-to-both-be-specified.https.html": [ + "0c707c668e9980901a2250ccb28042eb40c86f8c", + [ + null, + { + "testdriver": true + } + ] + ], "returns-window-with-document.https.html": [ "a1d7363e54bdc5fbc04a6ad6e0aad30b552ea8d7", [ @@ -523812,7 +523943,7 @@ ] ], "scrollend-event-for-user-scroll.html": [ - "e9be7c98483b86b9a8a7ce29202ba96e837df371", + "d51472fcb5127bfb7a51ef9c12a575be0b365afd", [ null, { @@ -524174,6 +524305,13 @@ {} ] ], + "Comment-in-doctype.xhtml": [ + "c0817d353de18ecad2234b6e0b648ee03d437557", + [ + null, + {} + ] + ], "DOMImplementation-createDocument.html": [ "835002b47077672583df7b364323428dd67ffee8", [ @@ -525409,6 +525547,13 @@ {} ] ], + "ProcessingInstruction-in-doctype.xhtml": [ + "c35e710f9cc81217e6fdddf4ea5b9ee3b5160d3a", + [ + null, + {} + ] + ], "ProcessingInstruction-literal-1.xhtml": [ "4eaf86cbdcea2df23fee6a802679affb548713e1", [ @@ -578562,112 +578707,112 @@ }, "line-styles": { "2d.line.cap.butt.html": [ - "7f34def5648a8d8b44deb038dfe091792893c2f0", + "717317de706f27c2603ac856b0852b9bfd6513eb", [ null, {} ] ], "2d.line.cap.butt.worker.js": [ - "3eacba11a3e16bf038a81808c1eb8a3a04f9816f", + "3ad21e9da96c507cd33974000b9e34013f1272da", [ "html/canvas/offscreen/line-styles/2d.line.cap.butt.worker.html", {} ] ], "2d.line.cap.closed.html": [ - "0a3f3fcab77edc110f8e338ce78a9b561b96d16f", + "b6479be77e10886954076487816b48085fdcd1d9", [ null, {} ] ], "2d.line.cap.closed.worker.js": [ - "24bace4c27535bda8afccb7d742a04aecb36d7a3", + "50c81519d2e7d44e7c0ee6e47bea2badb0f70c1c", [ "html/canvas/offscreen/line-styles/2d.line.cap.closed.worker.html", {} ] ], "2d.line.cap.invalid.html": [ - "f02cfcc758ce360334780143834e8bea22e54f7e", + "b4598fdd85ee385b287c8dfd1a1f4c66bcd75a06", [ null, {} ] ], "2d.line.cap.invalid.worker.js": [ - "4ef69f35afa820dc2faf7e237c86797cedcf0e45", + "bf933941023265afaca4c97a5d791ffb89613d22", [ "html/canvas/offscreen/line-styles/2d.line.cap.invalid.worker.html", {} ] ], "2d.line.cap.open.html": [ - "00b72b62d2d66f01c60e9e31e6b50b6ec62e4b63", + "211ff760f662a71385862f4c69fb687ed091676a", [ null, {} ] ], "2d.line.cap.open.worker.js": [ - "621de99a83f1dc83f215b46f0a5ae781846fba11", + "ff081deb7d0773dc2ad2b344d9f8b28734080b7c", [ "html/canvas/offscreen/line-styles/2d.line.cap.open.worker.html", {} ] ], "2d.line.cap.round.html": [ - "9f6c66567e9030c3347c80d61d5b33c38bd93ec6", + "37a27b17bcd57cf1c9d4efc888fda5d454fb12de", [ null, {} ] ], "2d.line.cap.round.worker.js": [ - "e744d2906fae4da099554f6fc215a85a36aef448", + "f03579ee54ba7e4405f52b50d529da8d1a74ada6", [ "html/canvas/offscreen/line-styles/2d.line.cap.round.worker.html", {} ] ], "2d.line.cap.square.html": [ - "0fd4b2c71a75515ca3a4bd4b0d7356d4bcbc2523", + "75f9e44e21ab7633e7704f3993f6b29fbc1a75bd", [ null, {} ] ], "2d.line.cap.square.worker.js": [ - "7684bbbc85f318b6c5f8e22cf322ff67f1e6f7ef", + "439f100409afeb8cb8b93ea7b68ce64df2f94dfa", [ "html/canvas/offscreen/line-styles/2d.line.cap.square.worker.html", {} ] ], "2d.line.cap.valid.html": [ - "ce7b4c8ad62c955d0b4b213e3f9f88a1d565528d", + "d4fcdfc0b5ef1deffefc6b8781035b73d2bd5228", [ null, {} ] ], "2d.line.cap.valid.worker.js": [ - "7fa84f4d6f445932912c8121be3362bb08196bcf", + "52907f433eccf6c2a115a555af60cb38d1eea48f", [ "html/canvas/offscreen/line-styles/2d.line.cap.valid.worker.html", {} ] ], "2d.line.cross.html": [ - "09d3a00b3177e26090857d6c86ee302ffa6c138e", + "51fd1c407846a99496c6a6c52e29a3c8889642f2", [ null, {} ] ], "2d.line.cross.worker.js": [ - "82b289bdeaca6fb5c85d608623f8fde79832c9ad", + "e455aa6155dd1f693e245f9930b35ccf0ca81928", [ "html/canvas/offscreen/line-styles/2d.line.cross.worker.html", {} @@ -578687,309 +578832,323 @@ {} ] ], + "2d.line.invalid.strokestyle.html": [ + "c1bb974dbf79d11f2edb822c44eca65e7f3e0e17", + [ + null, + {} + ] + ], + "2d.line.invalid.strokestyle.worker.js": [ + "c9f2fa3d9f2a4ead65a29d9efb9b98e9a1290e81", + [ + "html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.worker.html", + {} + ] + ], "2d.line.join.bevel.html": [ - "45c8d3eb5439224a9f70fc1a8a9a7d9db5454315", + "ecf83e7b5a0daf54fcb9d7f57c0f3860fb226de7", [ null, {} ] ], "2d.line.join.bevel.worker.js": [ - "2dfbf34f1566a8fbd446694d43da8c2c7d382396", + "87bf6a8d37c83ed5bce18d0470c86d1a7ccb8116", [ "html/canvas/offscreen/line-styles/2d.line.join.bevel.worker.html", {} ] ], "2d.line.join.closed.html": [ - "5e88ad0d0179b35b3150aceb6ce8f6682a9d6e67", + "7ce6599f4c100281033f251b7b7b6d0e90ab5da7", [ null, {} ] ], "2d.line.join.closed.worker.js": [ - "f2b029ecaf08058e1af459c9fa6b486b6f0b2a28", + "cc7073fadba492825e7d66092bcf97b65903e6b9", [ "html/canvas/offscreen/line-styles/2d.line.join.closed.worker.html", {} ] ], "2d.line.join.invalid.html": [ - "a54861205edf7801fcfedd9cd7c52682cbba7006", + "59d8b4311d8e0a9f03021d383d181c3145eda7a1", [ null, {} ] ], "2d.line.join.invalid.worker.js": [ - "23dfe67230df1034a6a9f8adbd509cd3e6c77a96", + "fa19bd70b0c3441c56d26cbe7bbc3e2ff5077f00", [ "html/canvas/offscreen/line-styles/2d.line.join.invalid.worker.html", {} ] ], "2d.line.join.miter.html": [ - "64918eca38382e4bcbda700df72c717f319abb12", + "d28fb8b69f384b18d9a7242efd0d06d2feab4974", [ null, {} ] ], "2d.line.join.miter.worker.js": [ - "02712a806eb2315b8d2456ab0e4fa6597a01ec98", + "3a3eb8f86f2803ca605e8555913a67cb84e52e7c", [ "html/canvas/offscreen/line-styles/2d.line.join.miter.worker.html", {} ] ], "2d.line.join.open.html": [ - "48154df59b63718fc26e3ddc8243a2d3a0b28bc0", + "5bd8e48061c30df3a46d4f0d470963442e3f5a82", [ null, {} ] ], "2d.line.join.open.worker.js": [ - "133854bf5488968ecc025385cdbd8d107fc4dbfa", + "5f52b6337adb6b7df37f263575ffe69ec727f977", [ "html/canvas/offscreen/line-styles/2d.line.join.open.worker.html", {} ] ], "2d.line.join.parallel.html": [ - "fdda123dd8a45ce88e41160e1c766fde0c3caba7", + "928bb86f120693444f24ab7c7852e3e34994f88f", [ null, {} ] ], "2d.line.join.parallel.worker.js": [ - "68ed957b6d7a00120f3fd2363a30e47115e4396a", + "d431d5e99f5ee26ec644fa0e5d8a24946b73d90a", [ "html/canvas/offscreen/line-styles/2d.line.join.parallel.worker.html", {} ] ], "2d.line.join.round.html": [ - "ebc71c30f8389fa91252473cabd9003491c6eabd", + "9441585e50d4b22373a5859ee2487fb8f285c223", [ null, {} ] ], "2d.line.join.round.worker.js": [ - "c7da3520b3fa3dfe05e0e64637826af215948753", + "44a847bd30cfbf3ec905789ccf8d3005fdf1e10d", [ "html/canvas/offscreen/line-styles/2d.line.join.round.worker.html", {} ] ], "2d.line.join.valid.html": [ - "eaa7c24967e99193cd6690c0179b4005ce85dd16", + "b3b15fc09d68111536cb93825efe6cec90314b93", [ null, {} ] ], "2d.line.join.valid.worker.js": [ - "4e7154358a0d17fd9150b812b1dd6d03f90d3b0d", + "407dbdd59e0fa3522dad0fc785909b812a3c786c", [ "html/canvas/offscreen/line-styles/2d.line.join.valid.worker.html", {} ] ], "2d.line.miter.acute.html": [ - "fd6902ca4d694e72483f9976ed1bd8d9742d4d2c", + "1713d8174ea27ed99aaeec806332ab439b03f1dc", [ null, {} ] ], "2d.line.miter.acute.worker.js": [ - "ef2954a7fe2e21342471f14016f3bd26884fe489", + "95040d131943b6b8486f7b02f6cfde1fcd5ad431", [ "html/canvas/offscreen/line-styles/2d.line.miter.acute.worker.html", {} ] ], "2d.line.miter.exceeded.html": [ - "fd0e7a1ca2ffd61480370c788ae6f6a3002c9a74", + "172c63ca1cedee595df9c12031cd87134c0fcc6b", [ null, {} ] ], "2d.line.miter.exceeded.worker.js": [ - "2e0fbd4910cec862ff397076a8273246cabc3ca5", + "e2b04e21f63c63fb01a0548793314ae8c4f991df", [ "html/canvas/offscreen/line-styles/2d.line.miter.exceeded.worker.html", {} ] ], "2d.line.miter.invalid.html": [ - "35bda1a11ac95c4ae331547580e4613af516bf4a", + "27251d4902aff9b6aa1448c276dec82be88bfd42", [ null, {} ] ], "2d.line.miter.invalid.worker.js": [ - "ef4c17eea2d64a87159c7bd05ece8a5eaf111cf6", + "dbc64d52d94f9075f97fcebc848d60a83d276464", [ "html/canvas/offscreen/line-styles/2d.line.miter.invalid.worker.html", {} ] ], "2d.line.miter.lineedge.html": [ - "292ed560de64898cd49c06e526eeb036a95273b8", + "5ede60b8995dbb7345dd182783836700b3ef9b87", [ null, {} ] ], "2d.line.miter.lineedge.worker.js": [ - "c7fa1e6d17334953694aa1be8c210d5f84df6071", + "24f4fa30f5ea0f0a14849ab310b606edd7bca556", [ "html/canvas/offscreen/line-styles/2d.line.miter.lineedge.worker.html", {} ] ], "2d.line.miter.obtuse.html": [ - "4e60253ddcad8abacc6527a39ca7f19e6e996104", + "0eaeedfa4197622d387b316ec27a1bb76e4833a4", [ null, {} ] ], "2d.line.miter.obtuse.worker.js": [ - "3cf78ed21e8ed72e5b0c82ff8717381845692cbc", + "45900dbc88a33d8dc1e8016b5375d1954743ac5f", [ "html/canvas/offscreen/line-styles/2d.line.miter.obtuse.worker.html", {} ] ], "2d.line.miter.rightangle.html": [ - "33cbe5d02c3b9dcc500d9296998f0f1326d2e993", + "7f8134f180fe52abdaa4bb44286f47a60cfa92d0", [ null, {} ] ], "2d.line.miter.rightangle.worker.js": [ - "895318c3ef35bee0a24b3c556651a42dbe700d0d", + "a2a07247b1e5667c4c4ea9940cbb28c884aa475d", [ "html/canvas/offscreen/line-styles/2d.line.miter.rightangle.worker.html", {} ] ], "2d.line.miter.valid.html": [ - "1d034052aa04b8b2a4e105a65349e1f2e11e46a0", + "2702fc57a3c18ce503590431a0dd73ae506872c4", [ null, {} ] ], "2d.line.miter.valid.worker.js": [ - "b34561407ea5c875d3d93d63fa67ef9cc314de61", + "c71c726f126de39180db96ecba995c9bf29affde", [ "html/canvas/offscreen/line-styles/2d.line.miter.valid.worker.html", {} ] ], "2d.line.miter.within.html": [ - "4af7c84a6a1532778e5c002d99231ab0ece16807", + "a9f7a366a38a687d54ea14d06f235e4dfe791045", [ null, {} ] ], "2d.line.miter.within.worker.js": [ - "64fe4312c27164eefc0906a70a6ccdb8db4e4c6b", + "c09ad957e89bd39f5952488252a99b7742864188", [ "html/canvas/offscreen/line-styles/2d.line.miter.within.worker.html", {} ] ], "2d.line.union.html": [ - "60defee7cb8aa32028ef7c71c814285c4c8bdd2b", + "1f8b3a0d67c7f2b43edeb43c7a880e504b3a8665", [ null, {} ] ], "2d.line.union.worker.js": [ - "ed262373374890d50fecc717b75ae3ce567b0b07", + "02ebbfd8af01ee2a6ea492af9c3f1bee3cad6d38", [ "html/canvas/offscreen/line-styles/2d.line.union.worker.html", {} ] ], "2d.line.width.basic.html": [ - "9b81b1c386c15d6bcd1c8e03c234625072c2aa35", + "1d0e0298288891a002c3322701f4325da44f846d", [ null, {} ] ], "2d.line.width.basic.worker.js": [ - "e822679c637a90c0d256ce564f29ed802cdb5548", + "d066427897971977a964faa1f427402fe7d42aca", [ "html/canvas/offscreen/line-styles/2d.line.width.basic.worker.html", {} ] ], "2d.line.width.invalid.html": [ - "439af5ecf29222c2cee965320ff9104a097ae7a9", + "993dc17948f42c334d0a3122e3722fafdb595891", [ null, {} ] ], "2d.line.width.invalid.worker.js": [ - "d87b87e901ba6ff58cf70e04273c5490269ef58f", + "dc5e2c29263ffcea8330f4cc136c52cec754acec", [ "html/canvas/offscreen/line-styles/2d.line.width.invalid.worker.html", {} ] ], "2d.line.width.scaledefault.html": [ - "78139978580c48c1b4caaf1c4e969d15a61c2789", + "091fd80c298a2cd0c29e84b9f408b2048dc56a52", [ null, {} ] ], "2d.line.width.scaledefault.worker.js": [ - "f9506c4accfa95b407fa68420fe3a50ad92b1627", + "a692f4cc11331236a028641bcebe5719a2fefac7", [ "html/canvas/offscreen/line-styles/2d.line.width.scaledefault.worker.html", {} ] ], "2d.line.width.transformed.html": [ - "e75cccd99127f0e0c5ec1ad4eae3b5de265c21fb", + "c54943e462cc70b0e04ab33a7b8cc1e610e3ae36", [ null, {} ] ], "2d.line.width.transformed.worker.js": [ - "f377d03ca75d6b50384e899c1dc5807cb344e1ed", + "e26e93b1e4f93e87557bd00d59bb728db4e74744", [ "html/canvas/offscreen/line-styles/2d.line.width.transformed.worker.html", {} ] ], "2d.line.width.valid.html": [ - "adaabccc114ce753372d0d748e4e1944a7aef83e", + "bdd86c6fbbf5cd69f5f1dfd5678f39cfa0f983ea", [ null, {} ] ], "2d.line.width.valid.worker.js": [ - "f409e1fa8bf08fadfdd2a8992383e0825b6ad817", + "df6ee9838e8a808ee8390e24c5cdf7257591ecd9", [ "html/canvas/offscreen/line-styles/2d.line.width.valid.worker.html", {} @@ -591074,6 +591233,20 @@ {} ] ], + "document-base-url-changes-after-nav-about-srcdoc.https.window.js": [ + "897647a45e1f41a2b3d1eae16a2fa1b6631e0da1", + [ + "html/infrastructure/urls/terminology-0/document-base-url-changes-after-nav-about-srcdoc.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ] + ] + } + ] + ], "document-base-url-initiated-grand-parent.https.window.js": [ "1983f02c267837a9152f94d91bdbde4b1c3add6d", [ @@ -593528,6 +593701,13 @@ ] ] }, + "http-equiv-and-name.html": [ + "144217df3848851445f78d4e1b725dc1d479584e", + [ + null, + {} + ] + ], "pragma-directives": { "attr-meta-http-equiv-refresh": { "allow-scripts-flag-changing-1.html": [ @@ -606165,6 +606345,13 @@ {} ] ], + "valid-invalid-fieldset-disconnected.html": [ + "6ad329438a86b411ebdab81a2a35a6ce8e95d6c9", + [ + null, + {} + ] + ], "valid-invalid.html": [ "d93407707f07e99dec7a45a9c2b5df388c17d98d", [ @@ -619214,7 +619401,7 @@ } ] ], - "setOptions-reject.html": [ + "takePhoto-reject.html": [ "4deee97d7bc77859602aa25d51e547bd0290409b", [ null, @@ -621601,6 +621788,13 @@ {} ] ], + "mixed-content-cors.https.sub.html": [ + "eb7b443df39bbca15767df3ad474a4375d5ab429", + [ + null, + {} + ] + ], "video-upgrade.https.sub.html": [ "ea2d07309c06af5d56e5553ed7a3f9a9a80bca8f", [ @@ -646499,6 +646693,15 @@ {} ] ], + "wakelock-document-hidden.https.html": [ + "c8c9712bdd95f65b292535df844634aedb5abb19", + [ + null, + { + "testdriver": true + } + ] + ], "wakelock-enabled-by-permissions-policy-attribute-redirect-on-load.https.html": [ "acfce43f96247949d7e4963970d0502d9c0b5d5d", [ @@ -646649,7 +646852,7 @@ ] ], "animation-timeline-computed.html": [ - "9cabaab1fee19011dc6f6eff464beb1d16fc796a", + "aaff44ecc913e3b1892c9bc0d3d06c94b5fed28e", [ null, {} @@ -646691,7 +646894,7 @@ ] ], "animation-timeline-parsing.html": [ - "1a30f11f851824801abc2b9501037c509588112d", + "a1e9963f1fac38f0614a1dacbb4a0bda2da0560a", [ null, {} @@ -646739,15 +646942,15 @@ {} ] ], - "scroll-timeline-axis-computed.tentative.html": [ - "8e23968b8e5db583eb0f093e2447da1eb472c508", + "scroll-timeline-axis-computed.html": [ + "b971aba6c0f8a5bd5a6e18ddbef1cc296263c305", [ null, {} ] ], - "scroll-timeline-axis-parsing.tentative.html": [ - "81be07e38f31f6b4f64dde75df6415c63a36bcb2", + "scroll-timeline-axis-parsing.html": [ + "25f48f0c70ab57359e291ac65f7c37436bd97425", [ null, {} @@ -646795,15 +646998,15 @@ {} ] ], - "scroll-timeline-name-computed.tentative.html": [ - "1acb964ef7455ab30c4c627c24f12b9c186753d0", + "scroll-timeline-name-computed.html": [ + "bfffafc652319721a56aea35757124b03d716e3a", [ null, {} ] ], - "scroll-timeline-name-parsing.tentative.html": [ - "a8f2e316501b1070dd8dde58c79500903e30f7b9", + "scroll-timeline-name-parsing.html": [ + "0fb271250ad9ab12dd022579b016b4e4a1c50323", [ null, {} @@ -646852,7 +647055,7 @@ ] ], "scroll-timeline-shorthand.tentative.html": [ - "b74113a52a20819f2e10d00abc8706128e072e21", + "24597b91e2f1d2b4b224e02b998436d4da1667a6", [ null, {} @@ -646872,6 +647075,13 @@ {} ] ], + "view-timeline-animation-range-update.tentative.html": [ + "41386bd7c55baff1062e3d0caa7f663cf80c0637", + [ + null, + {} + ] + ], "view-timeline-animation.html": [ "b816bb689732b3be59df48c0653ed892dc70cdd4", [ @@ -647188,14 +647398,14 @@ ] ], "inline-view-timeline-current-time.tentative.html": [ - "412145b04c0a951aa96312afb641159884ae5756", + "5b37798fe89035a5eb459ae479fc94ac42a05689", [ null, {} ] ], "view-timeline-get-current-time-range-name.html": [ - "8f385e7b6ebaa208582bc3bec068cc1beb791fd8", + "09714b572bc742607e030fc4d8934f5cbecded8d", [ null, {} @@ -647244,7 +647454,7 @@ ] ], "view-timeline-subject-size-changes.html": [ - "553facb52fa18323369c8061ce934ceb74d50f0e", + "a47fed8e4467093807ecc080686bd80501abade8", [ null, {} @@ -656637,7 +656847,7 @@ ] ], "requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.js": [ - "958b6095e359f0305e845360cd188f8e3a603449", + "a469d1b9628194cc25d7ae11da24c91fdb50efa5", [ "storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.html", { @@ -656849,6 +657059,28 @@ {} ] ], + "storage-access-permission.sub.https.window.js": [ + "88473ce38988246d165c351d8ea9a85c948eb186", + [ + "storage-access-api/storage-access-permission.sub.https.window.html", + { + "script_metadata": [ + [ + "script", + "helpers.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ] + ] + } + ] + ], "storageAccess.testdriver.sub.html": [ "80108b5190bdb6cb010194a3fbb79ec24ffa8aa2", [ @@ -664265,6 +664497,32 @@ ] ] }, + "top-level-storage-access-api": { + "tentative": { + "requestStorageAccessForOrigin.sub.window.js": [ + "f7dd478a7078673643d91fece6f64bf0148c7ec6", + [ + "top-level-storage-access-api/tentative/requestStorageAccessForOrigin.sub.window.html", + { + "script_metadata": [ + [ + "script", + "/storage-access-api/helpers.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ] + ] + } + ] + ] + } + }, "touch-events": { "expose-legacy-touch-event-apis.html": [ "2dab74dccd60f3b737a7a57362e28aac85a6cbd3", @@ -685219,7 +685477,7 @@ ] ], "set-metadata.https.html": [ - "3840bfc7a28d5dda404d48e5cdfef812350e8092", + "ad346c12e44e27c60862bb693cb84a96ac16f4fa", [ null, { @@ -685446,14 +685704,14 @@ ] ], "rtp-stats-creation.html": [ - "c12f266362ea432bff5f657413f8fbf612332a11", + "df672a7f0d99d6bddf19a857d1a1aeba17de2646", [ null, {} ] ], "supported-stats.https.html": [ - "2fdd3ad9094cc6436232d4d8ea78b379d4bfb480", + "24b4d3f06f04d740d3b45b4813222d97f891cbcc", [ null, { @@ -705349,6 +705607,13 @@ {} ] ], + "constructor-submitter.html": [ + "fd4ec862387698158e615b4c91744ea2e5e421d5", + [ + null, + {} + ] + ], "constructor.any.js": [ "43704538ab2489a6cbd7a2449532a040fdb4adbd", [ diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-001.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-001.html.ini new file mode 100644 index 00000000000..0842d0b5727 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-001.html.ini @@ -0,0 +1,3 @@ +[hit-test-floats-001.html] + [hit-test-floats-001] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini new file mode 100644 index 00000000000..13bd6abf376 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini @@ -0,0 +1,3 @@ +[hit-test-floats-004.html] + [Miss float below something else] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini new file mode 100644 index 00000000000..147f062e548 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini @@ -0,0 +1,3 @@ +[hit-test-floats-005.html] + [Miss clipped float] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini new file mode 100644 index 00000000000..b4eea326212 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini @@ -0,0 +1,3 @@ +[block-in-inline-hittest-001.html] + [block-in-inline-hittest-001] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini index 51432362d66..ee34bc91078 100644 --- a/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini +++ b/tests/wpt/metadata/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini @@ -1,3 +1,6 @@ [block-in-inline-hittest-002.html] [elementsFromPoint] expected: FAIL + + [elementFromPoint] + expected: FAIL diff --git a/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini new file mode 100644 index 00000000000..7c07b71d77c --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini @@ -0,0 +1,3 @@ +[hit-test-anonymous-block.html] + [Hit test beside line of text inside anonymous block] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini b/tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini deleted file mode 100644 index eb3cf41a070..00000000000 --- a/tests/wpt/metadata/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[opacity-animation-ending-correctly-002.html] - expected: TIMEOUT diff --git a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini index 68d900bb5b0..e7defcbf180 100644 --- a/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini +++ b/tests/wpt/metadata/css/css-fonts/variations/at-font-face-font-matching.html.ini @@ -149,9 +149,6 @@ [Matching font-style: 'oblique 0deg' should prefer 'oblique 40deg 50deg' over 'italic'] expected: FAIL - [Matching font-stretch: '90%' should prefer '60% 70%' over '110% 140%'] - expected: FAIL - [Matching font-style: 'italic' should prefer 'oblique 5deg 10deg' over 'oblique 5deg'] expected: FAIL @@ -245,9 +242,6 @@ [Matching font-weight: '501' should prefer '500' over '450 460'] expected: FAIL - [Matching font-style: 'oblique -21deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg'] - expected: FAIL - [Matching font-weight: '400' should prefer '351 398' over '501 550'] expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini index 2b9002f0e0c..14fcc6f7632 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini @@ -175,303 +175,3 @@ [padding-bottom length(em) / values] expected: FAIL - - [padding-bottom length(ex) / values] - expected: FAIL - - [padding-bottom length(mm) / values] - expected: FAIL - - [padding-bottom length(cm) / values] - expected: FAIL - - [padding-bottom length(in) / values] - expected: FAIL - - [padding-left length(pt) / values] - expected: FAIL - - [padding-left length(pc) / values] - expected: FAIL - - [padding-left length(px) / values] - expected: FAIL - - [padding-left length(em) / values] - expected: FAIL - - [padding-left length(ex) / values] - expected: FAIL - - [padding-left length(mm) / values] - expected: FAIL - - [padding-left length(cm) / values] - expected: FAIL - - [padding-left length(in) / values] - expected: FAIL - - [padding-right length(pt) / values] - expected: FAIL - - [padding-right length(pc) / values] - expected: FAIL - - [padding-right length(px) / values] - expected: FAIL - - [padding-right length(em) / values] - expected: FAIL - - [padding-right length(ex) / values] - expected: FAIL - - [padding-right length(mm) / values] - expected: FAIL - - [padding-right length(cm) / values] - expected: FAIL - - [padding-right length(in) / values] - expected: FAIL - - [padding-top length(pt) / values] - expected: FAIL - - [padding-top length(pc) / values] - expected: FAIL - - [padding-top length(px) / values] - expected: FAIL - - [padding-top length(em) / values] - expected: FAIL - - [padding-top length(ex) / values] - expected: FAIL - - [padding-top length(mm) / values] - expected: FAIL - - [padding-top length(cm) / values] - expected: FAIL - - [padding-top length(in) / values] - expected: FAIL - - [margin-bottom length(pt) / values] - expected: FAIL - - [margin-bottom length(pc) / values] - expected: FAIL - - [margin-bottom length(px) / values] - expected: FAIL - - [margin-bottom length(em) / values] - expected: FAIL - - [margin-bottom length(ex) / values] - expected: FAIL - - [margin-bottom length(mm) / values] - expected: FAIL - - [margin-bottom length(cm) / values] - expected: FAIL - - [margin-bottom length(in) / values] - expected: FAIL - - [margin-left length(pt) / values] - expected: FAIL - - [margin-left length(pc) / values] - expected: FAIL - - [margin-left length(px) / values] - expected: FAIL - - [margin-left length(em) / values] - expected: FAIL - - [margin-left length(ex) / values] - expected: FAIL - - [margin-left length(mm) / values] - expected: FAIL - - [margin-left length(cm) / values] - expected: FAIL - - [margin-left length(in) / values] - expected: FAIL - - [margin-right length(pt) / values] - expected: FAIL - - [margin-right length(pc) / values] - expected: FAIL - - [margin-right length(px) / values] - expected: FAIL - - [margin-right length(em) / values] - expected: FAIL - - [margin-right length(ex) / values] - expected: FAIL - - [margin-right length(mm) / values] - expected: FAIL - - [color color(rgba) / values] - expected: FAIL - - [font-size length(pt) / values] - expected: FAIL - - [font-size length(pc) / values] - expected: FAIL - - [font-size length(px) / values] - expected: FAIL - - [font-size length(em) / values] - expected: FAIL - - [font-size length(ex) / values] - expected: FAIL - - [font-size length(mm) / values] - expected: FAIL - - [font-size length(cm) / values] - expected: FAIL - - [font-size length(in) / values] - expected: FAIL - - [font-size percentage(%) / values] - expected: FAIL - - [font-weight font-weight(keyword) / values] - expected: FAIL - - [font-weight font-weight(numeric) / values] - expected: FAIL - - [line-height number(integer) / values] - expected: FAIL - - [line-height number(decimal) / values] - expected: FAIL - - [line-height length(pt) / values] - expected: FAIL - - [line-height length(pc) / values] - expected: FAIL - - [line-height length(px) / values] - expected: FAIL - - [line-height length(em) / values] - expected: FAIL - - [line-height length(ex) / values] - expected: FAIL - - [line-height length(mm) / values] - expected: FAIL - - [line-height length(cm) / values] - expected: FAIL - - [line-height length(in) / values] - expected: FAIL - - [line-height percentage(%) / values] - expected: FAIL - - [letter-spacing length(pt) / values] - expected: FAIL - - [letter-spacing length(pc) / values] - expected: FAIL - - [letter-spacing length(px) / values] - expected: FAIL - - [letter-spacing length(em) / values] - expected: FAIL - - [letter-spacing length(ex) / values] - expected: FAIL - - [letter-spacing length(mm) / values] - expected: FAIL - - [letter-spacing length(cm) / values] - expected: FAIL - - [letter-spacing length(in) / values] - expected: FAIL - - [word-spacing length(pt) / values] - expected: FAIL - - [word-spacing length(pc) / values] - expected: FAIL - - [word-spacing length(px) / values] - expected: FAIL - - [word-spacing length(em) / values] - expected: FAIL - - [word-spacing length(ex) / values] - expected: FAIL - - [word-spacing length(mm) / values] - expected: FAIL - - [word-spacing length(cm) / values] - expected: FAIL - - [word-spacing length(in) / values] - expected: FAIL - - [word-spacing percentage(%) / values] - expected: FAIL - - [text-indent length(pt) / values] - expected: FAIL - - [text-indent length(pc) / values] - expected: FAIL - - [text-indent length(px) / values] - expected: FAIL - - [text-indent length(em) / values] - expected: FAIL - - [text-indent length(ex) / values] - expected: FAIL - - [text-indent length(mm) / values] - expected: FAIL - - [text-indent length(cm) / values] - expected: FAIL - - [text-indent length(in) / values] - expected: FAIL - - [text-indent percentage(%) / values] - expected: FAIL - - [text-shadow shadow(shadow) / values] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-003.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-003.html.ini index 371e4c602b7..5349706e4ad 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-003.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-003.html.ini @@ -490,3 +490,33 @@ [object-view-box object-view-box(xywh) / events] expected: FAIL + + [border-top-left-radius border-radius(px) / values] + expected: FAIL + + [border-top-left-radius border-radius(px-px) / values] + expected: FAIL + + [border-top-right-radius border-radius(px) / values] + expected: FAIL + + [border-top-right-radius border-radius(px-px) / values] + expected: FAIL + + [border-bottom-left-radius border-radius(px) / values] + expected: FAIL + + [border-bottom-left-radius border-radius(px-px) / values] + expected: FAIL + + [border-bottom-right-radius border-radius(px) / values] + expected: FAIL + + [border-bottom-right-radius border-radius(px-px) / values] + expected: FAIL + + [box-shadow box-shadow(shadow) / values] + expected: FAIL + + [font-stretch font-stretch(keyword) / values] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini index f4caeba01db..43cef12d2ef 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini @@ -56,279 +56,6 @@ [background-position length(px) / events] expected: FAIL - [background-color color(rgba) / events] - expected: FAIL - - [border-top-width length(pt) / events] - expected: FAIL - - [border-top-width length(pc) / events] - expected: FAIL - - [border-top-width length(px) / events] - expected: FAIL - - [border-top-width length(em) / events] - expected: FAIL - - [border-top-width length(ex) / events] - expected: FAIL - - [border-top-width length(mm) / events] - expected: FAIL - - [border-top-width length(cm) / events] - expected: FAIL - - [border-top-width length(in) / events] - expected: FAIL - - [border-right-width length(pt) / events] - expected: FAIL - - [border-right-width length(pc) / events] - expected: FAIL - - [border-right-width length(px) / events] - expected: FAIL - - [border-right-width length(em) / events] - expected: FAIL - - [border-right-width length(ex) / events] - expected: FAIL - - [border-right-width length(mm) / events] - expected: FAIL - - [border-right-width length(cm) / events] - expected: FAIL - - [border-right-width length(in) / events] - expected: FAIL - - [border-bottom-width length(pt) / events] - expected: FAIL - - [border-bottom-width length(pc) / events] - expected: FAIL - - [border-bottom-width length(px) / events] - expected: FAIL - - [border-bottom-width length(em) / events] - expected: FAIL - - [border-bottom-width length(ex) / events] - expected: FAIL - - [border-bottom-width length(mm) / events] - expected: FAIL - - [border-bottom-width length(cm) / events] - expected: FAIL - - [border-bottom-width length(in) / events] - expected: FAIL - - [border-left-width length(pt) / events] - expected: FAIL - - [border-left-width length(pc) / events] - expected: FAIL - - [border-left-width length(px) / events] - expected: FAIL - - [border-left-width length(em) / events] - expected: FAIL - - [border-left-width length(ex) / events] - expected: FAIL - - [border-left-width length(mm) / events] - expected: FAIL - - [border-left-width length(cm) / events] - expected: FAIL - - [border-left-width length(in) / events] - expected: FAIL - - [border-top-color color(rgba) / events] - expected: FAIL - - [border-right-color color(rgba) / events] - expected: FAIL - - [border-bottom-color color(rgba) / events] - expected: FAIL - - [border-left-color color(rgba) / events] - expected: FAIL - - [padding-bottom length(pt) / events] - expected: FAIL - - [padding-bottom length(pc) / events] - expected: FAIL - - [padding-bottom length(px) / events] - expected: FAIL - - [padding-bottom length(em) / events] - expected: FAIL - - [padding-bottom length(ex) / events] - expected: FAIL - - [padding-bottom length(mm) / events] - expected: FAIL - - [padding-bottom length(cm) / events] - expected: FAIL - - [padding-bottom length(in) / events] - expected: FAIL - - [padding-left length(pt) / events] - expected: FAIL - - [padding-left length(pc) / events] - expected: FAIL - - [padding-left length(px) / events] - expected: FAIL - - [padding-left length(em) / events] - expected: FAIL - - [padding-left length(ex) / events] - expected: FAIL - - [padding-left length(mm) / events] - expected: FAIL - - [padding-left length(cm) / events] - expected: FAIL - - [padding-left length(in) / events] - expected: FAIL - - [padding-right length(pt) / events] - expected: FAIL - - [padding-right length(pc) / events] - expected: FAIL - - [padding-right length(px) / events] - expected: FAIL - - [padding-right length(em) / events] - expected: FAIL - - [padding-right length(ex) / events] - expected: FAIL - - [padding-right length(mm) / events] - expected: FAIL - - [padding-right length(cm) / events] - expected: FAIL - - [padding-right length(in) / events] - expected: FAIL - - [padding-top length(pt) / events] - expected: FAIL - - [padding-top length(pc) / events] - expected: FAIL - - [padding-top length(px) / events] - expected: FAIL - - [padding-top length(em) / events] - expected: FAIL - - [padding-top length(ex) / events] - expected: FAIL - - [padding-top length(mm) / events] - expected: FAIL - - [padding-top length(cm) / events] - expected: FAIL - - [padding-top length(in) / events] - expected: FAIL - - [margin-bottom length(pt) / events] - expected: FAIL - - [margin-bottom length(pc) / events] - expected: FAIL - - [margin-bottom length(px) / events] - expected: FAIL - - [margin-bottom length(em) / events] - expected: FAIL - - [margin-bottom length(ex) / events] - expected: FAIL - - [margin-bottom length(mm) / events] - expected: FAIL - - [margin-bottom length(cm) / events] - expected: FAIL - - [margin-bottom length(in) / events] - expected: FAIL - - [margin-left length(pt) / events] - expected: FAIL - - [margin-left length(pc) / events] - expected: FAIL - - [margin-left length(px) / events] - expected: FAIL - - [margin-left length(em) / events] - expected: FAIL - - [margin-left length(ex) / events] - expected: FAIL - - [margin-left length(mm) / events] - expected: FAIL - - [margin-left length(cm) / events] - expected: FAIL - - [margin-left length(in) / events] - expected: FAIL - - [margin-right length(pt) / events] - expected: FAIL - - [margin-right length(pc) / events] - expected: FAIL - - [margin-right length(px) / events] - expected: FAIL - - [margin-right length(em) / events] - expected: FAIL - - [margin-right length(ex) / events] - expected: FAIL - - [margin-right length(mm) / events] - expected: FAIL - [margin-right length(cm) / events] expected: FAIL @@ -628,153 +355,3 @@ [left percentage(%) / events] expected: FAIL - - [color color(rgba) / events] - expected: FAIL - - [font-size length(pt) / events] - expected: FAIL - - [font-size length(pc) / events] - expected: FAIL - - [font-size length(px) / events] - expected: FAIL - - [font-size length(em) / events] - expected: FAIL - - [font-size length(ex) / events] - expected: FAIL - - [font-size length(mm) / events] - expected: FAIL - - [font-size length(cm) / events] - expected: FAIL - - [font-size length(in) / events] - expected: FAIL - - [font-size percentage(%) / events] - expected: FAIL - - [font-weight font-weight(keyword) / events] - expected: FAIL - - [font-weight font-weight(numeric) / events] - expected: FAIL - - [line-height number(integer) / events] - expected: FAIL - - [line-height number(decimal) / events] - expected: FAIL - - [line-height length(pt) / events] - expected: FAIL - - [line-height length(pc) / events] - expected: FAIL - - [line-height length(px) / events] - expected: FAIL - - [line-height length(em) / events] - expected: FAIL - - [line-height length(ex) / events] - expected: FAIL - - [line-height length(mm) / events] - expected: FAIL - - [line-height length(cm) / events] - expected: FAIL - - [line-height length(in) / events] - expected: FAIL - - [line-height percentage(%) / events] - expected: FAIL - - [letter-spacing length(pt) / events] - expected: FAIL - - [letter-spacing length(pc) / events] - expected: FAIL - - [letter-spacing length(px) / events] - expected: FAIL - - [letter-spacing length(em) / events] - expected: FAIL - - [letter-spacing length(ex) / events] - expected: FAIL - - [letter-spacing length(mm) / events] - expected: FAIL - - [letter-spacing length(cm) / events] - expected: FAIL - - [letter-spacing length(in) / events] - expected: FAIL - - [word-spacing length(pt) / events] - expected: FAIL - - [word-spacing length(pc) / events] - expected: FAIL - - [word-spacing length(px) / events] - expected: FAIL - - [word-spacing length(em) / events] - expected: FAIL - - [word-spacing length(ex) / events] - expected: FAIL - - [word-spacing length(mm) / events] - expected: FAIL - - [word-spacing length(cm) / events] - expected: FAIL - - [word-spacing length(in) / events] - expected: FAIL - - [word-spacing percentage(%) / events] - expected: FAIL - - [text-indent length(pt) / events] - expected: FAIL - - [text-indent length(pc) / events] - expected: FAIL - - [text-indent length(px) / events] - expected: FAIL - - [text-indent length(em) / events] - expected: FAIL - - [text-indent length(ex) / events] - expected: FAIL - - [text-indent length(mm) / events] - expected: FAIL - - [text-indent length(cm) / events] - expected: FAIL - - [text-indent length(in) / events] - expected: FAIL - - [text-indent percentage(%) / events] - expected: FAIL - - [text-shadow shadow(shadow) / events] - expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini index 242ba44bbca..5a107d55d99 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-002.html.ini @@ -52,3 +52,276 @@ [background-position length(px) / events] expected: FAIL + + [background-color color(rgba) / values] + expected: FAIL + + [border-top-width length(pt) / values] + expected: FAIL + + [border-top-width length(pc) / values] + expected: FAIL + + [border-top-width length(px) / values] + expected: FAIL + + [border-top-width length(em) / values] + expected: FAIL + + [border-top-width length(ex) / values] + expected: FAIL + + [border-top-width length(mm) / values] + expected: FAIL + + [border-top-width length(cm) / values] + expected: FAIL + + [border-top-width length(in) / values] + expected: FAIL + + [border-right-width length(pt) / values] + expected: FAIL + + [border-right-width length(pc) / values] + expected: FAIL + + [border-right-width length(px) / values] + expected: FAIL + + [border-right-width length(em) / values] + expected: FAIL + + [border-right-width length(ex) / values] + expected: FAIL + + [border-right-width length(mm) / values] + expected: FAIL + + [border-right-width length(cm) / values] + expected: FAIL + + [border-right-width length(in) / values] + expected: FAIL + + [border-bottom-width length(pt) / values] + expected: FAIL + + [border-bottom-width length(pc) / values] + expected: FAIL + + [border-bottom-width length(px) / values] + expected: FAIL + + [border-bottom-width length(em) / values] + expected: FAIL + + [border-bottom-width length(ex) / values] + expected: FAIL + + [border-bottom-width length(mm) / values] + expected: FAIL + + [border-bottom-width length(cm) / values] + expected: FAIL + + [border-bottom-width length(in) / values] + expected: FAIL + + [border-left-width length(pt) / values] + expected: FAIL + + [border-left-width length(pc) / values] + expected: FAIL + + [border-left-width length(px) / values] + expected: FAIL + + [border-left-width length(em) / values] + expected: FAIL + + [border-left-width length(ex) / values] + expected: FAIL + + [border-left-width length(mm) / values] + expected: FAIL + + [border-left-width length(cm) / values] + expected: FAIL + + [border-left-width length(in) / values] + expected: FAIL + + [border-top-color color(rgba) / values] + expected: FAIL + + [border-right-color color(rgba) / values] + expected: FAIL + + [border-bottom-color color(rgba) / values] + expected: FAIL + + [border-left-color color(rgba) / values] + expected: FAIL + + [padding-bottom length(pt) / values] + expected: FAIL + + [padding-bottom length(pc) / values] + expected: FAIL + + [padding-bottom length(px) / values] + expected: FAIL + + [padding-bottom length(em) / values] + expected: FAIL + + [padding-bottom length(ex) / values] + expected: FAIL + + [padding-bottom length(mm) / values] + expected: FAIL + + [padding-bottom length(cm) / values] + expected: FAIL + + [padding-bottom length(in) / values] + expected: FAIL + + [padding-left length(pt) / values] + expected: FAIL + + [padding-left length(pc) / values] + expected: FAIL + + [padding-left length(px) / values] + expected: FAIL + + [padding-left length(em) / values] + expected: FAIL + + [padding-left length(ex) / values] + expected: FAIL + + [padding-left length(mm) / values] + expected: FAIL + + [padding-left length(cm) / values] + expected: FAIL + + [padding-left length(in) / values] + expected: FAIL + + [padding-right length(pt) / values] + expected: FAIL + + [padding-right length(pc) / values] + expected: FAIL + + [padding-right length(px) / values] + expected: FAIL + + [padding-right length(em) / values] + expected: FAIL + + [padding-right length(ex) / values] + expected: FAIL + + [padding-right length(mm) / values] + expected: FAIL + + [padding-right length(cm) / values] + expected: FAIL + + [padding-right length(in) / values] + expected: FAIL + + [padding-top length(pt) / values] + expected: FAIL + + [padding-top length(pc) / values] + expected: FAIL + + [padding-top length(px) / values] + expected: FAIL + + [padding-top length(em) / values] + expected: FAIL + + [padding-top length(ex) / values] + expected: FAIL + + [padding-top length(mm) / values] + expected: FAIL + + [padding-top length(cm) / values] + expected: FAIL + + [padding-top length(in) / values] + expected: FAIL + + [margin-bottom length(pt) / values] + expected: FAIL + + [margin-bottom length(pc) / values] + expected: FAIL + + [margin-bottom length(px) / values] + expected: FAIL + + [margin-bottom length(em) / values] + expected: FAIL + + [margin-bottom length(ex) / values] + expected: FAIL + + [margin-bottom length(mm) / values] + expected: FAIL + + [margin-bottom length(cm) / values] + expected: FAIL + + [margin-bottom length(in) / values] + expected: FAIL + + [margin-left length(pt) / values] + expected: FAIL + + [margin-left length(pc) / values] + expected: FAIL + + [margin-left length(px) / values] + expected: FAIL + + [margin-left length(em) / values] + expected: FAIL + + [margin-left length(ex) / values] + expected: FAIL + + [margin-left length(mm) / values] + expected: FAIL + + [margin-left length(cm) / values] + expected: FAIL + + [margin-left length(in) / values] + expected: FAIL + + [margin-right length(pt) / values] + expected: FAIL + + [margin-right length(pc) / values] + expected: FAIL + + [margin-right length(px) / values] + expected: FAIL + + [margin-right length(em) / values] + expected: FAIL + + [margin-right length(ex) / values] + expected: FAIL + + [margin-right length(mm) / values] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini new file mode 100644 index 00000000000..72b09371038 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini @@ -0,0 +1,3 @@ +[elementFromPoint-001.html] + [CSSOM View - 5 - extensions to the Document interface] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini new file mode 100644 index 00000000000..b905fe70fcb --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini @@ -0,0 +1,3 @@ +[elementFromPoint-ellipsis-in-inline-box.html] + [elementFromPoint-ellipsis-in-inline-box] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini new file mode 100644 index 00000000000..7e9331b6bc2 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-float-in-relative.html.ini @@ -0,0 +1,3 @@ +[elementFromPoint-float-in-relative.html] + [elementFromPoint-float-in-relative] + expected: FAIL diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini index 54775e607a3..07ff86d09aa 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-list-001.html.ini @@ -14,8 +14,5 @@ [
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"foreColor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"foreColor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"3"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"3"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"4"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"4"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 255)"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"3",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 0)"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"3",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 0)"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontName":[false,false,"sans-serif",false,false,"monospace"]}], +["foo
[]bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["delete",""]], + "
foo[]bar
", + [true,true,true], + {"fontName":[false,false,"sans-serif",false,false,"monospace"]}], ] diff --git a/tests/wpt/web-platform-tests/editing/data/forecolor.js b/tests/wpt/web-platform-tests/editing/data/forecolor.js index efca1970ec9..c3271b32c96 100644 --- a/tests/wpt/web-platform-tests/editing/data/forecolor.js +++ b/tests/wpt/web-platform-tests/editing/data/forecolor.js @@ -370,9 +370,13 @@ var browserTests = [ "foo{bar}baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"forecolor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}], +// Once the inner style is updated, it has same style as the outer one. +// Therefore, it may be okay to use the outer one is the only container of the +// text nodes or it may be okay to split the outer one and keep 3 s. ["foo[bar]baz", [["stylewithcss","true"],["forecolor","#0000FF"]], - "foobarbaz", + ["foobarbaz", + "foo[bar]baz"], [true,true], {"stylewithcss":[false,false,"",false,true,""],"forecolor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}], ["foo[bar]baz", @@ -410,9 +414,12 @@ var browserTests = [ "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"forecolor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}], +// Use the inner for the `style` attribute container. Then, the outer +// should be split and may be serialized. ["foo[bar]baz", [["stylewithcss","true"],["forecolor","#0000FF"]], - "foo[bar]baz", + ["foobarbaz", + "foobarbaz"], [true,true], {"stylewithcss":[false,false,"",false,true,""],"forecolor":[false,false,"rgb(165, 42, 42)",false,false,"rgb(0, 0, 255)"]}], ["foo[bar]baz", diff --git a/tests/wpt/web-platform-tests/editing/data/forwarddelete.js b/tests/wpt/web-platform-tests/editing/data/forwarddelete.js index 323d2b81b9f..832ba608a04 100644 --- a/tests/wpt/web-platform-tests/editing/data/forwarddelete.js +++ b/tests/wpt/web-platform-tests/editing/data/forwarddelete.js @@ -2686,4 +2686,66 @@ var browserTests = [ "foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"3",false,false,"3"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"3",false,false,"3"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"4",false,false,"4"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"4",false,false,"4"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"3",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"3",false,false,"3"],"foreColor":[false,false,"rgb(0, 0, 255)",false,false,"rgb(0, 0, 255)"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontSize":[false,false,"5",false,false,"5"],"foreColor":[false,false,"rgb(0, 0, 0)",false,false,"rgb(0, 0, 0)"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","div"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontName":[false,false,"monospace",false,false,"monospace"]}], +["foo[]
bar", + [["styleWithCSS","false"],["defaultparagraphseparator","p"],["forwarddelete",""]], + "
foo[]bar
", + [true,true,true], + {"fontName":[false,false,"monospace",false,false,"monospace"]}], ] diff --git a/tests/wpt/web-platform-tests/fonts/math/stretchy-centered-on-baseline.woff b/tests/wpt/web-platform-tests/fonts/math/stretchy-centered-on-baseline.woff new file mode 100644 index 00000000000..fd753edf761 Binary files /dev/null and b/tests/wpt/web-platform-tests/fonts/math/stretchy-centered-on-baseline.woff differ diff --git a/tests/wpt/web-platform-tests/fonts/math/stretchy.woff b/tests/wpt/web-platform-tests/fonts/math/stretchy.woff index fc1b75c948d..eb67181e1ea 100644 Binary files a/tests/wpt/web-platform-tests/fonts/math/stretchy.woff and b/tests/wpt/web-platform-tests/fonts/math/stretchy.woff differ diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.html index 7f34def5648..717317de706 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineCap = 'butt'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(15, 15, 20, 20); @@ -31,6 +33,7 @@ ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.beginPath(); @@ -38,12 +41,14 @@ ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); ctx.fillRect(65, 15, 20, 20); + _assertPixel(canvas, 25,14, 0,255,0,255); _assertPixel(canvas, 25,15, 0,255,0,255); _assertPixel(canvas, 25,16, 0,255,0,255); _assertPixel(canvas, 25,34, 0,255,0,255); _assertPixel(canvas, 25,35, 0,255,0,255); _assertPixel(canvas, 25,36, 0,255,0,255); + _assertPixel(canvas, 75,14, 0,255,0,255); _assertPixel(canvas, 75,15, 0,255,0,255); _assertPixel(canvas, 75,16, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.worker.js index 3eacba11a3e..3ad21e9da96 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.butt.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineCap = 'butt'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(15, 15, 20, 20); @@ -27,6 +29,7 @@ ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.beginPath(); @@ -34,12 +37,14 @@ ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); ctx.fillRect(65, 15, 20, 20); + _assertPixel(canvas, 25,14, 0,255,0,255); _assertPixel(canvas, 25,15, 0,255,0,255); _assertPixel(canvas, 25,16, 0,255,0,255); _assertPixel(canvas, 25,34, 0,255,0,255); _assertPixel(canvas, 25,35, 0,255,0,255); _assertPixel(canvas, 25,36, 0,255,0,255); + _assertPixel(canvas, 75,14, 0,255,0,255); _assertPixel(canvas, 75,15, 0,255,0,255); _assertPixel(canvas, 75,16, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.html index 0a3f3fcab77..b6479be77e1 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.html @@ -23,9 +23,11 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'bevel'; ctx.lineCap = 'square'; ctx.lineWidth = 400; + ctx.beginPath(); ctx.moveTo(200, 200); ctx.lineTo(200, 1000); @@ -33,6 +35,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 200); ctx.closePath(); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.worker.js index 24bace4c275..50c81519d2e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.closed.worker.js @@ -19,9 +19,11 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'bevel'; ctx.lineCap = 'square'; ctx.lineWidth = 400; + ctx.beginPath(); ctx.moveTo(200, 200); ctx.lineTo(200, 1000); @@ -29,6 +31,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 200); ctx.closePath(); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.html index f02cfcc758c..b4598fdd85e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.html @@ -22,21 +22,27 @@ var ctx = canvas.getContext('2d'); ctx.lineCap = 'butt' _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'invalid'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'ROUND'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'round\0'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'round '; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = ""; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'bevel'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.worker.js index 4ef69f35afa..bf933941023 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.invalid.worker.js @@ -18,21 +18,27 @@ var ctx = canvas.getContext('2d'); ctx.lineCap = 'butt' _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'invalid'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'ROUND'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'round\0'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'round '; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = ""; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'butt'; ctx.lineCap = 'bevel'; _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.html index 00b72b62d2d..211ff760f66 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.html @@ -23,9 +23,11 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'bevel'; ctx.lineCap = 'square'; ctx.lineWidth = 400; + ctx.beginPath(); ctx.moveTo(200, 200); ctx.lineTo(200, 1000); @@ -33,6 +35,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 200); ctx.lineTo(200, 200); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.worker.js index 621de99a83f..ff081deb7d0 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.open.worker.js @@ -19,9 +19,11 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'bevel'; ctx.lineCap = 'square'; ctx.lineWidth = 400; + ctx.beginPath(); ctx.moveTo(200, 200); ctx.lineTo(200, 1000); @@ -29,6 +31,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 200); ctx.lineTo(200, 200); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.html index 9f6c66567e9..37a27b17bcd 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.html @@ -22,37 +22,49 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.lineCap = 'round'; ctx.lineWidth = 20; + + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.beginPath(); ctx.moveTo(35-tol, 15); ctx.arc(25, 15, 10-tol, 0, Math.PI, true); ctx.arc(25, 35, 10-tol, Math.PI, 0, true); ctx.fill(); + ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); + ctx.beginPath(); ctx.moveTo(85+tol, 15); ctx.arc(75, 15, 10+tol, 0, Math.PI, true); ctx.arc(75, 35, 10+tol, Math.PI, 0, true); ctx.fill(); + _assertPixel(canvas, 17,6, 0,255,0,255); _assertPixel(canvas, 25,6, 0,255,0,255); _assertPixel(canvas, 32,6, 0,255,0,255); _assertPixel(canvas, 17,43, 0,255,0,255); _assertPixel(canvas, 25,43, 0,255,0,255); _assertPixel(canvas, 32,43, 0,255,0,255); + _assertPixel(canvas, 67,6, 0,255,0,255); _assertPixel(canvas, 75,6, 0,255,0,255); _assertPixel(canvas, 82,6, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.worker.js index e744d2906fa..f03579ee54b 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.round.worker.js @@ -18,37 +18,49 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.lineCap = 'round'; ctx.lineWidth = 20; + + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.beginPath(); ctx.moveTo(35-tol, 15); ctx.arc(25, 15, 10-tol, 0, Math.PI, true); ctx.arc(25, 35, 10-tol, Math.PI, 0, true); ctx.fill(); + ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); + ctx.beginPath(); ctx.moveTo(85+tol, 15); ctx.arc(75, 15, 10+tol, 0, Math.PI, true); ctx.arc(75, 35, 10+tol, Math.PI, 0, true); ctx.fill(); + _assertPixel(canvas, 17,6, 0,255,0,255); _assertPixel(canvas, 25,6, 0,255,0,255); _assertPixel(canvas, 32,6, 0,255,0,255); _assertPixel(canvas, 17,43, 0,255,0,255); _assertPixel(canvas, 25,43, 0,255,0,255); _assertPixel(canvas, 32,43, 0,255,0,255); + _assertPixel(canvas, 67,6, 0,255,0,255); _assertPixel(canvas, 75,6, 0,255,0,255); _assertPixel(canvas, 82,6, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.html index 0fd4b2c71a7..75f9e44e21a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineCap = 'square'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(15, 5, 20, 40); @@ -31,6 +33,7 @@ ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.beginPath(); @@ -38,12 +41,14 @@ ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); ctx.fillRect(65, 5, 20, 40); + _assertPixel(canvas, 25,4, 0,255,0,255); _assertPixel(canvas, 25,5, 0,255,0,255); _assertPixel(canvas, 25,6, 0,255,0,255); _assertPixel(canvas, 25,44, 0,255,0,255); _assertPixel(canvas, 25,45, 0,255,0,255); _assertPixel(canvas, 25,46, 0,255,0,255); + _assertPixel(canvas, 75,4, 0,255,0,255); _assertPixel(canvas, 75,5, 0,255,0,255); _assertPixel(canvas, 75,6, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.worker.js index 7684bbbc85f..439f100409a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.square.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineCap = 'square'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(15, 5, 20, 40); @@ -27,6 +29,7 @@ ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.beginPath(); @@ -34,12 +37,14 @@ ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); ctx.fillRect(65, 5, 20, 40); + _assertPixel(canvas, 25,4, 0,255,0,255); _assertPixel(canvas, 25,5, 0,255,0,255); _assertPixel(canvas, 25,6, 0,255,0,255); _assertPixel(canvas, 25,44, 0,255,0,255); _assertPixel(canvas, 25,45, 0,255,0,255); _assertPixel(canvas, 25,46, 0,255,0,255); + _assertPixel(canvas, 75,4, 0,255,0,255); _assertPixel(canvas, 75,5, 0,255,0,255); _assertPixel(canvas, 75,6, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.html index ce7b4c8ad62..d4fcdfc0b5e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.lineCap = 'butt' _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'round'; _assertSame(ctx.lineCap, 'round', "ctx.lineCap", "'round'"); + ctx.lineCap = 'square'; _assertSame(ctx.lineCap, 'square', "ctx.lineCap", "'square'"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.worker.js index 7fa84f4d6f4..52907f433ec 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cap.valid.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.lineCap = 'butt' _assertSame(ctx.lineCap, 'butt', "ctx.lineCap", "'butt'"); + ctx.lineCap = 'round'; _assertSame(ctx.lineCap, 'round', "ctx.lineCap", "'round'"); + ctx.lineCap = 'square'; _assertSame(ctx.lineCap, 'square', "ctx.lineCap", "'square'"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.html index 09d3a00b317..51fd1c40784 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.html @@ -22,14 +22,17 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 200; ctx.lineJoin = 'bevel'; + ctx.strokeStyle = '#f00'; ctx.beginPath(); ctx.moveTo(110, 50); ctx.lineTo(110, 60); ctx.lineTo(100, 60); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.worker.js index 82b289bdeac..e455aa6155d 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.cross.worker.js @@ -18,14 +18,17 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 200; ctx.lineJoin = 'bevel'; + ctx.strokeStyle = '#f00'; ctx.beginPath(); ctx.moveTo(110, 50); ctx.lineTo(110, 60); ctx.lineTo(100, 60); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.html new file mode 100644 index 00000000000..c1bb974dbf7 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.html @@ -0,0 +1,37 @@ + + +Verify correct behavior of canvas on an invalid strokeStyle()
+ + + diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.worker.js new file mode 100644 index 00000000000..c9f2fa3d9f2 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.invalid.strokestyle.worker.js @@ -0,0 +1,33 @@ +// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. +// OffscreenCanvas test in a worker:2d.line.invalid.strokestyle +// Description:Verify correct behavior of canvas on an invalid strokeStyle() +// Note: + +importScripts("/resources/testharness.js"); +importScripts("/html/canvas/resources/canvas-tests.js"); + +var t = async_test("Verify correct behavior of canvas on an invalid strokeStyle()"); +var t_pass = t.done.bind(t); +var t_fail = t.step_func(function(reason) { + throw reason; +}); +t.step(function() { + +var canvas = new OffscreenCanvas(100, 50); +var ctx = canvas.getContext('2d'); + +ctx.strokeStyle = 'rgb(0, 255, 0)'; +ctx.strokeStyle = 'nonsense'; +ctx.lineWidth = 200; +ctx.moveTo(0,100); +ctx.lineTo(200,100); +ctx.stroke(); +var imageData = ctx.getImageData(0, 0, 200, 200); +var imgdata = imageData.data; +_assert(imgdata[4] == 0, "imgdata[\""+(4)+"\"] == 0"); +_assert(imgdata[5] == 255, "imgdata[\""+(5)+"\"] == 255"); +_assert(imgdata[6] == 0, "imgdata[\""+(6)+"\"] == 0"); +t.done(); + +}); +done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.html index 45c8d3eb543..ecf83e7b5a0 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.html @@ -22,11 +22,15 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.lineJoin = 'bevel'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillRect(10, 10, 20, 20); ctx.fillRect(20, 20, 20, 20); ctx.beginPath(); @@ -34,18 +38,23 @@ ctx.moveTo(30, 20); ctx.lineTo(40-tol, 20); ctx.lineTo(30, 10+tol); ctx.fill(); + ctx.beginPath(); ctx.moveTo(10, 20); ctx.lineTo(30, 20); ctx.lineTo(30, 40); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(60, 20); ctx.lineTo(80, 20); ctx.lineTo(80, 40); ctx.stroke(); + ctx.fillRect(60, 10, 20, 20); ctx.fillRect(70, 20, 20, 20); ctx.beginPath(); @@ -53,11 +62,13 @@ ctx.moveTo(80, 20); ctx.lineTo(90+tol, 20); ctx.lineTo(80, 10-tol); ctx.fill(); + _assertPixel(canvas, 34,16, 0,255,0,255); _assertPixel(canvas, 34,15, 0,255,0,255); _assertPixel(canvas, 35,15, 0,255,0,255); _assertPixel(canvas, 36,15, 0,255,0,255); _assertPixel(canvas, 36,14, 0,255,0,255); + _assertPixel(canvas, 84,16, 0,255,0,255); _assertPixel(canvas, 84,15, 0,255,0,255); _assertPixel(canvas, 85,15, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.worker.js index 2dfbf34f156..87bf6a8d37c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.bevel.worker.js @@ -18,11 +18,15 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.lineJoin = 'bevel'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillRect(10, 10, 20, 20); ctx.fillRect(20, 20, 20, 20); ctx.beginPath(); @@ -30,18 +34,23 @@ ctx.moveTo(30, 20); ctx.lineTo(40-tol, 20); ctx.lineTo(30, 10+tol); ctx.fill(); + ctx.beginPath(); ctx.moveTo(10, 20); ctx.lineTo(30, 20); ctx.lineTo(30, 40); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(60, 20); ctx.lineTo(80, 20); ctx.lineTo(80, 40); ctx.stroke(); + ctx.fillRect(60, 10, 20, 20); ctx.fillRect(70, 20, 20, 20); ctx.beginPath(); @@ -49,11 +58,13 @@ ctx.moveTo(80, 20); ctx.lineTo(90+tol, 20); ctx.lineTo(80, 10-tol); ctx.fill(); + _assertPixel(canvas, 34,16, 0,255,0,255); _assertPixel(canvas, 34,15, 0,255,0,255); _assertPixel(canvas, 35,15, 0,255,0,255); _assertPixel(canvas, 36,15, 0,255,0,255); _assertPixel(canvas, 36,14, 0,255,0,255); + _assertPixel(canvas, 84,16, 0,255,0,255); _assertPixel(canvas, 84,15, 0,255,0,255); _assertPixel(canvas, 85,15, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.html index 5e88ad0d017..7ce6599f4c1 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.html @@ -23,8 +23,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'miter'; ctx.lineWidth = 200; + ctx.beginPath(); ctx.moveTo(100, 50); ctx.lineTo(100, 1000); @@ -32,6 +34,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 50); ctx.closePath(); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.worker.js index f2b029ecaf0..cc7073fadba 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.closed.worker.js @@ -19,8 +19,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'miter'; ctx.lineWidth = 200; + ctx.beginPath(); ctx.moveTo(100, 50); ctx.lineTo(100, 1000); @@ -28,6 +30,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 50); ctx.closePath(); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.html index a54861205ed..59d8b4311d8 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.html @@ -22,21 +22,27 @@ var ctx = canvas.getContext('2d'); ctx.lineJoin = 'bevel' _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'invalid'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'ROUND'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'round\0'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'round '; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = ""; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'butt'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.worker.js index 23dfe67230d..fa19bd70b0c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.invalid.worker.js @@ -18,21 +18,27 @@ var ctx = canvas.getContext('2d'); ctx.lineJoin = 'bevel' _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'invalid'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'ROUND'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'round\0'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'round '; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = ""; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'bevel'; ctx.lineJoin = 'butt'; _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.html index 64918eca383..d28fb8b69f3 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.html @@ -22,33 +22,44 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'miter'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillRect(10, 10, 30, 20); ctx.fillRect(20, 10, 20, 30); + ctx.beginPath(); ctx.moveTo(10, 20); ctx.lineTo(30, 20); ctx.lineTo(30, 40); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(60, 20); ctx.lineTo(80, 20); ctx.lineTo(80, 40); ctx.stroke(); + ctx.fillRect(60, 10, 30, 20); ctx.fillRect(70, 10, 20, 30); + _assertPixel(canvas, 38,12, 0,255,0,255); _assertPixel(canvas, 39,11, 0,255,0,255); _assertPixel(canvas, 40,10, 0,255,0,255); _assertPixel(canvas, 41,9, 0,255,0,255); _assertPixel(canvas, 42,8, 0,255,0,255); + _assertPixel(canvas, 88,12, 0,255,0,255); _assertPixel(canvas, 89,11, 0,255,0,255); _assertPixel(canvas, 90,10, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.worker.js index 02712a806eb..3a3eb8f86f2 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.miter.worker.js @@ -18,33 +18,44 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'miter'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillRect(10, 10, 30, 20); ctx.fillRect(20, 10, 20, 30); + ctx.beginPath(); ctx.moveTo(10, 20); ctx.lineTo(30, 20); ctx.lineTo(30, 40); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(60, 20); ctx.lineTo(80, 20); ctx.lineTo(80, 40); ctx.stroke(); + ctx.fillRect(60, 10, 30, 20); ctx.fillRect(70, 10, 20, 30); + _assertPixel(canvas, 38,12, 0,255,0,255); _assertPixel(canvas, 39,11, 0,255,0,255); _assertPixel(canvas, 40,10, 0,255,0,255); _assertPixel(canvas, 41,9, 0,255,0,255); _assertPixel(canvas, 42,8, 0,255,0,255); + _assertPixel(canvas, 88,12, 0,255,0,255); _assertPixel(canvas, 89,11, 0,255,0,255); _assertPixel(canvas, 90,10, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.html index 48154df59b6..5bd8e48061c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.html @@ -23,8 +23,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'miter'; ctx.lineWidth = 200; + ctx.beginPath(); ctx.moveTo(100, 50); ctx.lineTo(100, 1000); @@ -32,6 +34,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 50); ctx.lineTo(100, 50); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.worker.js index 133854bf548..5f52b6337ad 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.open.worker.js @@ -19,8 +19,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineJoin = 'miter'; ctx.lineWidth = 200; + ctx.beginPath(); ctx.moveTo(100, 50); ctx.lineTo(100, 1000); @@ -28,6 +30,7 @@ ctx.lineTo(1000, 1000); ctx.lineTo(1000, 50); ctx.lineTo(100, 50); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.html index fdda123dd8a..928bb86f120 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.html @@ -22,6 +22,7 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#0f0'; ctx.lineWidth = 300; ctx.lineJoin = 'round'; @@ -30,6 +31,7 @@ ctx.moveTo(-100, 25); ctx.lineTo(0, 25); ctx.lineTo(-100, 25); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.worker.js index 68ed957b6d7..d431d5e99f5 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.parallel.worker.js @@ -18,6 +18,7 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.strokeStyle = '#0f0'; ctx.lineWidth = 300; ctx.lineJoin = 'round'; @@ -26,6 +27,7 @@ ctx.moveTo(-100, 25); ctx.lineTo(0, 25); ctx.lineTo(-100, 25); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.html index ebc71c30f83..9441585e50d 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.html @@ -22,40 +22,51 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.lineJoin = 'round'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillRect(10, 10, 20, 20); ctx.fillRect(20, 20, 20, 20); ctx.beginPath(); ctx.moveTo(30, 20); ctx.arc(30, 20, 10-tol, 0, 2*Math.PI, true); ctx.fill(); + ctx.beginPath(); ctx.moveTo(10, 20); ctx.lineTo(30, 20); ctx.lineTo(30, 40); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(60, 20); ctx.lineTo(80, 20); ctx.lineTo(80, 40); ctx.stroke(); + ctx.fillRect(60, 10, 20, 20); ctx.fillRect(70, 20, 20, 20); ctx.beginPath(); ctx.moveTo(80, 20); ctx.arc(80, 20, 10+tol, 0, 2*Math.PI, true); ctx.fill(); + _assertPixel(canvas, 36,14, 0,255,0,255); _assertPixel(canvas, 36,13, 0,255,0,255); _assertPixel(canvas, 37,13, 0,255,0,255); _assertPixel(canvas, 38,13, 0,255,0,255); _assertPixel(canvas, 38,12, 0,255,0,255); + _assertPixel(canvas, 86,14, 0,255,0,255); _assertPixel(canvas, 86,13, 0,255,0,255); _assertPixel(canvas, 87,13, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.worker.js index c7da3520b3f..44a847bd30c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.round.worker.js @@ -18,40 +18,51 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + var tol = 1; // tolerance to avoid antialiasing artifacts + ctx.lineJoin = 'round'; ctx.lineWidth = 20; + ctx.fillStyle = '#f00'; ctx.strokeStyle = '#0f0'; + ctx.fillRect(10, 10, 20, 20); ctx.fillRect(20, 20, 20, 20); ctx.beginPath(); ctx.moveTo(30, 20); ctx.arc(30, 20, 10-tol, 0, 2*Math.PI, true); ctx.fill(); + ctx.beginPath(); ctx.moveTo(10, 20); ctx.lineTo(30, 20); ctx.lineTo(30, 40); ctx.stroke(); + + ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; + ctx.beginPath(); ctx.moveTo(60, 20); ctx.lineTo(80, 20); ctx.lineTo(80, 40); ctx.stroke(); + ctx.fillRect(60, 10, 20, 20); ctx.fillRect(70, 20, 20, 20); ctx.beginPath(); ctx.moveTo(80, 20); ctx.arc(80, 20, 10+tol, 0, 2*Math.PI, true); ctx.fill(); + _assertPixel(canvas, 36,14, 0,255,0,255); _assertPixel(canvas, 36,13, 0,255,0,255); _assertPixel(canvas, 37,13, 0,255,0,255); _assertPixel(canvas, 38,13, 0,255,0,255); _assertPixel(canvas, 38,12, 0,255,0,255); + _assertPixel(canvas, 86,14, 0,255,0,255); _assertPixel(canvas, 86,13, 0,255,0,255); _assertPixel(canvas, 87,13, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.html index eaa7c24967e..b3b15fc09d6 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.lineJoin = 'bevel' _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'round'; _assertSame(ctx.lineJoin, 'round', "ctx.lineJoin", "'round'"); + ctx.lineJoin = 'miter'; _assertSame(ctx.lineJoin, 'miter', "ctx.lineJoin", "'miter'"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.worker.js index 4e7154358a0..407dbdd59e0 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.join.valid.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.lineJoin = 'bevel' _assertSame(ctx.lineJoin, 'bevel', "ctx.lineJoin", "'bevel'"); + ctx.lineJoin = 'round'; _assertSame(ctx.lineJoin, 'round', "ctx.lineJoin", "'round'"); + ctx.lineJoin = 'miter'; _assertSame(ctx.lineJoin, 'miter', "ctx.lineJoin", "'miter'"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.html index fd6902ca4d6..1713d8174ea 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 200; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#0f0'; ctx.miterLimit = 2.614; ctx.beginPath(); @@ -31,6 +33,7 @@ ctx.moveTo(100, 1000); ctx.lineTo(100, 100); ctx.lineTo(1000, 1000); ctx.stroke(); + ctx.strokeStyle = '#f00'; ctx.miterLimit = 2.613; ctx.beginPath(); @@ -38,6 +41,7 @@ ctx.moveTo(100, 1000); ctx.lineTo(100, 100); ctx.lineTo(1000, 1000); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.worker.js index ef2954a7fe2..95040d13194 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.acute.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 200; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#0f0'; ctx.miterLimit = 2.614; ctx.beginPath(); @@ -27,6 +29,7 @@ ctx.moveTo(100, 1000); ctx.lineTo(100, 100); ctx.lineTo(1000, 1000); ctx.stroke(); + ctx.strokeStyle = '#f00'; ctx.miterLimit = 2.613; ctx.beginPath(); @@ -34,6 +37,7 @@ ctx.moveTo(100, 1000); ctx.lineTo(100, 100); ctx.lineTo(1000, 1000); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.html index fd0e7a1ca2f..172c63ca1ce 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 400; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.414; ctx.beginPath(); @@ -31,6 +33,7 @@ ctx.moveTo(200, 1000); ctx.lineTo(200, 200); ctx.lineTo(1000, 201); // slightly non-right-angle to avoid being a special case ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.worker.js index 2e0fbd4910c..e2b04e21f63 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.exceeded.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 400; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.414; ctx.beginPath(); @@ -27,6 +29,7 @@ ctx.moveTo(200, 1000); ctx.lineTo(200, 200); ctx.lineTo(1000, 201); // slightly non-right-angle to avoid being a special case ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.html index 35bda1a11ac..27251d4902a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.html @@ -22,21 +22,38 @@ var ctx = canvas.getContext('2d'); ctx.miterLimit = 1.5; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = 0; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = -1; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = Infinity; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = -Infinity; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = NaN; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + +ctx.miterLimit = 1.5; +ctx.miterLimit = 'string'; +_assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + +ctx.miterLimit = 1.5; +ctx.miterLimit = true; +_assertSame(ctx.miterLimit, 1, "ctx.miterLimit", "1"); + +ctx.miterLimit = 1.5; +ctx.miterLimit = false; +_assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); t.done(); }); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.worker.js index ef4c17eea2d..dbc64d52d94 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.invalid.worker.js @@ -18,21 +18,38 @@ var ctx = canvas.getContext('2d'); ctx.miterLimit = 1.5; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = 0; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = -1; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = Infinity; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = -Infinity; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = 1.5; ctx.miterLimit = NaN; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + +ctx.miterLimit = 1.5; +ctx.miterLimit = 'string'; +_assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + +ctx.miterLimit = 1.5; +ctx.miterLimit = true; +_assertSame(ctx.miterLimit, 1, "ctx.miterLimit", "1"); + +ctx.miterLimit = 1.5; +ctx.miterLimit = false; +_assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); t.done(); }); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.html index 292ed560de6..5ede60b8995 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.html @@ -22,12 +22,15 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 200; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.414; ctx.beginPath(); ctx.strokeRect(100, 25, 200, 0); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.worker.js index c7fa1e6d173..24f4fa30f5e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.lineedge.worker.js @@ -18,12 +18,15 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 200; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.414; ctx.beginPath(); ctx.strokeRect(100, 25, 200, 0); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.html index 4e60253ddca..0eaeedfa419 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 1600; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#0f0'; ctx.miterLimit = 1.083; ctx.beginPath(); @@ -31,6 +33,7 @@ ctx.moveTo(800, 10000); ctx.lineTo(800, 300); ctx.lineTo(10000, -8900); ctx.stroke(); + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.082; ctx.beginPath(); @@ -38,6 +41,7 @@ ctx.moveTo(800, 10000); ctx.lineTo(800, 300); ctx.lineTo(10000, -8900); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.worker.js index 3cf78ed21e8..45900dbc88a 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.obtuse.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 1600; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#0f0'; ctx.miterLimit = 1.083; ctx.beginPath(); @@ -27,6 +29,7 @@ ctx.moveTo(800, 10000); ctx.lineTo(800, 300); ctx.lineTo(10000, -8900); ctx.stroke(); + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.082; ctx.beginPath(); @@ -34,6 +37,7 @@ ctx.moveTo(800, 10000); ctx.lineTo(800, 300); ctx.lineTo(10000, -8900); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.html index 33cbe5d02c3..7f8134f180f 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 400; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.414; ctx.beginPath(); @@ -31,6 +33,7 @@ ctx.moveTo(200, 1000); ctx.lineTo(200, 200); ctx.lineTo(1000, 200); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.worker.js index 895318c3ef3..a2a07247b1e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.rightangle.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 400; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#f00'; ctx.miterLimit = 1.414; ctx.beginPath(); @@ -27,6 +29,7 @@ ctx.moveTo(200, 1000); ctx.lineTo(200, 200); ctx.lineTo(1000, 200); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.html index 1d034052aa0..2702fc57a3c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.html @@ -22,10 +22,13 @@ var ctx = canvas.getContext('2d'); ctx.miterLimit = 1.5; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = "1e1"; _assertSame(ctx.miterLimit, 10, "ctx.miterLimit", "10"); + ctx.miterLimit = 1/1024; _assertSame(ctx.miterLimit, 1/1024, "ctx.miterLimit", "1/1024"); + ctx.miterLimit = 1000; _assertSame(ctx.miterLimit, 1000, "ctx.miterLimit", "1000"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.worker.js index b34561407ea..c71c726f126 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.valid.worker.js @@ -18,10 +18,13 @@ var ctx = canvas.getContext('2d'); ctx.miterLimit = 1.5; _assertSame(ctx.miterLimit, 1.5, "ctx.miterLimit", "1.5"); + ctx.miterLimit = "1e1"; _assertSame(ctx.miterLimit, 10, "ctx.miterLimit", "10"); + ctx.miterLimit = 1/1024; _assertSame(ctx.miterLimit, 1/1024, "ctx.miterLimit", "1/1024"); + ctx.miterLimit = 1000; _assertSame(ctx.miterLimit, 1000, "ctx.miterLimit", "1000"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.html index 4af7c84a6a1..a9f7a366a38 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 400; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#0f0'; ctx.miterLimit = 1.416; ctx.beginPath(); @@ -31,6 +33,7 @@ ctx.moveTo(200, 1000); ctx.lineTo(200, 200); ctx.lineTo(1000, 201); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.worker.js index 64fe4312c27..c09ad957e89 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.miter.within.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 400; ctx.lineJoin = 'miter'; + ctx.strokeStyle = '#0f0'; ctx.miterLimit = 1.416; ctx.beginPath(); @@ -27,6 +29,7 @@ ctx.moveTo(200, 1000); ctx.lineTo(200, 200); ctx.lineTo(1000, 201); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); _assertPixel(canvas, 48,48, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.html index 60defee7cb8..1f8b3a0d67c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.html @@ -22,8 +22,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 100; ctx.lineCap = 'round'; + ctx.strokeStyle = '#0f0'; ctx.beginPath(); ctx.moveTo(0, 24); @@ -31,6 +33,7 @@ ctx.lineTo(100, 25); ctx.lineTo(0, 26); ctx.closePath(); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 25,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.worker.js index ed262373374..02ebbfd8af0 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.union.worker.js @@ -18,8 +18,10 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 100; ctx.lineCap = 'round'; + ctx.strokeStyle = '#0f0'; ctx.beginPath(); ctx.moveTo(0, 24); @@ -27,6 +29,7 @@ ctx.lineTo(100, 25); ctx.lineTo(0, 26); ctx.closePath(); ctx.stroke(); + _assertPixel(canvas, 1,1, 0,255,0,255); _assertPixel(canvas, 25,1, 0,255,0,255); _assertPixel(canvas, 48,1, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.html index 9b81b1c386c..1d0e0298288 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.html @@ -22,6 +22,7 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 20; // Draw a green line over a red box, to check the line is not too small ctx.fillStyle = '#f00'; @@ -31,6 +32,7 @@ ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + // Draw a green box over a red line, to check the line is not too large ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; @@ -39,6 +41,7 @@ ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); ctx.fillRect(65, 15, 20, 20); + _assertPixel(canvas, 14,25, 0,255,0,255); _assertPixel(canvas, 15,25, 0,255,0,255); _assertPixel(canvas, 16,25, 0,255,0,255); @@ -46,6 +49,7 @@ _assertPixel(canvas, 25,25, 0,255,0,255); _assertPixel(canvas, 34,25, 0,255,0,255); _assertPixel(canvas, 35,25, 0,255,0,255); _assertPixel(canvas, 36,25, 0,255,0,255); + _assertPixel(canvas, 64,25, 0,255,0,255); _assertPixel(canvas, 65,25, 0,255,0,255); _assertPixel(canvas, 66,25, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.worker.js index e822679c637..d0664278979 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.basic.worker.js @@ -18,6 +18,7 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 20; // Draw a green line over a red box, to check the line is not too small ctx.fillStyle = '#f00'; @@ -27,6 +28,7 @@ ctx.beginPath(); ctx.moveTo(25, 15); ctx.lineTo(25, 35); ctx.stroke(); + // Draw a green box over a red line, to check the line is not too large ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; @@ -35,6 +37,7 @@ ctx.moveTo(75, 15); ctx.lineTo(75, 35); ctx.stroke(); ctx.fillRect(65, 15, 20, 20); + _assertPixel(canvas, 14,25, 0,255,0,255); _assertPixel(canvas, 15,25, 0,255,0,255); _assertPixel(canvas, 16,25, 0,255,0,255); @@ -42,6 +45,7 @@ _assertPixel(canvas, 25,25, 0,255,0,255); _assertPixel(canvas, 34,25, 0,255,0,255); _assertPixel(canvas, 35,25, 0,255,0,255); _assertPixel(canvas, 36,25, 0,255,0,255); + _assertPixel(canvas, 64,25, 0,255,0,255); _assertPixel(canvas, 65,25, 0,255,0,255); _assertPixel(canvas, 66,25, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.html index 439af5ecf29..993dc17948f 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.html @@ -22,21 +22,38 @@ var ctx = canvas.getContext('2d'); ctx.lineWidth = 1.5; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = 0; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = -1; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = Infinity; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = -Infinity; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = NaN; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + +ctx.lineWidth = 1.5; +ctx.lineWidth = 'string'; +_assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + +ctx.lineWidth = 1.5; +ctx.lineWidth = true; +_assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); + +ctx.lineWidth = 1.5; +ctx.lineWidth = false; +_assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); t.done(); }); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.worker.js index d87b87e901b..dc5e2c29263 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.invalid.worker.js @@ -18,21 +18,38 @@ var ctx = canvas.getContext('2d'); ctx.lineWidth = 1.5; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = 0; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = -1; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = Infinity; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = -Infinity; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = 1.5; ctx.lineWidth = NaN; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + +ctx.lineWidth = 1.5; +ctx.lineWidth = 'string'; +_assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + +ctx.lineWidth = 1.5; +ctx.lineWidth = true; +_assertSame(ctx.lineWidth, 1, "ctx.lineWidth", "1"); + +ctx.lineWidth = 1.5; +ctx.lineWidth = false; +_assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); t.done(); }); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.html index 78139978580..091fd80c298 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.html @@ -22,11 +22,13 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.scale(50, 50); ctx.strokeStyle = '#0f0'; ctx.moveTo(0, 0.5); ctx.lineTo(2, 0.5); ctx.stroke(); + _assertPixel(canvas, 25,25, 0,255,0,255); _assertPixel(canvas, 50,25, 0,255,0,255); _assertPixel(canvas, 75,25, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.worker.js index f9506c4accf..a692f4cc113 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.scaledefault.worker.js @@ -18,11 +18,13 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); + ctx.scale(50, 50); ctx.strokeStyle = '#0f0'; ctx.moveTo(0, 0.5); ctx.lineTo(2, 0.5); ctx.stroke(); + _assertPixel(canvas, 25,25, 0,255,0,255); _assertPixel(canvas, 50,25, 0,255,0,255); _assertPixel(canvas, 75,25, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.html index e75cccd9912..c54943e462c 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.html @@ -22,6 +22,7 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 4; // Draw a green line over a red box, to check the line is not too small ctx.fillStyle = '#f00'; @@ -34,6 +35,7 @@ ctx.save(); ctx.lineTo(5, 35); ctx.stroke(); ctx.restore(); + // Draw a green box over a red line, to check the line is not too large ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; @@ -45,6 +47,7 @@ ctx.save(); ctx.stroke(); ctx.restore(); ctx.fillRect(65, 15, 20, 20); + _assertPixel(canvas, 14,25, 0,255,0,255); _assertPixel(canvas, 15,25, 0,255,0,255); _assertPixel(canvas, 16,25, 0,255,0,255); @@ -52,6 +55,7 @@ _assertPixel(canvas, 25,25, 0,255,0,255); _assertPixel(canvas, 34,25, 0,255,0,255); _assertPixel(canvas, 35,25, 0,255,0,255); _assertPixel(canvas, 36,25, 0,255,0,255); + _assertPixel(canvas, 64,25, 0,255,0,255); _assertPixel(canvas, 65,25, 0,255,0,255); _assertPixel(canvas, 66,25, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.worker.js index f377d03ca75..e26e93b1e4f 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.transformed.worker.js @@ -18,6 +18,7 @@ var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); + ctx.lineWidth = 4; // Draw a green line over a red box, to check the line is not too small ctx.fillStyle = '#f00'; @@ -30,6 +31,7 @@ ctx.save(); ctx.lineTo(5, 35); ctx.stroke(); ctx.restore(); + // Draw a green box over a red line, to check the line is not too large ctx.fillStyle = '#0f0'; ctx.strokeStyle = '#f00'; @@ -41,6 +43,7 @@ ctx.save(); ctx.stroke(); ctx.restore(); ctx.fillRect(65, 15, 20, 20); + _assertPixel(canvas, 14,25, 0,255,0,255); _assertPixel(canvas, 15,25, 0,255,0,255); _assertPixel(canvas, 16,25, 0,255,0,255); @@ -48,6 +51,7 @@ _assertPixel(canvas, 25,25, 0,255,0,255); _assertPixel(canvas, 34,25, 0,255,0,255); _assertPixel(canvas, 35,25, 0,255,0,255); _assertPixel(canvas, 36,25, 0,255,0,255); + _assertPixel(canvas, 64,25, 0,255,0,255); _assertPixel(canvas, 65,25, 0,255,0,255); _assertPixel(canvas, 66,25, 0,255,0,255); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.html b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.html index adaabccc114..bdd86c6fbbf 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.html +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.html @@ -22,10 +22,13 @@ var ctx = canvas.getContext('2d'); ctx.lineWidth = 1.5; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = "1e1"; _assertSame(ctx.lineWidth, 10, "ctx.lineWidth", "10"); + ctx.lineWidth = 1/1024; _assertSame(ctx.lineWidth, 1/1024, "ctx.lineWidth", "1/1024"); + ctx.lineWidth = 1000; _assertSame(ctx.lineWidth, 1000, "ctx.lineWidth", "1000"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.worker.js b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.worker.js index f409e1fa8bf..df6ee9838e8 100644 --- a/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.worker.js +++ b/tests/wpt/web-platform-tests/html/canvas/offscreen/line-styles/2d.line.width.valid.worker.js @@ -18,10 +18,13 @@ var ctx = canvas.getContext('2d'); ctx.lineWidth = 1.5; _assertSame(ctx.lineWidth, 1.5, "ctx.lineWidth", "1.5"); + ctx.lineWidth = "1e1"; _assertSame(ctx.lineWidth, 10, "ctx.lineWidth", "10"); + ctx.lineWidth = 1/1024; _assertSame(ctx.lineWidth, 1/1024, "ctx.lineWidth", "1/1024"); + ctx.lineWidth = 1000; _assertSame(ctx.lineWidth, 1000, "ctx.lineWidth", "1000"); t.done(); diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/gentestutils.py b/tests/wpt/web-platform-tests/html/canvas/tools/gentestutils.py index 16ca5f410c0..2517568a5a8 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/gentestutils.py +++ b/tests/wpt/web-platform-tests/html/canvas/tools/gentestutils.py @@ -28,7 +28,7 @@ # # * Test the tests, add new ones to Git, remove deleted ones from Git, etc. -from typing import List, Optional +from typing import List, Mapping import re import codecs @@ -56,73 +56,251 @@ class InvalidTestDefinitionError(Error): """Raised on invalid test definition.""" +def _simpleEscapeJS(string: str) -> str: + return string.replace('\\', '\\\\').replace('"', '\\"') + + +def _escapeJS(string: str) -> str: + string = _simpleEscapeJS(string) + # Kind of an ugly hack, for nicer failure-message output. + string = re.sub(r'\[(\w+)\]', r'[\\""+(\1)+"\\"]', string) + return string + + +def _expand_nonfinite(method: str, argstr: str, tail: str) -> str: + """ + >>> print _expand_nonfinite('f', '<0 a>, <0 b>', ';') + f(a, 0); + f(0, b); + f(a, b); + >>> print _expand_nonfinite('f', '<0 a>, <0 b c>, <0 d>', ';') + f(a, 0, 0); + f(0, b, 0); + f(0, c, 0); + f(0, 0, d); + f(a, b, 0); + f(a, b, d); + f(a, 0, d); + f(0, b, d); + """ + # argstr is "Expected output:
'
+ '' % expected_img)
+
+ canvas = test.get('canvas', 'width="100" height="50"')
+
+ notes = '
%s' % test['notes'] if 'notes' in test else ''
+
+ timeout = ('\n' %
+ test['timeout'] if 'timeout' in test else '')
+
+ scripts = ''
+ for s in test.get('scripts', []):
+ scripts += '\n' % (s)
+
+ images = ''
+ for src in test.get('images', []):
+ img_id = src.split('/')[-1]
+ if '/' not in src:
+ src = '../images/%s' % src
+ images += '\n' % (src, img_id)
+ for src in test.get('svgimages', []):
+ img_id = src.split('/')[-1]
+ if '/' not in src:
+ src = '../images/%s' % src
+ images += ('\n' % (src, img_id))
+ images = images.replace('../images/', '/images/')
+
+ fonts = ''
+ fonthack = ''
+ for font in test.get('fonts', []):
+ fonts += ('@font-face {\n font-family: %s;\n'
+ ' src: url("/fonts/%s.ttf");\n}\n' % (font, font))
+ # Browsers require the font to actually be used in the page.
+ if test.get('fonthack', 1):
+ fonthack += (' \n' % font)
+ if fonts:
+ fonts = '\n' % fonts
+
+ fallback = test.get('fallback',
+ '
FAIL (fallback content)
') + + desc = test.get('desc', '') + escaped_desc = _simpleEscapeJS(desc) + + attributes = test.get('attributes', '') + if attributes: + context_args = "'2d', %s" % attributes.strip() + attributes = ', ' + attributes.strip() + else: + context_args = "'2d'" + + template_params = { + 'name': name, + 'desc': desc, + 'escaped_desc': escaped_desc, + 'notes': notes, + 'images': images, + 'fonts': fonts, + 'fonthack': fonthack, + 'timeout': timeout, + 'canvas': canvas, + 'expected': expectation_html, + 'code': code, + 'scripts': scripts, + 'fallback': fallback, + 'attributes': attributes, + 'context_args': context_args + } + + test_path = os.path.join(test_output_dir, sub_dir, name) + if 'manual' in test: + test_path += '-manual' + + if is_offscreen_canvas: + f = codecs.open(f'{test_path}.html', 'w', 'utf-8') + f.write(templates['w3coffscreencanvas'] % template_params) + timeout = ('// META: timeout=%s\n' % + test['timeout'] if 'timeout' in test else '') + template_params['timeout'] = timeout + f = codecs.open(f'{test_path}.worker.js', 'w', 'utf-8') + f.write(templates['w3cworker'] % template_params) + else: + f = codecs.open(f'{test_path}.html', 'w', 'utf-8') + f.write(templates['w3ccanvas'] % template_params) + + def genTestUtils(TESTOUTPUTDIR: str, IMAGEOUTPUTDIR: str, TEMPLATEFILE: str, NAME2DIRFILE: str, ISOFFSCREENCANVAS: bool) -> None: - - MISCOUTPUTDIR = './output' - - def simpleEscapeJS(string: str) -> str: - return string.replace('\\', '\\\\').replace('"', '\\"') - - def escapeJS(string: str) -> str: - string = simpleEscapeJS(string) - # Kind of an ugly hack, for nicer failure-message output. - string = re.sub(r'\[(\w+)\]', r'[\\""+(\1)+"\\"]', string) - return string - - def expand_nonfinite(method: str, argstr: str, tail: str) -> str: - """ - >>> print expand_nonfinite('f', '<0 a>, <0 b>', ';') - f(a, 0); - f(0, b); - f(a, b); - >>> print expand_nonfinite('f', '<0 a>, <0 b c>, <0 d>', ';') - f(a, 0, 0); - f(0, b, 0); - f(0, c, 0); - f(0, 0, d); - f(a, b, 0); - f(a, b, d); - f(a, 0, d); - f(0, b, d); - """ - # argstr is "Expected output:
'
- '' % expected_img)
-
- canvas = test.get('canvas', 'width="100" height="50"')
-
- prev_test = tests[i - 1]['name'] if i != 0 else 'index'
- next_test = tests[i + 1]['name'] if i != len(tests) - 1 else 'index'
-
- name_wrapped = name.replace('.', '.')
-
- notes = '
%s' % test['notes'] if 'notes' in test else ''
-
- timeout = ('\n' %
- test['timeout'] if 'timeout' in test else '')
-
- scripts = ''
- for s in test.get('scripts', []):
- scripts += '\n' % (s)
-
- variants = test.get('script-variants', {})
- script_variants = [(v, '\n' % (s))
- for (v, s) in variants.items()]
- if not script_variants:
- script_variants = [('', '')]
-
- images = ''
- for src in test.get('images', []):
- img_id = src.split('/')[-1]
- if '/' not in src:
- used_images[src] = 1
- src = '../images/%s' % src
- images += '\n' % (src,
- img_id)
- for src in test.get('svgimages', []):
- img_id = src.split('/')[-1]
- if '/' not in src:
- used_images[src] = 1
- src = '../images/%s' % src
- images += ('\n' % (src, img_id))
- images = images.replace('../images/', '/images/')
-
- fonts = ''
- fonthack = ''
- for font in test.get('fonts', []):
- fonts += ('@font-face {\n font-family: %s;\n'
- ' src: url("/fonts/%s.ttf");\n}\n' % (font, font))
- # Browsers require the font to actually be used in the page.
- if test.get('fonthack', 1):
- fonthack += (' \n' % font)
- if fonts:
- fonts = '\n' % fonts
-
- fallback = test.get('fallback',
- '
FAIL (fallback content)
') - - desc = test.get('desc', '') - escaped_desc = simpleEscapeJS(desc) - - attributes = test.get('attributes', '') - if attributes: - context_args = "'2d', %s" % attributes.strip() - attributes = ', ' + attributes.strip() - else: - context_args = "'2d'" - - for (variant, extra_script) in script_variants: - name_variant = '' if not variant else '.' + variant - - template_params = { - 'name': name + name_variant, - 'name_wrapped': name_wrapped, - 'backrefs': backref_html(name), - 'mapped_name': mapped_name, - 'desc': desc, - 'escaped_desc': escaped_desc, - 'prev': prev_test, - 'next': next_test, - 'notes': notes, - 'images': images, - 'fonts': fonts, - 'fonthack': fonthack, - 'timeout': timeout, - 'canvas': canvas, - 'expected': expectation_html, - 'code': code, - 'scripts': scripts + extra_script, - 'fallback': fallback, - 'attributes': attributes, - 'context_args': context_args - } - if ISOFFSCREENCANVAS: - f = codecs.open( - '%s/%s%s.html' % - (TESTOUTPUTDIR, mapped_name, name_variant), 'w', 'utf-8') - f.write(templates['w3coffscreencanvas'] % template_params) - timeout = ('// META: timeout=%s\n' % - test['timeout'] if 'timeout' in test else '') - template_params['timeout'] = timeout - f = codecs.open( - '%s/%s%s.worker.js' % - (TESTOUTPUTDIR, mapped_name, name_variant), 'w', 'utf-8') - f.write(templates['w3cworker'] % template_params) - else: - f = codecs.open( - '%s/%s%s.html' % - (TESTOUTPUTDIR, mapped_name, name_variant), 'w', 'utf-8') - f.write(templates['w3ccanvas'] % template_params) + sub_dir = _get_test_sub_dir(name, name_to_sub_dir) + _generate_test(test, templates, sub_dir, TESTOUTPUTDIR, IMAGEOUTPUTDIR, + ISOFFSCREENCANVAS) print() diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py b/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py index 047dd6c802b..4c65d688c25 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py +++ b/tests/wpt/web-platform-tests/html/canvas/tools/gentestutilsunion.py @@ -28,10 +28,13 @@ # # * Test the tests, add new ones to Git, remove deleted ones from Git, etc. -from typing import List +from typing import List, Mapping import re import codecs +import collections +import dataclasses +import enum import importlib import os import sys @@ -56,74 +59,291 @@ class InvalidTestDefinitionError(Error): """Raised on invalid test definition.""" +def _simpleEscapeJS(string: str) -> str: + return string.replace('\\', '\\\\').replace('"', '\\"') + + +def _escapeJS(string: str) -> str: + string = _simpleEscapeJS(string) + # Kind of an ugly hack, for nicer failure-message output. + string = re.sub(r'\[(\w+)\]', r'[\\""+(\1)+"\\"]', string) + return string + + +def _expand_nonfinite(method: str, argstr: str, tail: str) -> str: + """ + >>> print _expand_nonfinite('f', '<0 a>, <0 b>', ';') + f(a, 0); + f(0, b); + f(a, b); + >>> print _expand_nonfinite('f', '<0 a>, <0 b c>, <0 d>', ';') + f(a, 0, 0); + f(0, b, 0); + f(0, c, 0); + f(0, 0, d); + f(a, b, 0); + f(a, b, d); + f(a, 0, d); + f(0, b, d); + """ + # argstr is "Expected output:
'
+ '' % expected_img)
+
+ canvas = test.get('canvas', 'width="100" height="50"')
+
+ notes = '
%s' % test['notes'] if 'notes' in test else ''
+
+ timeout = ('\n' %
+ test['timeout'] if 'timeout' in test else '')
+
+ scripts = ''
+ for s in test.get('scripts', []):
+ scripts += '\n' % (s)
+
+ images = ''
+ for src in test.get('images', []):
+ img_id = src.split('/')[-1]
+ if '/' not in src:
+ src = '../images/%s' % src
+ images += '\n' % (src, img_id)
+ for src in test.get('svgimages', []):
+ img_id = src.split('/')[-1]
+ if '/' not in src:
+ src = '../images/%s' % src
+ images += ('\n' % (src, img_id))
+ images = images.replace('../images/', '/images/')
+
+ fonts = ''
+ fonthack = ''
+ for font in test.get('fonts', []):
+ fonts += ('@font-face {\n font-family: %s;\n'
+ ' src: url("/fonts/%s.ttf");\n}\n' % (font, font))
+ # Browsers require the font to actually be used in the page.
+ if test.get('fonthack', 1):
+ fonthack += (' \n' % font)
+ if fonts:
+ fonts = '\n' % fonts
+
+ fallback = test.get('fallback',
+ '
FAIL (fallback content)
') + + desc = test.get('desc', '') + escaped_desc = _simpleEscapeJS(desc) + + attributes = test.get('attributes', '') + if attributes: + context_args = "'2d', %s" % attributes.strip() + attributes = ', ' + attributes.strip() + else: + context_args = "'2d'" + + template_params = { + 'name': name, + 'desc': desc, + 'escaped_desc': escaped_desc, + 'notes': notes, + 'images': images, + 'fonts': fonts, + 'fonthack': fonthack, + 'timeout': timeout, + 'canvas': canvas, + 'expected': expectation_html, + 'code': code_canvas, + 'scripts': scripts, + 'fallback': fallback, + 'attributes': attributes, + 'context_args': context_args + } + + canvas_path = os.path.join(html_canvas_cfg.out_dir, sub_dir, name) + offscreen_path = os.path.join(offscreen_canvas_cfg.out_dir, sub_dir, name) + if 'manual' in test: + canvas_path += '-manual' + offscreen_path += '-manual' + + # Create test cases for canvas and offscreencanvas. + if html_canvas_cfg.enabled: + f = codecs.open(f'{canvas_path}.html', 'w', 'utf-8') + f.write(templates['w3ccanvas'] % template_params) + if offscreen_canvas_cfg.enabled: + f_html = codecs.open(f'{offscreen_path}.html', 'w', 'utf-8') + f_worker = codecs.open(f'{offscreen_path}.worker.js', 'w', 'utf-8') + if ('then(t_pass, t_fail);' in code_canvas): + temp_offscreen = templates['w3coffscreencanvas'].replace( + 't.done();\n', '') + temp_worker = templates['w3cworker'].replace('t.done();\n', '') + f_html.write(temp_offscreen % template_params) + timeout = ('// META: timeout=%s\n' % + test['timeout'] if 'timeout' in test else '') + template_params['timeout'] = timeout + f_worker.write(temp_worker % template_params) + else: + f_html.write(templates['w3coffscreencanvas'] % template_params) + timeout = ('// META: timeout=%s\n' % + test['timeout'] if 'timeout' in test else '') + template_params['timeout'] = timeout + f_worker.write(templates['w3cworker'] % template_params) + + def genTestUtils_union(TEMPLATEFILE: str, NAME2DIRFILE: str) -> None: CANVASOUTPUTDIR = '../element' CANVASIMAGEOUTPUTDIR = '../element' OFFSCREENCANVASOUTPUTDIR = '../offscreen' OFFSCREENCANVASIMAGEOUTPUTDIR = '../offscreen' - MISCOUTPUTDIR = './output' - - def simpleEscapeJS(string: str) -> str: - return string.replace('\\', '\\\\').replace('"', '\\"') - - def escapeJS(string: str) -> str: - string = simpleEscapeJS(string) - # Kind of an ugly hack, for nicer failure-message output. - string = re.sub(r'\[(\w+)\]', r'[\\""+(\1)+"\\"]', string) - return string - - def expand_nonfinite(method: str, argstr: str, tail: str) -> str: - """ - >>> print expand_nonfinite('f', '<0 a>, <0 b>', ';') - f(a, 0); - f(0, b); - f(a, b); - >>> print expand_nonfinite('f', '<0 a>, <0 b c>, <0 d>', ';') - f(a, 0, 0); - f(0, b, 0); - f(0, c, 0); - f(0, 0, d); - f(a, b, 0); - f(a, b, d); - f(a, 0, d); - f(0, b, d); - """ - # argstr is "Expected output:
'
- '' % expected_img)
-
- canvas = test.get('canvas', 'width="100" height="50"')
-
- prev_test = tests[i - 1]['name'] if i != 0 else 'index'
- next_test = tests[i + 1]['name'] if i != len(tests) - 1 else 'index'
-
- name_wrapped = name.replace('.', '.')
-
- notes = '
%s' % test['notes'] if 'notes' in test else ''
-
- timeout = ('\n' %
- test['timeout'] if 'timeout' in test else '')
-
- scripts = ''
- for s in test.get('scripts', []):
- scripts += '\n' % (s)
-
- variants = test.get('script-variants', {})
- script_variants = [(v, '\n' % (s))
- for (v, s) in variants.items()]
- if not script_variants:
- script_variants = [('', '')]
-
- images = ''
- for src in test.get('images', []):
- img_id = src.split('/')[-1]
- if '/' not in src:
- used_images[src] = 1
- src = '../images/%s' % src
- images += '\n' % (src,
- img_id)
- for src in test.get('svgimages', []):
- img_id = src.split('/')[-1]
- if '/' not in src:
- used_images[src] = 1
- src = '../images/%s' % src
- images += ('\n' % (src, img_id))
- images = images.replace('../images/', '/images/')
-
- fonts = ''
- fonthack = ''
- for font in test.get('fonts', []):
- fonts += ('@font-face {\n font-family: %s;\n'
- ' src: url("/fonts/%s.ttf");\n}\n' % (font, font))
- # Browsers require the font to actually be used in the page.
- if test.get('fonthack', 1):
- fonthack += (' \n' % font)
- if fonts:
- fonts = '\n' % fonts
-
- fallback = test.get('fallback',
- '
FAIL (fallback content)
') - - desc = test.get('desc', '') - escaped_desc = simpleEscapeJS(desc) - - attributes = test.get('attributes', '') - if attributes: - context_args = "'2d', %s" % attributes.strip() - attributes = ', ' + attributes.strip() - else: - context_args = "'2d'" - - for (variant, extra_script) in script_variants: - name_variant = '' if not variant else '.' + variant - - template_params = { - 'name': name + name_variant, - 'name_wrapped': name_wrapped, - 'backrefs': backref_html(name), - 'mapped_name': mapped_name, - 'desc': desc, - 'escaped_desc': escaped_desc, - 'prev': prev_test, - 'next': next_test, - 'notes': notes, - 'images': images, - 'fonts': fonts, - 'fonthack': fonthack, - 'timeout': timeout, - 'canvas': canvas, - 'expected': expectation_html, - 'code': code_canvas, - 'scripts': scripts + extra_script, - 'fallback': fallback, - 'attributes': attributes, - 'context_args': context_args - } - - # Create test cases for canvas and offscreencanvas. - if HTMLCanvas_test: - f = codecs.open( - '%s/%s%s.html' % - (CANVASOUTPUTDIR, mapped_name, name_variant), 'w', 'utf-8') - f.write(templates['w3ccanvas'] % template_params) - if OffscreenCanvas_test: - f_html = codecs.open( - '%s/%s%s.html' % - (OFFSCREENCANVASOUTPUTDIR, mapped_name, name_variant), 'w', - 'utf-8') - f_worker = codecs.open( - '%s/%s%s.worker.js' % - (OFFSCREENCANVASOUTPUTDIR, mapped_name, name_variant), 'w', - 'utf-8') - if ('then(t_pass, t_fail);' in code_canvas): - temp_offscreen = templates['w3coffscreencanvas'].replace( - 't.done();\n', '') - temp_worker = templates['w3cworker'].replace( - 't.done();\n', '') - f_html.write(temp_offscreen % template_params) - timeout = ('// META: timeout=%s\n' % - test['timeout'] if 'timeout' in test else '') - template_params['timeout'] = timeout - f_worker.write(temp_worker % template_params) - else: - f_html.write(templates['w3coffscreencanvas'] % - template_params) - timeout = ('// META: timeout=%s\n' % - test['timeout'] if 'timeout' in test else '') - template_params['timeout'] = timeout - f_worker.write(templates['w3cworker'] % template_params) print() diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-canvas.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-canvas.yaml index f1ebe4b8a9d..c3818ebc76e 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-canvas.yaml +++ b/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-canvas.yaml @@ -17,7 +17,6 @@ 2d.gradient: "fill-and-stroke-styles" 2d.pattern: "fill-and-stroke-styles" 2d.strokeStyle: "fill-and-stroke-styles" -2d.line: "line-styles" 2d.path: "path-objects" 2d.imageData: "pixel-manipulation" 2d.reset: "reset" @@ -52,4 +51,4 @@ type: "../../../html/semantics/embedded-content/ 2d.offscreencanva.getcontext: "the-offscreen-canvas" 2d.offscreencanva.context: "the-offscreen-canvas" 2d.offscreencanva.initial: "the-offscreen-canvas" -2d.offscreencanva.size: "the-offscreen-canvas" \ No newline at end of file +2d.offscreencanva.size: "the-offscreen-canvas" diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-offscreen.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-offscreen.yaml index 4ac261fe325..807b09507b1 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-offscreen.yaml +++ b/tests/wpt/web-platform-tests/html/canvas/tools/name2dir-offscreen.yaml @@ -13,7 +13,6 @@ 2d.strokeRect: "drawing-rectangles-to-the-canvas" 2d.drawImage: "drawing-images-to-the-canvas" 2d.imageData: "pixel-manipulation" -2d.line: "line-styles" 2d.path: "path-objects" 2d.text: "text" 2d.coordinatespace: "conformance-requirements" diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/drawing-images-to-the-canvas.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/drawing-images-to-the-canvas.yaml index 83de88113f2..e263bf0253d 100644 --- a/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/drawing-images-to-the-canvas.yaml +++ b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/drawing-images-to-the-canvas.yaml @@ -424,6 +424,7 @@ - name: 2d.drawImage.zerocanvas desc: drawImage with zero-sized canvas as the source shoud throw exception + canvasType: ['HTMLCanvas'] code: | var canvas2 = document.createElement('canvas'); canvas2.width = 0; @@ -523,6 +524,7 @@ expected: green - name: 2d.drawImage.clip + canvasType: ['HTMLCanvas'] images: - red.png code: | @@ -1330,4 +1332,3 @@ @assert pixel 50,25 == 0,255,0,255; }, t_fail); }).then(t_pass, t_fail); - diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/yaml/element/line-styles.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/line-styles.yaml similarity index 100% rename from tests/wpt/web-platform-tests/html/canvas/tools/yaml/element/line-styles.yaml rename to tests/wpt/web-platform-tests/html/canvas/tools/yaml-new/line-styles.yaml diff --git a/tests/wpt/web-platform-tests/html/canvas/tools/yaml/offscreen/line-styles.yaml b/tests/wpt/web-platform-tests/html/canvas/tools/yaml/offscreen/line-styles.yaml deleted file mode 100644 index 984949827db..00000000000 --- a/tests/wpt/web-platform-tests/html/canvas/tools/yaml/offscreen/line-styles.yaml +++ /dev/null @@ -1,773 +0,0 @@ -- name: 2d.line.defaults - code: | - @assert ctx.lineWidth === 1; - @assert ctx.lineCap === 'butt'; - @assert ctx.lineJoin === 'miter'; - @assert ctx.miterLimit === 10; - t.done(); - -- name: 2d.line.width.basic - desc: lineWidth determines the width of line strokes - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 20; - // Draw a green line over a red box, to check the line is not too small - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(15, 15, 20, 20); - ctx.beginPath(); - ctx.moveTo(25, 15); - ctx.lineTo(25, 35); - ctx.stroke(); - // Draw a green box over a red line, to check the line is not too large - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(75, 15); - ctx.lineTo(75, 35); - ctx.stroke(); - ctx.fillRect(65, 15, 20, 20); - @assert pixel 14,25 == 0,255,0,255; - @assert pixel 15,25 == 0,255,0,255; - @assert pixel 16,25 == 0,255,0,255; - @assert pixel 25,25 == 0,255,0,255; - @assert pixel 34,25 == 0,255,0,255; - @assert pixel 35,25 == 0,255,0,255; - @assert pixel 36,25 == 0,255,0,255; - @assert pixel 64,25 == 0,255,0,255; - @assert pixel 65,25 == 0,255,0,255; - @assert pixel 66,25 == 0,255,0,255; - @assert pixel 75,25 == 0,255,0,255; - @assert pixel 84,25 == 0,255,0,255; - @assert pixel 85,25 == 0,255,0,255; - @assert pixel 86,25 == 0,255,0,255; - t.done(); - -- name: 2d.line.width.transformed - desc: Line stroke widths are affected by scale transformations - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 4; - // Draw a green line over a red box, to check the line is not too small - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(15, 15, 20, 20); - ctx.save(); - ctx.scale(5, 1); - ctx.beginPath(); - ctx.moveTo(5, 15); - ctx.lineTo(5, 35); - ctx.stroke(); - ctx.restore(); - // Draw a green box over a red line, to check the line is not too large - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.save(); - ctx.scale(-5, 1); - ctx.beginPath(); - ctx.moveTo(-15, 15); - ctx.lineTo(-15, 35); - ctx.stroke(); - ctx.restore(); - ctx.fillRect(65, 15, 20, 20); - @assert pixel 14,25 == 0,255,0,255; - @assert pixel 15,25 == 0,255,0,255; - @assert pixel 16,25 == 0,255,0,255; - @assert pixel 25,25 == 0,255,0,255; - @assert pixel 34,25 == 0,255,0,255; - @assert pixel 35,25 == 0,255,0,255; - @assert pixel 36,25 == 0,255,0,255; - @assert pixel 64,25 == 0,255,0,255; - @assert pixel 65,25 == 0,255,0,255; - @assert pixel 66,25 == 0,255,0,255; - @assert pixel 75,25 == 0,255,0,255; - @assert pixel 84,25 == 0,255,0,255; - @assert pixel 85,25 == 0,255,0,255; - @assert pixel 86,25 == 0,255,0,255; - t.done(); - -- name: 2d.line.width.scaledefault - desc: Default lineWidth strokes are affected by scale transformations - code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.scale(50, 50); - ctx.strokeStyle = '#0f0'; - ctx.moveTo(0, 0.5); - ctx.lineTo(2, 0.5); - ctx.stroke(); - @assert pixel 25,25 == 0,255,0,255; - @assert pixel 50,25 == 0,255,0,255; - @assert pixel 75,25 == 0,255,0,255; - @assert pixel 50,5 == 0,255,0,255; - @assert pixel 50,45 == 0,255,0,255; - t.done(); - -- name: 2d.line.width.valid - desc: Setting lineWidth to valid values works - code: | - ctx.lineWidth = 1.5; - @assert ctx.lineWidth === 1.5; - ctx.lineWidth = "1e1"; - @assert ctx.lineWidth === 10; - ctx.lineWidth = 1/1024; - @assert ctx.lineWidth === 1/1024; - ctx.lineWidth = 1000; - @assert ctx.lineWidth === 1000; - t.done(); - -- name: 2d.line.width.invalid - desc: Setting lineWidth to invalid values is ignored - code: | - ctx.lineWidth = 1.5; - @assert ctx.lineWidth === 1.5; - ctx.lineWidth = 1.5; - ctx.lineWidth = 0; - @assert ctx.lineWidth === 1.5; - ctx.lineWidth = 1.5; - ctx.lineWidth = -1; - @assert ctx.lineWidth === 1.5; - ctx.lineWidth = 1.5; - ctx.lineWidth = Infinity; - @assert ctx.lineWidth === 1.5; - ctx.lineWidth = 1.5; - ctx.lineWidth = -Infinity; - @assert ctx.lineWidth === 1.5; - ctx.lineWidth = 1.5; - ctx.lineWidth = NaN; - @assert ctx.lineWidth === 1.5; - t.done(); - -- name: 2d.line.cap.butt - desc: lineCap 'butt' is rendered correctly - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineCap = 'butt'; - ctx.lineWidth = 20; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(15, 15, 20, 20); - ctx.beginPath(); - ctx.moveTo(25, 15); - ctx.lineTo(25, 35); - ctx.stroke(); - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(75, 15); - ctx.lineTo(75, 35); - ctx.stroke(); - ctx.fillRect(65, 15, 20, 20); - @assert pixel 25,14 == 0,255,0,255; - @assert pixel 25,15 == 0,255,0,255; - @assert pixel 25,16 == 0,255,0,255; - @assert pixel 25,34 == 0,255,0,255; - @assert pixel 25,35 == 0,255,0,255; - @assert pixel 25,36 == 0,255,0,255; - @assert pixel 75,14 == 0,255,0,255; - @assert pixel 75,15 == 0,255,0,255; - @assert pixel 75,16 == 0,255,0,255; - @assert pixel 75,34 == 0,255,0,255; - @assert pixel 75,35 == 0,255,0,255; - @assert pixel 75,36 == 0,255,0,255; - t.done(); - -- name: 2d.line.cap.round - desc: lineCap 'round' is rendered correctly - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - var tol = 1; // tolerance to avoid antialiasing artifacts - ctx.lineCap = 'round'; - ctx.lineWidth = 20; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.beginPath(); - ctx.moveTo(35-tol, 15); - ctx.arc(25, 15, 10-tol, 0, Math.PI, true); - ctx.arc(25, 35, 10-tol, Math.PI, 0, true); - ctx.fill(); - ctx.beginPath(); - ctx.moveTo(25, 15); - ctx.lineTo(25, 35); - ctx.stroke(); - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(75, 15); - ctx.lineTo(75, 35); - ctx.stroke(); - ctx.beginPath(); - ctx.moveTo(85+tol, 15); - ctx.arc(75, 15, 10+tol, 0, Math.PI, true); - ctx.arc(75, 35, 10+tol, Math.PI, 0, true); - ctx.fill(); - @assert pixel 17,6 == 0,255,0,255; - @assert pixel 25,6 == 0,255,0,255; - @assert pixel 32,6 == 0,255,0,255; - @assert pixel 17,43 == 0,255,0,255; - @assert pixel 25,43 == 0,255,0,255; - @assert pixel 32,43 == 0,255,0,255; - @assert pixel 67,6 == 0,255,0,255; - @assert pixel 75,6 == 0,255,0,255; - @assert pixel 82,6 == 0,255,0,255; - @assert pixel 67,43 == 0,255,0,255; - @assert pixel 75,43 == 0,255,0,255; - @assert pixel 82,43 == 0,255,0,255; - t.done(); - -- name: 2d.line.cap.square - desc: lineCap 'square' is rendered correctly - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineCap = 'square'; - ctx.lineWidth = 20; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(15, 5, 20, 40); - ctx.beginPath(); - ctx.moveTo(25, 15); - ctx.lineTo(25, 35); - ctx.stroke(); - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(75, 15); - ctx.lineTo(75, 35); - ctx.stroke(); - ctx.fillRect(65, 5, 20, 40); - @assert pixel 25,4 == 0,255,0,255; - @assert pixel 25,5 == 0,255,0,255; - @assert pixel 25,6 == 0,255,0,255; - @assert pixel 25,44 == 0,255,0,255; - @assert pixel 25,45 == 0,255,0,255; - @assert pixel 25,46 == 0,255,0,255; - @assert pixel 75,4 == 0,255,0,255; - @assert pixel 75,5 == 0,255,0,255; - @assert pixel 75,6 == 0,255,0,255; - @assert pixel 75,44 == 0,255,0,255; - @assert pixel 75,45 == 0,255,0,255; - @assert pixel 75,46 == 0,255,0,255; - t.done(); - -- name: 2d.line.cap.open - desc: Line caps are drawn at the corners of an unclosed rectangle - code: | - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineJoin = 'bevel'; - ctx.lineCap = 'square'; - ctx.lineWidth = 400; - ctx.beginPath(); - ctx.moveTo(200, 200); - ctx.lineTo(200, 1000); - ctx.lineTo(1000, 1000); - ctx.lineTo(1000, 200); - ctx.lineTo(200, 200); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.cap.closed - desc: Line caps are not drawn at the corners of an unclosed rectangle - code: | - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineJoin = 'bevel'; - ctx.lineCap = 'square'; - ctx.lineWidth = 400; - ctx.beginPath(); - ctx.moveTo(200, 200); - ctx.lineTo(200, 1000); - ctx.lineTo(1000, 1000); - ctx.lineTo(1000, 200); - ctx.closePath(); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.cap.valid - desc: Setting lineCap to valid values works - code: | - ctx.lineCap = 'butt' - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'round'; - @assert ctx.lineCap === 'round'; - ctx.lineCap = 'square'; - @assert ctx.lineCap === 'square'; - t.done(); - -- name: 2d.line.cap.invalid - desc: Setting lineCap to invalid values is ignored - code: | - ctx.lineCap = 'butt' - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'butt'; - ctx.lineCap = 'invalid'; - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'butt'; - ctx.lineCap = 'ROUND'; - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'butt'; - ctx.lineCap = 'round\0'; - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'butt'; - ctx.lineCap = 'round '; - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'butt'; - ctx.lineCap = ""; - @assert ctx.lineCap === 'butt'; - ctx.lineCap = 'butt'; - ctx.lineCap = 'bevel'; - @assert ctx.lineCap === 'butt'; - t.done(); - -- name: 2d.line.join.bevel - desc: lineJoin 'bevel' is rendered correctly - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - var tol = 1; // tolerance to avoid antialiasing artifacts - ctx.lineJoin = 'bevel'; - ctx.lineWidth = 20; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(10, 10, 20, 20); - ctx.fillRect(20, 20, 20, 20); - ctx.beginPath(); - ctx.moveTo(30, 20); - ctx.lineTo(40-tol, 20); - ctx.lineTo(30, 10+tol); - ctx.fill(); - ctx.beginPath(); - ctx.moveTo(10, 20); - ctx.lineTo(30, 20); - ctx.lineTo(30, 40); - ctx.stroke(); - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(60, 20); - ctx.lineTo(80, 20); - ctx.lineTo(80, 40); - ctx.stroke(); - ctx.fillRect(60, 10, 20, 20); - ctx.fillRect(70, 20, 20, 20); - ctx.beginPath(); - ctx.moveTo(80, 20); - ctx.lineTo(90+tol, 20); - ctx.lineTo(80, 10-tol); - ctx.fill(); - @assert pixel 34,16 == 0,255,0,255; - @assert pixel 34,15 == 0,255,0,255; - @assert pixel 35,15 == 0,255,0,255; - @assert pixel 36,15 == 0,255,0,255; - @assert pixel 36,14 == 0,255,0,255; - @assert pixel 84,16 == 0,255,0,255; - @assert pixel 84,15 == 0,255,0,255; - @assert pixel 85,15 == 0,255,0,255; - @assert pixel 86,15 == 0,255,0,255; - @assert pixel 86,14 == 0,255,0,255; - t.done(); - -- name: 2d.line.join.round - desc: lineJoin 'round' is rendered correctly - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - var tol = 1; // tolerance to avoid antialiasing artifacts - ctx.lineJoin = 'round'; - ctx.lineWidth = 20; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(10, 10, 20, 20); - ctx.fillRect(20, 20, 20, 20); - ctx.beginPath(); - ctx.moveTo(30, 20); - ctx.arc(30, 20, 10-tol, 0, 2*Math.PI, true); - ctx.fill(); - ctx.beginPath(); - ctx.moveTo(10, 20); - ctx.lineTo(30, 20); - ctx.lineTo(30, 40); - ctx.stroke(); - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(60, 20); - ctx.lineTo(80, 20); - ctx.lineTo(80, 40); - ctx.stroke(); - ctx.fillRect(60, 10, 20, 20); - ctx.fillRect(70, 20, 20, 20); - ctx.beginPath(); - ctx.moveTo(80, 20); - ctx.arc(80, 20, 10+tol, 0, 2*Math.PI, true); - ctx.fill(); - @assert pixel 36,14 == 0,255,0,255; - @assert pixel 36,13 == 0,255,0,255; - @assert pixel 37,13 == 0,255,0,255; - @assert pixel 38,13 == 0,255,0,255; - @assert pixel 38,12 == 0,255,0,255; - @assert pixel 86,14 == 0,255,0,255; - @assert pixel 86,13 == 0,255,0,255; - @assert pixel 87,13 == 0,255,0,255; - @assert pixel 88,13 == 0,255,0,255; - @assert pixel 88,12 == 0,255,0,255; - t.done(); - -- name: 2d.line.join.miter - desc: lineJoin 'miter' is rendered correctly - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineJoin = 'miter'; - ctx.lineWidth = 20; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(10, 10, 30, 20); - ctx.fillRect(20, 10, 20, 30); - ctx.beginPath(); - ctx.moveTo(10, 20); - ctx.lineTo(30, 20); - ctx.lineTo(30, 40); - ctx.stroke(); - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(60, 20); - ctx.lineTo(80, 20); - ctx.lineTo(80, 40); - ctx.stroke(); - ctx.fillRect(60, 10, 30, 20); - ctx.fillRect(70, 10, 20, 30); - @assert pixel 38,12 == 0,255,0,255; - @assert pixel 39,11 == 0,255,0,255; - @assert pixel 40,10 == 0,255,0,255; - @assert pixel 41,9 == 0,255,0,255; - @assert pixel 42,8 == 0,255,0,255; - @assert pixel 88,12 == 0,255,0,255; - @assert pixel 89,11 == 0,255,0,255; - @assert pixel 90,10 == 0,255,0,255; - @assert pixel 91,9 == 0,255,0,255; - @assert pixel 92,8 == 0,255,0,255; - t.done(); - -- name: 2d.line.join.open - desc: Line joins are not drawn at the corner of an unclosed rectangle - code: | - ctx.fillStyle = '#0f0'; - ctx.strokeStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineJoin = 'miter'; - ctx.lineWidth = 200; - ctx.beginPath(); - ctx.moveTo(100, 50); - ctx.lineTo(100, 1000); - ctx.lineTo(1000, 1000); - ctx.lineTo(1000, 50); - ctx.lineTo(100, 50); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.join.closed - desc: Line joins are drawn at the corner of a closed rectangle - code: | - ctx.fillStyle = '#f00'; - ctx.strokeStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineJoin = 'miter'; - ctx.lineWidth = 200; - ctx.beginPath(); - ctx.moveTo(100, 50); - ctx.lineTo(100, 1000); - ctx.lineTo(1000, 1000); - ctx.lineTo(1000, 50); - ctx.closePath(); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.join.parallel - desc: Line joins are drawn at 180-degree joins - code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.strokeStyle = '#0f0'; - ctx.lineWidth = 300; - ctx.lineJoin = 'round'; - ctx.beginPath(); - ctx.moveTo(-100, 25); - ctx.lineTo(0, 25); - ctx.lineTo(-100, 25); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.join.valid - desc: Setting lineJoin to valid values works - code: | - ctx.lineJoin = 'bevel' - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'round'; - @assert ctx.lineJoin === 'round'; - ctx.lineJoin = 'miter'; - @assert ctx.lineJoin === 'miter'; - t.done(); - -- name: 2d.line.join.invalid - desc: Setting lineJoin to invalid values is ignored - code: | - ctx.lineJoin = 'bevel' - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'bevel'; - ctx.lineJoin = 'invalid'; - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'bevel'; - ctx.lineJoin = 'ROUND'; - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'bevel'; - ctx.lineJoin = 'round\0'; - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'bevel'; - ctx.lineJoin = 'round '; - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'bevel'; - ctx.lineJoin = ""; - @assert ctx.lineJoin === 'bevel'; - ctx.lineJoin = 'bevel'; - ctx.lineJoin = 'butt'; - @assert ctx.lineJoin === 'bevel'; - t.done(); - -- name: 2d.line.miter.exceeded - desc: Miter joins are not drawn when the miter limit is exceeded - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 400; - ctx.lineJoin = 'miter'; - ctx.strokeStyle = '#f00'; - ctx.miterLimit = 1.414; - ctx.beginPath(); - ctx.moveTo(200, 1000); - ctx.lineTo(200, 200); - ctx.lineTo(1000, 201); // slightly non-right-angle to avoid being a special case - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.miter.acute - desc: Miter joins are drawn correctly with acute angles - code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 200; - ctx.lineJoin = 'miter'; - ctx.strokeStyle = '#0f0'; - ctx.miterLimit = 2.614; - ctx.beginPath(); - ctx.moveTo(100, 1000); - ctx.lineTo(100, 100); - ctx.lineTo(1000, 1000); - ctx.stroke(); - ctx.strokeStyle = '#f00'; - ctx.miterLimit = 2.613; - ctx.beginPath(); - ctx.moveTo(100, 1000); - ctx.lineTo(100, 100); - ctx.lineTo(1000, 1000); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.miter.obtuse - desc: Miter joins are drawn correctly with obtuse angles - code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 1600; - ctx.lineJoin = 'miter'; - ctx.strokeStyle = '#0f0'; - ctx.miterLimit = 1.083; - ctx.beginPath(); - ctx.moveTo(800, 10000); - ctx.lineTo(800, 300); - ctx.lineTo(10000, -8900); - ctx.stroke(); - ctx.strokeStyle = '#f00'; - ctx.miterLimit = 1.082; - ctx.beginPath(); - ctx.moveTo(800, 10000); - ctx.lineTo(800, 300); - ctx.lineTo(10000, -8900); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.miter.rightangle - desc: Miter joins are not drawn when the miter limit is exceeded, on exact right - angles - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 400; - ctx.lineJoin = 'miter'; - ctx.strokeStyle = '#f00'; - ctx.miterLimit = 1.414; - ctx.beginPath(); - ctx.moveTo(200, 1000); - ctx.lineTo(200, 200); - ctx.lineTo(1000, 200); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.miter.lineedge - desc: Miter joins are not drawn when the miter limit is exceeded at the corners - of a zero-height rectangle - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 200; - ctx.lineJoin = 'miter'; - ctx.strokeStyle = '#f00'; - ctx.miterLimit = 1.414; - ctx.beginPath(); - ctx.strokeRect(100, 25, 200, 0); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.miter.within - desc: Miter joins are drawn when the miter limit is not quite exceeded - code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 400; - ctx.lineJoin = 'miter'; - ctx.strokeStyle = '#0f0'; - ctx.miterLimit = 1.416; - ctx.beginPath(); - ctx.moveTo(200, 1000); - ctx.lineTo(200, 200); - ctx.lineTo(1000, 201); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.miter.valid - desc: Setting miterLimit to valid values works - code: | - ctx.miterLimit = 1.5; - @assert ctx.miterLimit === 1.5; - ctx.miterLimit = "1e1"; - @assert ctx.miterLimit === 10; - ctx.miterLimit = 1/1024; - @assert ctx.miterLimit === 1/1024; - ctx.miterLimit = 1000; - @assert ctx.miterLimit === 1000; - t.done(); - -- name: 2d.line.miter.invalid - desc: Setting miterLimit to invalid values is ignored - code: | - ctx.miterLimit = 1.5; - @assert ctx.miterLimit === 1.5; - ctx.miterLimit = 1.5; - ctx.miterLimit = 0; - @assert ctx.miterLimit === 1.5; - ctx.miterLimit = 1.5; - ctx.miterLimit = -1; - @assert ctx.miterLimit === 1.5; - ctx.miterLimit = 1.5; - ctx.miterLimit = Infinity; - @assert ctx.miterLimit === 1.5; - ctx.miterLimit = 1.5; - ctx.miterLimit = -Infinity; - @assert ctx.miterLimit === 1.5; - ctx.miterLimit = 1.5; - ctx.miterLimit = NaN; - @assert ctx.miterLimit === 1.5; - t.done(); - -- name: 2d.line.cross - code: | - ctx.fillStyle = '#0f0'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 200; - ctx.lineJoin = 'bevel'; - ctx.strokeStyle = '#f00'; - ctx.beginPath(); - ctx.moveTo(110, 50); - ctx.lineTo(110, 60); - ctx.lineTo(100, 60); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - t.done(); - -- name: 2d.line.union - code: | - ctx.fillStyle = '#f00'; - ctx.fillRect(0, 0, 100, 50); - ctx.lineWidth = 100; - ctx.lineCap = 'round'; - ctx.strokeStyle = '#0f0'; - ctx.beginPath(); - ctx.moveTo(0, 24); - ctx.lineTo(100, 25); - ctx.lineTo(0, 26); - ctx.closePath(); - ctx.stroke(); - @assert pixel 1,1 == 0,255,0,255; - @assert pixel 25,1 == 0,255,0,255; - @assert pixel 48,1 == 0,255,0,255; - @assert pixel 1,48 == 0,255,0,255; - @assert pixel 25,1 == 0,255,0,255; - @assert pixel 48,48 == 0,255,0,255; - t.done(); - diff --git a/tests/wpt/web-platform-tests/html/infrastructure/urls/terminology-0/document-base-url-changes-after-nav-about-srcdoc.https.window.js b/tests/wpt/web-platform-tests/html/infrastructure/urls/terminology-0/document-base-url-changes-after-nav-about-srcdoc.https.window.js new file mode 100644 index 00000000000..897647a45e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/urls/terminology-0/document-base-url-changes-after-nav-about-srcdoc.https.window.js @@ -0,0 +1,83 @@ +// META: script=/common/get-host-info.sub.js +// +// A test to verify that, when a srcdoc frame is created when it's parent +// has a non-default base URI, and is later restored from history, it has +// the same baseURI it started with, even if the parent has changed its own +// baseURI in the meantime. +// The parent always communicates with the child via postMessage since some +// of the test cases include the child being sandboxed. + +async function sendMessage(frame, msg) { + const result = new Promise(r => onmessage = e => r(e.data)); + frame.postMessage(msg, "*"); + return await result; +} + +const runTest = (description, sandbox_flags) => { + promise_test(async test => { + const original_parent_baseURI = document.baseURI; + // Create a URL for the child frame to navigate to. + const nav_target = + (new URL('./resources/send-back-base-url.html', location.href)).href; + + // Change parent to a non-default baseURI. + const base_element = document.createElement("base"); + base_element.href = get_host_info().REMOTE_ORIGIN; + document.head.appendChild(base_element); + assert_not_equals(document.baseURI, original_parent_baseURI, + "parent baseURI failed to change."); + const non_default_parent_baseURI = document.baseURI; + + // Create child and load a srcdoc frame. + const iframe = document.createElement("iframe"); + if (sandbox_flags !== null) + iframe.sandbox = sandbox_flags; + iframe.srcdoc = ` + + diff --git a/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-meta-element/http-equiv-and-name.html b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-meta-element/http-equiv-and-name.html new file mode 100644 index 00000000000..144217df384 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/document-metadata/the-meta-element/http-equiv-and-name.html @@ -0,0 +1,18 @@ + +This test passes if you see a green rectangle and no red.
+This test passes if you see a green rectangle and no red.
+Switch the page to the background, then switch back to it.
diff --git a/tests/wpt/web-platform-tests/screen-wake-lock/wakelock-document-hidden.https.html b/tests/wpt/web-platform-tests/screen-wake-lock/wakelock-document-hidden.https.html new file mode 100644 index 00000000000..c8c9712bdd9 --- /dev/null +++ b/tests/wpt/web-platform-tests/screen-wake-lock/wakelock-document-hidden.https.html @@ -0,0 +1,49 @@ + + +