diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2019-04-05 07:49:09 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-05 07:49:09 -0400 |
commit | 5defd51ba7ffa76dda9c6ab3bca7104eb968df07 (patch) | |
tree | 65da2b663f5005a2e2992ab9dc9d9fc89fa7f71b | |
parent | f142b1d1c75e36f83df0aad9cbdcec96a2c8c021 (diff) | |
parent | 2575230dce1d7868541323ed1e8411c80bd3e831 (diff) | |
download | servo-5defd51ba7ffa76dda9c6ab3bca7104eb968df07.tar.gz servo-5defd51ba7ffa76dda9c6ab3bca7104eb968df07.zip |
Auto merge of #23165 - servo-wpt-sync:wpt_update_05-04-2019, r=jdm
Sync WPT with upstream (05-04-2019)
Automated downstream sync of changes from upstream as of 05-04-2019.
[no-wpt-sync]
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23165)
<!-- Reviewable:end -->
60 files changed, 924 insertions, 268 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 3ba00c74978..df93c43600a 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -8617,6 +8617,162 @@ {} ] ], + "css/css-text-decor/text-decoration-001-manual.html": [ + [ + "css/css-text-decor/text-decoration-001-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-002-manual.html": [ + [ + "css/css-text-decor/text-decoration-002-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-003-manual.html": [ + [ + "css/css-text-decor/text-decoration-003-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-004-manual.html": [ + [ + "css/css-text-decor/text-decoration-004-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-040-manual.html": [ + [ + "css/css-text-decor/text-decoration-040-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-040a-manual.html": [ + [ + "css/css-text-decor/text-decoration-040a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-041-manual.html": [ + [ + "css/css-text-decor/text-decoration-041-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-044-manual.html": [ + [ + "css/css-text-decor/text-decoration-044-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-045-manual.html": [ + [ + "css/css-text-decor/text-decoration-045-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-046a-manual.html": [ + [ + "css/css-text-decor/text-decoration-046a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-048-manual.html": [ + [ + "css/css-text-decor/text-decoration-048-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-048a-manual.html": [ + [ + "css/css-text-decor/text-decoration-048a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-049-manual.html": [ + [ + "css/css-text-decor/text-decoration-049-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-082-manual.html": [ + [ + "css/css-text-decor/text-decoration-082-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-085-manual.html": [ + [ + "css/css-text-decor/text-decoration-085-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-090-manual.html": [ + [ + "css/css-text-decor/text-decoration-090-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-090a-manual.html": [ + [ + "css/css-text-decor/text-decoration-090a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-091-manual.html": [ + [ + "css/css-text-decor/text-decoration-091-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-091a-manual.html": [ + [ + "css/css-text-decor/text-decoration-091a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-092-manual.html": [ + [ + "css/css-text-decor/text-decoration-092-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-092a-manual.html": [ + [ + "css/css-text-decor/text-decoration-092a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-095a-manual.html": [ + [ + "css/css-text-decor/text-decoration-095a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-096-manual.html": [ + [ + "css/css-text-decor/text-decoration-096-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-096a-manual.html": [ + [ + "css/css-text-decor/text-decoration-096a-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-097-manual.html": [ + [ + "css/css-text-decor/text-decoration-097-manual.html", + {} + ] + ], + "css/css-text-decor/text-decoration-097a-manual.html": [ + [ + "css/css-text-decor/text-decoration-097a-manual.html", + {} + ] + ], "css/css-text-decor/text-decoration-line-014.xht": [ [ "css/css-text-decor/text-decoration-line-014.xht", @@ -13681,6 +13837,12 @@ {} ] ], + "payment-request/payment-response/payerdetailschange-updateWith-immediate-manual.https.html": [ + [ + "payment-request/payment-response/payerdetailschange-updateWith-immediate-manual.https.html", + {} + ] + ], "payment-request/payment-response/payerdetailschange-updateWith-manual.https.html": [ [ "payment-request/payment-response/payerdetailschange-updateWith-manual.https.html", @@ -19075,6 +19237,12 @@ {} ] ], + "web-nfc/NFCWriter_push_signal-manual.https.html": [ + [ + "web-nfc/NFCWriter_push_signal-manual.https.html", + {} + ] + ], "web-nfc/nfc_hw_disabled-manual.https.html": [ [ "web-nfc/nfc_hw_disabled-manual.https.html", @@ -197195,6 +197363,18 @@ {} ] ], + "svg/extensibility/foreignObject/compositing-backface-visibility.html": [ + [ + "svg/extensibility/foreignObject/compositing-backface-visibility.html", + [ + [ + "/svg/extensibility/foreignObject/compositing-backface-visibility-ref.html", + "==" + ] + ], + {} + ] + ], "svg/extensibility/foreignObject/foreign-object-margin-collapsing.html": [ [ "svg/extensibility/foreignObject/foreign-object-margin-collapsing.html", @@ -317462,6 +317642,11 @@ {} ] ], + "svg/extensibility/foreignObject/compositing-backface-visibility-ref.html": [ + [ + {} + ] + ], "svg/extensibility/foreignObject/foreign-object-paints-before-rect-ref.html": [ [ {} @@ -370137,6 +370322,18 @@ } ] ], + "element-timing/background-image-multiple-elements.html": [ + [ + "element-timing/background-image-multiple-elements.html", + {} + ] + ], + "element-timing/background-image-stretched.html": [ + [ + "element-timing/background-image-stretched.html", + {} + ] + ], "element-timing/buffer-before-onload.html": [ [ "element-timing/buffer-before-onload.html", @@ -370203,6 +370400,18 @@ {} ] ], + "element-timing/multiple-background-images.html": [ + [ + "element-timing/multiple-background-images.html", + {} + ] + ], + "element-timing/observe-background-image.html": [ + [ + "element-timing/observe-background-image.html", + {} + ] + ], "element-timing/observe-child-element.html": [ [ "element-timing/observe-child-element.html", @@ -415662,6 +415871,7 @@ [ "portals/portals-post-message.sub.html", { + "testdriver": true, "timeout": "long" } ] @@ -471125,162 +471335,6 @@ {} ] ], - "css/css-text-decor/text-decoration-001.html": [ - [ - "css/css-text-decor/text-decoration-001.html", - {} - ] - ], - "css/css-text-decor/text-decoration-002.html": [ - [ - "css/css-text-decor/text-decoration-002.html", - {} - ] - ], - "css/css-text-decor/text-decoration-003.html": [ - [ - "css/css-text-decor/text-decoration-003.html", - {} - ] - ], - "css/css-text-decor/text-decoration-004.html": [ - [ - "css/css-text-decor/text-decoration-004.html", - {} - ] - ], - "css/css-text-decor/text-decoration-040.html": [ - [ - "css/css-text-decor/text-decoration-040.html", - {} - ] - ], - "css/css-text-decor/text-decoration-040a.html": [ - [ - "css/css-text-decor/text-decoration-040a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-041.html": [ - [ - "css/css-text-decor/text-decoration-041.html", - {} - ] - ], - "css/css-text-decor/text-decoration-044.html": [ - [ - "css/css-text-decor/text-decoration-044.html", - {} - ] - ], - "css/css-text-decor/text-decoration-045.html": [ - [ - "css/css-text-decor/text-decoration-045.html", - {} - ] - ], - "css/css-text-decor/text-decoration-046a.html": [ - [ - "css/css-text-decor/text-decoration-046a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-048.html": [ - [ - "css/css-text-decor/text-decoration-048.html", - {} - ] - ], - "css/css-text-decor/text-decoration-048a.html": [ - [ - "css/css-text-decor/text-decoration-048a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-049.html": [ - [ - "css/css-text-decor/text-decoration-049.html", - {} - ] - ], - "css/css-text-decor/text-decoration-082.html": [ - [ - "css/css-text-decor/text-decoration-082.html", - {} - ] - ], - "css/css-text-decor/text-decoration-085.html": [ - [ - "css/css-text-decor/text-decoration-085.html", - {} - ] - ], - "css/css-text-decor/text-decoration-090.html": [ - [ - "css/css-text-decor/text-decoration-090.html", - {} - ] - ], - "css/css-text-decor/text-decoration-090a.html": [ - [ - "css/css-text-decor/text-decoration-090a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-091.html": [ - [ - "css/css-text-decor/text-decoration-091.html", - {} - ] - ], - "css/css-text-decor/text-decoration-091a.html": [ - [ - "css/css-text-decor/text-decoration-091a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-092.html": [ - [ - "css/css-text-decor/text-decoration-092.html", - {} - ] - ], - "css/css-text-decor/text-decoration-092a.html": [ - [ - "css/css-text-decor/text-decoration-092a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-095a.html": [ - [ - "css/css-text-decor/text-decoration-095a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-096.html": [ - [ - "css/css-text-decor/text-decoration-096.html", - {} - ] - ], - "css/css-text-decor/text-decoration-096a.html": [ - [ - "css/css-text-decor/text-decoration-096a.html", - {} - ] - ], - "css/css-text-decor/text-decoration-097.html": [ - [ - "css/css-text-decor/text-decoration-097.html", - {} - ] - ], - "css/css-text-decor/text-decoration-097a.html": [ - [ - "css/css-text-decor/text-decoration-097a.html", - {} - ] - ], "css/css-text-decor/text-decoration-visibility-001.xht": [ [ "css/css-text-decor/text-decoration-visibility-001.xht", @@ -602208,109 +602262,109 @@ "6bf79ba4527f99af740bdeca945449e8f9ed7a57", "support" ], - "css/css-text-decor/text-decoration-001.html": [ + "css/css-text-decor/text-decoration-001-manual.html": [ "9b620132697dfbf68f0d10575afaf7d902e649da", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-002.html": [ + "css/css-text-decor/text-decoration-002-manual.html": [ "71c815b34e0eb43d38456ac3ec67cf3a7f96308c", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-003.html": [ + "css/css-text-decor/text-decoration-003-manual.html": [ "ee987654bf1eab14c45393314adcc6425713c154", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-004.html": [ + "css/css-text-decor/text-decoration-004-manual.html": [ "0419d85f9625f07d439b57ebc72a422ced6a5099", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-040.html": [ + "css/css-text-decor/text-decoration-040-manual.html": [ "63b63759197870f9a0616b853a4dd58e282876b1", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-040a.html": [ + "css/css-text-decor/text-decoration-040a-manual.html": [ "90963c8db6ca41c9c962ee0f38d6153cc9e7fc2b", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-041.html": [ + "css/css-text-decor/text-decoration-041-manual.html": [ "32e0598ab4a9268fd4c2f4b48dec7bbc4632ab0b", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-044.html": [ + "css/css-text-decor/text-decoration-044-manual.html": [ "63732387f27a9bd32ee42fcf3400f4b8a22c642c", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-045.html": [ + "css/css-text-decor/text-decoration-045-manual.html": [ "e8a6904071419c0b049ed5b5aad83401e236957d", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-046a.html": [ + "css/css-text-decor/text-decoration-046a-manual.html": [ "a3d5e717e3f882ba2ce9a4bf148fd62856c73b76", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-048.html": [ + "css/css-text-decor/text-decoration-048-manual.html": [ "c9070bedb3b3450e7d2c0b2b0a76dfbdfdb8e4f2", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-048a.html": [ + "css/css-text-decor/text-decoration-048a-manual.html": [ "7d598af677e9f5be323886842560f9c04d79da8a", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-049.html": [ + "css/css-text-decor/text-decoration-049-manual.html": [ "b8fb70dcd79a50ae2a49bf705688695f66ee2a88", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-082.html": [ + "css/css-text-decor/text-decoration-082-manual.html": [ "a1d5497ad2ac01d8df295b8203a9769780317f27", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-085.html": [ + "css/css-text-decor/text-decoration-085-manual.html": [ "30522cf331fecc3eb17a43a53b1bc9aa5d63ae1d", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-090.html": [ + "css/css-text-decor/text-decoration-090-manual.html": [ "580fb98c87961670cd2c23f3d01be40477cd06db", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-090a.html": [ + "css/css-text-decor/text-decoration-090a-manual.html": [ "d9ac430079b621104da62a11fca6b0bd3d6cff57", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-091.html": [ + "css/css-text-decor/text-decoration-091-manual.html": [ "2097792f1c317daaad0f05281a3b547d3555cd3d", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-091a.html": [ + "css/css-text-decor/text-decoration-091a-manual.html": [ "ee2464c5263e1cd7eb1389d4b052bc08633a78e8", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-092.html": [ + "css/css-text-decor/text-decoration-092-manual.html": [ "5ba99f0de3b463eef56f477d5e2cfffd06f16786", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-092a.html": [ + "css/css-text-decor/text-decoration-092a-manual.html": [ "5f034b3e729955dbc4c0be3c1787745423f224ff", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-095a.html": [ + "css/css-text-decor/text-decoration-095a-manual.html": [ "dc4ae513d125b9cb065875ecd2b5155ff2169fe2", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-096.html": [ + "css/css-text-decor/text-decoration-096-manual.html": [ "b7c0dc4878b365e9009026c4f537a4312bab761c", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-096a.html": [ + "css/css-text-decor/text-decoration-096a-manual.html": [ "a1f13e57cafd437805633587bdcc1190c18fb26a", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-097.html": [ + "css/css-text-decor/text-decoration-097-manual.html": [ "4d352e4da17d515aa4426ac286ca663bd8a13834", - "visual" + "manual" ], - "css/css-text-decor/text-decoration-097a.html": [ + "css/css-text-decor/text-decoration-097a-manual.html": [ "64b3249dd6be2cf4364c3ebe62ff256a0373a29d", - "visual" + "manual" ], "css/css-text-decor/text-decoration-color-recalc.html": [ "b7cde934fcfd3c73ac351f7b9566adadad542294", @@ -612445,47 +612499,47 @@ "support" ], "css/css-transforms/transform3d-scale-001-notref.html": [ - "c2bde5a8e7124b782bee4f5b33c704222ae7e205", + "ab5ae4cb4028aa428a79fff89641537bf47b7309", "support" ], "css/css-transforms/transform3d-scale-001-ref.html": [ - "213d81bed75b68a36f7377404a4c681940036d76", + "05e7b31d27bd0569d75c832a707462ba1e024204", "support" ], "css/css-transforms/transform3d-scale-001.html": [ - "36fe800feeddf04525cad74d290fdb1d2b677ae9", + "d6287818bf7369a95e5858175e02218e22ac18d1", "reftest" ], "css/css-transforms/transform3d-scale-002.html": [ - "723dfc8a949108902db9d1b5eff57ef37a7516f9", + "a677aaedd226b06db1a378fe9ffa3b5d81acb114", "reftest" ], "css/css-transforms/transform3d-scale-003.html": [ - "0bb647b80564c35ee6c4e667c4b81282350405a7", + "e613ba520ea638ec880fffb73d4659fbafbcf636", "reftest" ], "css/css-transforms/transform3d-scale-004.html": [ - "f5a161c06f0337d325ec6e42665786c4fa33658c", + "ed8247cc5bdc8902509a6f8d415b5efc846384fb", "reftest" ], "css/css-transforms/transform3d-scale-005-ref.html": [ - "201300cfda0e69515300c220c4b427613d4cbd92", + "270e413ddb21c37ce11c1f7715b2120c2e78bfdc", "support" ], "css/css-transforms/transform3d-scale-005.html": [ - "fda6f7f5ca1335859ef080f14571768136e6ddba", + "524323c1c615ccf082ec82f5c4781c1ed3743aa1", "reftest" ], "css/css-transforms/transform3d-scale-006.html": [ - "b821776ee49b21b65cecb149f8d15247425941b0", + "b3dd5378f4bed2dcfe577ae489fdf689cf6dcfeb", "reftest" ], "css/css-transforms/transform3d-scale-007-ref.html": [ - "f476aa9c77b4e5b19cf29a35d5a9c916fb8ad32a", + "b719044a5695c1f500144a3423d10a9fa8ba2c3d", "support" ], "css/css-transforms/transform3d-scale-007.html": [ - "e9c199700a81d515739ff8bb4df03ffcc0e15c40", + "88261b7ad65dee6a2235c8df9bef43ad7c430dee", "reftest" ], "css/css-transforms/transform3d-sorting-001.html": [ @@ -642620,6 +642674,14 @@ "7cd0be939f16e8aea7b00ff2b13a06102e26cc4d", "testharness" ], + "element-timing/background-image-multiple-elements.html": [ + "669f94d6b0189ba387cf90c1b49c7d4120319673", + "testharness" + ], + "element-timing/background-image-stretched.html": [ + "8f93b43524f7b3d051af90d9807a3f30ad299ae7", + "testharness" + ], "element-timing/buffer-before-onload.html": [ "805777f29c297a22497d3e4f07b6ea462b0a0b7c", "testharness" @@ -642664,6 +642726,14 @@ "dbcad248e3aea0d148416275adeec93e20d8c267", "testharness" ], + "element-timing/multiple-background-images.html": [ + "ca349fec45f6ae4bde53dbe03de673d19d295794", + "testharness" + ], + "element-timing/observe-background-image.html": [ + "0669b4c4d83b6c2e81de94beb7db15c6ca775d1b", + "testharness" + ], "element-timing/observe-child-element.html": [ "9166a4b0e6d129c356d74da2b81a6e02c08105b6", "testharness" @@ -659109,7 +659179,7 @@ "testharness" ], "html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html": [ - "03a9b5d454473872f0d321b74524518438372fac", + "d099a8a0f8d3f41f08dd825fd42b1b1947e15956", "testharness" ], "html/semantics/embedded-content/media-elements/playing-the-media-resource/pause-move-to-other-document.html": [ @@ -669333,7 +669403,7 @@ "support" ], "interfaces/webrtc-stats.idl": [ - "b6b30e88268d27dd6e9a902768521fcf74c3a514", + "0992b341e1fe3cede699c09eeb5838bd1e7a3999", "support" ], "interfaces/webrtc.idl": [ @@ -681864,6 +681934,10 @@ "85a44a819cd8555e032520f887cf89508bdb98b6", "manual" ], + "payment-request/payment-response/payerdetailschange-updateWith-immediate-manual.https.html": [ + "912ceaa6086fd616908115d4f17117e76867d830", + "manual" + ], "payment-request/payment-response/payerdetailschange-updateWith-manual.https.html": [ "30e27088e7de1384489fcf9aa72391d353e34b36", "manual" @@ -682641,7 +682715,7 @@ "testharness" ], "portals/portals-post-message.sub.html": [ - "9fc6f6192cfa114053ae3ae6976e1c4491f299ad", + "fe58e25180ecec148e8f5bee4d79eaa366268476", "testharness" ], "portals/portals-rendering.html": [ @@ -682717,7 +682791,7 @@ "support" ], "portals/resources/portal-post-message-cross-origin-portal.sub.html": [ - "4aca1bde6983027fc363f318f22cfaaa156dee59", + "577c10ac666536eed4ed4a62fdc4924f06a47b6f", "support" ], "portals/resources/portal-post-message-during-activate-window.html": [ @@ -682725,7 +682799,7 @@ "support" ], "portals/resources/portal-post-message-portal.html": [ - "c657894f8ac4ec83e6a3ed3fd66dbc3be3b0c985", + "539048c13f5e8c21f7bda5e7d7e1b4772efb5ded", "support" ], "portals/resources/portals-adopt-predecessor-portal.html": [ @@ -699708,6 +699782,14 @@ "120941444a4898197d6b6001f9908a6cd48b62ba", "support" ], + "svg/extensibility/foreignObject/compositing-backface-visibility-ref.html": [ + "b0f504974a552545053a1a5d7c1e55eefa527fdb", + "support" + ], + "svg/extensibility/foreignObject/compositing-backface-visibility.html": [ + "1551e25f8f9675dd5cde0dc656635656f5d33023", + "reftest" + ], "svg/extensibility/foreignObject/containing-block.html": [ "da0728c96b5d0eb81435efad329bdcc3ee4dfb26", "testharness" @@ -712697,9 +712779,13 @@ "testharness" ], "web-nfc/NFCWriter_push.https.html": [ - "f5a0a84273681f7c2af402061fd3e6fb456cac76", + "d53e5023a1b6aa6133a6f878888d5450c252678d", "testharness" ], + "web-nfc/NFCWriter_push_signal-manual.https.html": [ + "f45d0bbbd49821d0de8953884f5dbb908e904f83", + "manual" + ], "web-nfc/idlharness.https.window.js": [ "ab0d6cd191a5b576674c0c038087ef17ece4cdfd", "testharness" diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini index ff5b07adb77..e89282b04a1 100644 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -1,5 +1,5 @@ [elementsFromPoint-iframes.html] - expected: TIMEOUT + expected: CRASH [elementsFromPoint on the root document for points in iframe elements] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index e1632fe21a0..b9facf16b81 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -22,7 +22,7 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/plain */*;charset=gbk] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/html;x=" text/plain] expected: NOTRUN @@ -163,7 +163,7 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/html;" " text/plain] - expected: FAIL + expected: TIMEOUT [Request: combined response Content-Type: text/plain;charset=gbk;x=foo text/plain] expected: NOTRUN @@ -172,7 +172,7 @@ expected: NOTRUN [<iframe>: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] - expected: FAIL + expected: TIMEOUT [Response: combined response Content-Type: text/html;x=" text/plain] expected: NOTRUN @@ -202,7 +202,7 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/html;" " text/plain] - expected: FAIL + expected: TIMEOUT [fetch(): separate response Content-Type: text/plain */*;charset=gbk] expected: NOTRUN @@ -286,7 +286,7 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/html;" \\" text/plain ";charset=GBK] - expected: FAIL + expected: TIMEOUT [fetch(): combined response Content-Type: text/html;" " text/plain] expected: NOTRUN @@ -310,11 +310,32 @@ expected: NOTRUN [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] - expected: FAIL - - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] - expected: FAIL + expected: TIMEOUT [<iframe>: combined response Content-Type: text/html;" \\" text/plain] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html;" text/plain] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html */*] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html;" text/plain] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html */*;charset=gbk] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: */* text/html] expected: FAIL + [<iframe>: separate response Content-Type: text/html;x=" text/plain] + expected: TIMEOUT + + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] + expected: TIMEOUT + + [<iframe>: combined response Content-Type: text/html;x=" text/plain] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini deleted file mode 100644 index 87b07c3e670..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_1.html] - [Multiple history traversals from the same task] - expected: FAIL - diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini index 2e0a6add6fc..6d9188c1e52 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html.ini @@ -2,3 +2,6 @@ [Test looping edge case to verify http://crbug.com/364442.] expected: FAIL + [play() with loop set to true after playback ended] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini new file mode 100644 index 00000000000..8cc42056d34 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini @@ -0,0 +1,10 @@ +[non-active-document.html] + [DOMParser] + expected: FAIL + + [createHTMLDocument] + expected: FAIL + + [<template>] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini deleted file mode 100644 index 9e522297c94..00000000000 --- a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[toggleEvent.html] - [Calling open twice on 'details' fires only one toggle event] - expected: FAIL - - [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] - expected: FAIL - diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index 66bd350083b..a56bad443a2 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,4 +1,5 @@ [realtimeanalyser-fft-scaling.html] + expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini deleted file mode 100644 index dbea4f293ad..00000000000 --- a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[transition_calc_implicit.html] - expected: TIMEOUT diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001-manual.html index 9b620132697..9b620132697 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-001-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002-manual.html index 71c815b34e0..71c815b34e0 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-002-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003-manual.html index ee987654bf1..ee987654bf1 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-003-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004-manual.html index 0419d85f962..0419d85f962 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-004-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040-manual.html index 63b63759197..63b63759197 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a-manual.html index 90963c8db6c..90963c8db6c 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-040a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041-manual.html index 32e0598ab4a..32e0598ab4a 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-041-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044-manual.html index 63732387f27..63732387f27 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-044-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045-manual.html index e8a69040714..e8a69040714 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-045-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a-manual.html index a3d5e717e3f..a3d5e717e3f 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-046a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048-manual.html index c9070bedb3b..c9070bedb3b 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a-manual.html index 7d598af677e..7d598af677e 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-048a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049-manual.html index b8fb70dcd79..b8fb70dcd79 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-049-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082-manual.html index a1d5497ad2a..a1d5497ad2a 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-082-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085-manual.html index 30522cf331f..30522cf331f 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-085-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090-manual.html index 580fb98c879..580fb98c879 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a-manual.html index d9ac430079b..d9ac430079b 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-090a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091-manual.html index 2097792f1c3..2097792f1c3 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a-manual.html index ee2464c5263..ee2464c5263 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-091a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092-manual.html index 5ba99f0de3b..5ba99f0de3b 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a-manual.html index 5f034b3e729..5f034b3e729 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-092a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a-manual.html index dc4ae513d12..dc4ae513d12 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-095a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096-manual.html index b7c0dc4878b..b7c0dc4878b 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a-manual.html index a1f13e57caf..a1f13e57caf 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-096a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097-manual.html index 4d352e4da17..4d352e4da17 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a-manual.html index 64b3249dd6b..64b3249dd6b 100644 --- a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a.html +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-097a-manual.html diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-notref.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-notref.html index c2bde5a8e71..ab5ae4cb402 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-notref.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-notref.html @@ -6,7 +6,8 @@ </head> <body> <div style="width: 100px; height: 100px"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-ref.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-ref.html index 213d81bed75..05e7b31d27b 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-ref.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001-ref.html @@ -7,7 +7,8 @@ </head> <body> <div style="transform: scaleX(2) scaleY(2); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001.html index 36fe800feed..d6287818bf7 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-001.html @@ -14,7 +14,8 @@ </head> <body> <div style="transform: scale3D(2,2,2); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-002.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-002.html index 723dfc8a949..a677aaedd22 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-002.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-002.html @@ -15,7 +15,8 @@ </head> <body> <div style="transform: rotatex(90deg) scale3D(2,1,2) rotatex(-90deg); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-003.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-003.html index 0bb647b8056..e613ba520ea 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-003.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-003.html @@ -14,7 +14,8 @@ </head> <body> <div style="transform: scaleX(2) scaleY(2) scaleZ(2); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-004.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-004.html index f5a161c06f0..ed8247cc5bd 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-004.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-004.html @@ -13,7 +13,8 @@ <body> <p>Nothing should appear except this sentence.</p> <div style="transform: scale3d(2, 2, 0); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005-ref.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005-ref.html index 201300cfda0..270e413ddb2 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005-ref.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005-ref.html @@ -7,7 +7,8 @@ </head> <body> <div style="transform: scaleY(2); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005.html index fda6f7f5ca1..524323c1c61 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-005.html @@ -14,7 +14,8 @@ </head> <body> <div style="transform: rotatex(90deg) scale3D(1,1,2) rotatex(-90deg); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-006.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-006.html index b821776ee49..b3dd5378f4b 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-006.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-006.html @@ -14,7 +14,8 @@ </head> <body> <div style="transform: rotatex(90deg) scaleZ(2) rotatex(-90deg); transform-origin: 0 0; width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007-ref.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007-ref.html index f476aa9c77b..b719044a569 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007-ref.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007-ref.html @@ -7,7 +7,8 @@ </head> <body> <div style="transform: scaleY(-1); width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007.html b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007.html index e9c199700a8..88261b7ad65 100644 --- a/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007.html +++ b/tests/wpt/web-platform-tests/css/css-transforms/transform3d-scale-007.html @@ -12,7 +12,8 @@ </head> <body> <div style="transform: rotatex(180deg) scaleZ(-1); width: 100px; height: 100px;"> - Test Text + <div style="background: blue; width: 50px; height: 50px;"></div> + <div style="background: lime; width: 50px; height: 50px; margin-left: 50px;"></div> </div> </body> </html> diff --git a/tests/wpt/web-platform-tests/element-timing/background-image-multiple-elements.html b/tests/wpt/web-platform-tests/element-timing/background-image-multiple-elements.html new file mode 100644 index 00000000000..669f94d6b01 --- /dev/null +++ b/tests/wpt/web-platform-tests/element-timing/background-image-multiple-elements.html @@ -0,0 +1,74 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Element Timing: background image affecting multiple elements</title> +<body> +<style> +body { + margin: 0; +} +.my_div { + background-image: url('resources/square100.png'); +} +#div1 { + width: 100px; + height: 100px; +} +#div2 { + width: 200px; + height: 100px; +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/element-timing-helpers.js"></script> +<script> + async_test(function (t) { + let beforeRender = performance.now(); + let numObservedElements = 0; + let observedDiv1 = false; + let observedDiv2 = false; + const index = window.location.href.lastIndexOf('/'); + const pathname = window.location.href.substring(0, index) + + '/resources/square100.png'; + const observer = new PerformanceObserver( + t.step_func(function(entryList) { + entryList.getEntries().forEach(entry => { + numObservedElements++; + if (entry.id == 'div1') { + observedDiv1 = true; + checkElement(entry, pathname, 'et1', 'div1', beforeRender); + // Div is in the top left corner. + checkRect(entry, [0, 100, 0, 100]); + checkNaturalSize(entry, 100, 100); + } + else if (entry.id == 'div2') { + observedDiv2 = true; + checkElement(entry, pathname, 'et2', 'div2', beforeRender); + // Div is below div1, on the left. + checkRect(entry, [0, 200, 100, 200]); + checkNaturalSize(entry, 100, 100); + } + else { + assert_unreached("Should not observe other elements!"); + } + if (numObservedElements === 2) { + assert_true(observedDiv1); + assert_true(observedDiv2); + t.done(); + } + }); + }) + ); + observer.observe({entryTypes: ['element']}); + }, 'Background image affecting various elements is observed.'); +</script> +<div id="div1" class="my_div" elementtiming="et1"> + <img width=50 height=50 src='resources/circle.svg'/> +</div> +<div width=200 height=100 id="div2" class="my_div" elementtiming="et2"> + Sample text inside div. +</div> +<div id="div3"/> + I am a div that should not be observed! +</div> +</body> diff --git a/tests/wpt/web-platform-tests/element-timing/background-image-stretched.html b/tests/wpt/web-platform-tests/element-timing/background-image-stretched.html new file mode 100644 index 00000000000..8f93b43524f --- /dev/null +++ b/tests/wpt/web-platform-tests/element-timing/background-image-stretched.html @@ -0,0 +1,39 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Element Timing: observe larger element with stretched background image</title> +<body> +<style> +body { + margin: 0; +} +#target { + width: 200px; + height: 150px; + background-image: url('resources/square100.png'); +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/element-timing-helpers.js"></script> +<script> + let beforeRender = performance.now(); + async_test(function (t) { + const observer = new PerformanceObserver( + t.step_func_done(function(entryList) { + assert_equals(entryList.getEntries().length, 1); + const entry = entryList.getEntries()[0]; + const index = window.location.href.lastIndexOf('/'); + const pathname = window.location.href.substring(0, index) + + '/resources/square100.png'; + checkElement(entry, pathname, 'my_div', 'target', beforeRender); + // The background image extends to occupy to full size of the div. + checkRect(entry, [0, 200, 0, 150]); + // The natural size of the square remains unchanged. + checkNaturalSize(entry, 100, 100); + }) + ); + observer.observe({entryTypes: ['element']}); + }, 'Element with background image shows correct image size.'); +</script> +<div id='target' elementtiming='my_div'></div> +</body> diff --git a/tests/wpt/web-platform-tests/element-timing/multiple-background-images.html b/tests/wpt/web-platform-tests/element-timing/multiple-background-images.html new file mode 100644 index 00000000000..ca349fec45f --- /dev/null +++ b/tests/wpt/web-platform-tests/element-timing/multiple-background-images.html @@ -0,0 +1,57 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Element Timing: observe element with multiple background images</title> +<body> +<style> +body { + margin: 0; +} +#target { + width: 200px; + height: 200px; + background-image: url('resources/circle.svg'), url('resources/square100.png'); +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/element-timing-helpers.js"></script> +<script> + let beforeRender = performance.now(); + async_test(function (t) { + let numObservedElements = 0; + let observedCircle = false; + let observedSquare = false; + const index = window.location.href.lastIndexOf('/'); + const pathname = window.location.href.substring(0, index) + '/resources/'; + const observer = new PerformanceObserver( + t.step_func(entryList => { + entryList.getEntries().forEach(entry => { + numObservedElements++; + if (entry.name.endsWith('square100.png')) { + observedSquare = true; + checkElement(entry, pathname + 'square100.png', 'multi', 'target', beforeRender); + checkRect(entry, [0, 200, 0, 200]); + checkNaturalSize(entry, 100, 100); + } + else if (entry.name.endsWith('circle.svg')) { + observedCircle = true; + checkElement(entry, pathname + 'circle.svg', 'multi', 'target', beforeRender); + checkRect(entry, [0, 200, 0, 200]); + checkNaturalSize(entry, 200, 200); + } + else { + assert_unreached("Should not have observed an entry with different name!"); + } + if (numObservedElements === 2) { + assert_true(observedCircle); + assert_true(observedSquare); + t.done(); + } + }); + }) + ); + observer.observe({entryTypes: ['element']}); + }, 'Element with two background images receives both.'); +</script> +<div id='target' elementtiming='multi'></div> +</body> diff --git a/tests/wpt/web-platform-tests/element-timing/observe-background-image.html b/tests/wpt/web-platform-tests/element-timing/observe-background-image.html new file mode 100644 index 00000000000..0669b4c4d83 --- /dev/null +++ b/tests/wpt/web-platform-tests/element-timing/observe-background-image.html @@ -0,0 +1,37 @@ +<!DOCTYPE HTML> +<meta charset=utf-8> +<title>Element Timing: observe element with background image</title> +<body> +<style> +body { + margin: 0; +} +#target { + width: 100px; + height: 50px; + background-image: url('/images/black-rectangle.png'); +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/element-timing-helpers.js"></script> +<script> + let beforeRender = performance.now(); + async_test(function (t) { + const observer = new PerformanceObserver( + t.step_func_done(function(entryList) { + assert_equals(entryList.getEntries().length, 1); + const entry = entryList.getEntries()[0]; + const index = window.location.href.lastIndexOf('/'); + const pathname = window.location.href.substring(0, index - 14) + + 'images/black-rectangle.png'; + checkElement(entry, pathname, 'my_div', 'target', beforeRender); + checkRect(entry, [0, 100, 0, 50]); + checkNaturalSize(entry, 100, 50); + }) + ); + observer.observe({entryTypes: ['element']}); + }, 'Element with elementtiming attribute and background image is observable.'); +</script> +<div id='target' elementtiming='my_div'></div> +</body> diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html index 03a9b5d4544..d099a8a0f8d 100644 --- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/playing-the-media-resource/loop-from-ended.tentative.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -<title>Test looping edge case to verify http://crbug.com/364442.</title> +<title>play() with loop set to true after playback ended</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/media.js"></script> @@ -10,6 +10,8 @@ // Once ended, set "loop" to true. Call play. // Verify that "seeked" event fires, seeking back to the beginning. // Pause video and end test. +// Chromium bug: https://crbug.com/364442 +// Spec issue: https://github.com/whatwg/html/issues/4487 async_test(function(t) { var video = document.querySelector("video"); diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl index b6b30e88268..0992b341e1f 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl @@ -207,6 +207,8 @@ dictionary RTCAudioReceiverStats : RTCAudioHandlerStats { unsigned long long concealedSamples; unsigned long long silentConcealedSamples; unsigned long long concealmentEvents; + unsigned long long insertedSamplesForDeceleration; + unsigned long long removedSamplesForAcceleration; }; dictionary RTCDataChannelStats : RTCStats { diff --git a/tests/wpt/web-platform-tests/payment-request/payment-response/payerdetailschange-updateWith-immediate-manual.https.html b/tests/wpt/web-platform-tests/payment-request/payment-response/payerdetailschange-updateWith-immediate-manual.https.html new file mode 100644 index 00000000000..912ceaa6086 --- /dev/null +++ b/tests/wpt/web-platform-tests/payment-request/payment-response/payerdetailschange-updateWith-immediate-manual.https.html @@ -0,0 +1,68 @@ +<!doctype html> +<meta charset=utf-8> +<title>Dispatching PaymentRequestUpdateEvent for "payerdetailschange"</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src="helpers.js"></script> +<script> +function testImmediateUpdate({ textContent: testName }) { + promise_test(async t => { + const response = await getPaymentResponse({ requestPayerName: true }); + const eventPromise = new Promise((resolve, reject) => { + response.addEventListener( + "payerdetailchange", + ev => { + // Forces updateWith() to be run in the next event loop tick so that + // [[waitForUpdate]] is already true when it runs. + t.step_timeout(() => { + try { + ev.updateWith({}); + resolve(); // This is bad. + } catch (err) { + reject(err); // this is good. + } + }); + }, + { once: true } + ); + }); + + const retryPromise = response.retry({ + payer: { name: "Change me!" }, + }); + await promise_rejects( + t, + "InvalidStateError", + eventPromise, + "The event loop already spun, so [[waitForUpdate]] is now true" + ); + await retryPromise; + await response.complete("success"); + }, testName.trim()); +} +</script> +<h2>Handling PaymentResponse.prototype.onpayerdetailchange events</h2> +<p> + The test brings up the Payment Request UI window. + When shown the payment sheet, use any details and hit pay. +</p> +<p> + When asked to retry the payment: +</p> +<ol> + <li> + <p> + Change payer's name to anything. + </p> + <button onclick="testImmediateUpdate(this);"> + updateWith() must be called immediately, otherwise must throw an InvalidStateError. + </button> + </li> + <li> + <button onclick="done();">DONE!</button> + </li> +</ol> +<small> + If you find a buggy test, please <a href="https://github.com/web-platform-tests/wpt/issues">file a bug</a> + and tag one of the <a href="https://github.com/web-platform-tests/wpt/blob/master/payment-request/OWNERS">owners</a>. +</small> diff --git a/tests/wpt/web-platform-tests/portals/portals-post-message.sub.html b/tests/wpt/web-platform-tests/portals/portals-post-message.sub.html index 9fc6f6192cf..fe58e25180e 100644 --- a/tests/wpt/web-platform-tests/portals/portals-post-message.sub.html +++ b/tests/wpt/web-platform-tests/portals/portals-post-message.sub.html @@ -3,7 +3,10 @@ <meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> <body> + <input id="input"/> <script> const sameOriginUrl = "resources/portal-post-message-portal.html" const crossOriginUrl = "http://{{hosts[alt][www]}}:{{ports[http][0]}}/portals/resources/portal-post-message-cross-origin-portal.sub.html" @@ -35,20 +38,33 @@ }); } + function postMessageWithMessagePorts(portal, message, targetOrigin) { + return new Promise((resolve, reject) => { + var channel = new MessageChannel(); + channel.port1.onmessage = e => { + channel.port1.close(); + resolve(e.data); + }; + portal.postMessage(message, targetOrigin, [channel.port2]); + }); + } + promise_test(async () => { var portal = await createAndInsertPortal(sameOriginUrl); var message = "test message"; - var {origin, data} = await postMessage(portal, message, "*"); + var {origin, data, sourceIsPortalHost} = await postMessage(portal, message, "*"); assert_equals(data, message); assert_equals(origin, window.location.origin); + assert_true(sourceIsPortalHost); }, "postMessage message received by portalHost"); promise_test(async () => { var portal = await createAndInsertPortal(crossOriginUrl); var message = "test message"; - var {origin, data} = await postMessage(portal, message, "*"); + var {origin, data, sourceIsPortalHost} = await postMessage(portal, message, "*"); assert_equals(data, message); assert_equals(origin, window.location.origin); + assert_true(sourceIsPortalHost); }, "postMessage message received by portalHost in cross-origin portal"); promise_test(async () => { @@ -71,12 +87,100 @@ assert_equals(data, message); }, "postMessage received by portal host in cross-origin portal when target origin is specified"); + promise_test(async () => { + var portal = await createAndInsertPortal(sameOriginUrl); + var message = { + prop1: "value1", + prop2: 2.5, + prop3: [1, 2, "3"], + prop4: { + prop4_1: "value4_1" + } + } + var {data} = await postMessage(portal, message); + assert_object_equals(data, message); + }, "postMessage with message object"); + + promise_test(async () => { + var portal = await createAndInsertPortal(sameOriginUrl); + var message = "test message"; + var {data} = await postMessageWithMessagePorts(portal, message, "*"); + assert_equals(data, message); + }, "postMessage with message ports and same-origin portal"); + + promise_test(async () => { + var portal = await createAndInsertPortal(crossOriginUrl); + var message = "test message"; + var {data} = await postMessageWithMessagePorts(portal, message, "*"); + assert_equals(data, message); + }, "postMessage with message ports and cross-origin portal"); + + promise_test(async () => { + var portal = await createAndInsertPortal(sameOriginUrl); + var arrayBuffer = new ArrayBuffer(5); + var int8View = new Int8Array(arrayBuffer); + for (var i = 0; i < int8View.length; i++) + int8View[i] = i; + var message = { + arrayBuffer: arrayBuffer + }; + var {data} = await postMessage(portal, message, "*"); + assert_array_equals([0, 1, 2, 3, 4], int8View); + assert_array_equals([0, 1, 2, 3, 4], data.array); + }, "postMessage with array buffer without transfer"); + + promise_test(async () => { + var portal = await createAndInsertPortal(sameOriginUrl); + var arrayBuffer = new ArrayBuffer(5); + var int8View = new Int8Array(arrayBuffer); + for (var i = 0; i < int8View.length; i++) + int8View[i] = i; + var message = { + arrayBuffer: arrayBuffer + }; + var {data} = await postMessage(portal, message, "*", [arrayBuffer]); + assert_equals(int8View.length, 0); + assert_array_equals(data.array, [0, 1, 2, 3, 4]); + }, "postMessage with transferred array buffer"); + + promise_test(async t => { + var portal = await createAndInsertPortal(sameOriginUrl); + + var {gotUserActivation} = await postMessage(portal, "test"); + assert_false(gotUserActivation); + + var {gotUserActivation, userActivation} = await postMessage(portal, "test", {includeUserActivation: true}); + assert_true(gotUserActivation); + assert_false(userActivation.isActive); + assert_false(userActivation.hasBeenActive); + + await test_driver.click(document.getElementById("input")); + assert_true(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + + var {userActivation} = await postMessage(portal, "test", {includeUserActivation: true}); + assert_true(userActivation.isActive, "should have sent gesture"); + assert_true(userActivation.hasBeenActive); + }, "postMessage with includeUserActivation"); + promise_test(async t => { var portal = document.createElement("portal"); return promise_rejects(t, "InvalidStateError", postMessage(portal, "test message")); }, "cannot call postMessage on portal without portal browsing context"); + promise_test(async t => { + var portal = await createAndInsertPortal(sameOriginUrl); + return promise_rejects(t, "DataCloneError", + postMessage(portal, document.body)); + }, "postMessage should fail if message serialization fails"); + + promise_test(async t => { + var portal = await createAndInsertPortal(sameOriginUrl); + return promise_rejects(t, new TypeError(), + postMessage(portal, "test", "*", [null])); + }, "postMessage should fail with invalid ports"); + async function waitForMessage(channelName) { var bc = new BroadcastChannel(channelName); return new Promise((resolve, reject) => { diff --git a/tests/wpt/web-platform-tests/portals/resources/portal-post-message-cross-origin-portal.sub.html b/tests/wpt/web-platform-tests/portals/resources/portal-post-message-cross-origin-portal.sub.html index 4aca1bde698..577c10ac666 100644 --- a/tests/wpt/web-platform-tests/portals/resources/portal-post-message-cross-origin-portal.sub.html +++ b/tests/wpt/web-platform-tests/portals/resources/portal-post-message-cross-origin-portal.sub.html @@ -13,8 +13,14 @@ window.portalHost.addEventListener("message", e => { var message = { origin: e.origin, - data: e.data + data: e.data, + sourceIsPortalHost: e.source === window.portalHost }; + if (e.ports.length > 0) { + e.ports[0].postMessage(message); + e.ports[0].close(); + return; + } forwardingIframe.contentWindow.postMessage(message, "*"); }); </script> diff --git a/tests/wpt/web-platform-tests/portals/resources/portal-post-message-portal.html b/tests/wpt/web-platform-tests/portals/resources/portal-post-message-portal.html index c657894f8ac..539048c13f5 100644 --- a/tests/wpt/web-platform-tests/portals/resources/portal-post-message-portal.html +++ b/tests/wpt/web-platform-tests/portals/resources/portal-post-message-portal.html @@ -6,8 +6,27 @@ window.portalHost.addEventListener("message", e => { var message = { origin: e.origin, - data: e.data + data: e.data, + sourceIsPortalHost: e.source === window.portalHost, + gotUserActivation: !!e.userActivation, + userActivation: { + isActive: e.userActivation && e.userActivation.isActive, + hasBeenActive: e.userActivation && e.userActivation.hasBeenActive + } }; + + if (e.data.arrayBuffer) { + message.data = { + array: Array.from(new Uint8Array(e.data.arrayBuffer)) + }; + } + + if (e.ports.length > 0) { + e.ports[0].postMessage(message); + e.ports[0].close(); + return; + } + bc = new BroadcastChannel("portals-post-message"); bc.postMessage(message); bc.close(); diff --git a/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/compositing-backface-visibility-ref.html b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/compositing-backface-visibility-ref.html new file mode 100644 index 00000000000..b0f504974a5 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/compositing-backface-visibility-ref.html @@ -0,0 +1,8 @@ +<!doctype HTML> +<title>Basic backface-visibility compositing works referece</title> +<link rel="author" title="Chris Harrelson" href="chrishtr@chromium.org"> +<svg> + <foreignObject> + <div>Test</div> + </foreignObject> +</svg> diff --git a/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/compositing-backface-visibility.html b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/compositing-backface-visibility.html new file mode 100644 index 00000000000..1551e25f8f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/extensibility/foreignObject/compositing-backface-visibility.html @@ -0,0 +1,13 @@ +<!doctype HTML> +<title>Basic backface-visibility compositing works.</title> +<link rel="author" title="Chris Harrelson" href="chrishtr@chromium.org"> +<link rel="match" href="compositing-backface-visibility-ref.html"> +<link rel="help" href="https://svgwg.org/svg2-draft/single-page.html#embedded-ForeignObjectElement"/> +<style> + * { backface-visibility: hidden } +</style> +<svg> + <foreignObject> + <div style="will-change: transform">Test</div> + </foreignObject> +</svg> diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html index f5a0a842736..d53e5023a1b 100644 --- a/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html +++ b/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push.https.html @@ -74,6 +74,25 @@ const invalid_syntax_messages = createMessage([createRecord('json', 'custom/app+json', test_json_data)]), ]; +const invalid_signals = [ + "string", + 123, + {}, + true, + Symbol(), + () => {}, + self +] + +const non_strings = [ + 123, + {}, + true, + Symbol(), + () => {}, + self +] + promise_test(t => { const writer = new NFCWriter(); const promises = []; @@ -94,13 +113,19 @@ promise_test(t => { return Promise.all(promises); }, "'Test that promise is rejected with SyntaxError if NDEFMessageSource contains invalid records."); -promise_test(t => { +promise_test(async t => { const writer = new NFCWriter(); const controller = new AbortController(); const p = writer.push(test_text_data, { signal: controller.signal }); - controller.abort(); - return promise_rejects(t, 'NoModificationAllowedError', p); -}, "NFCWriter.push should fail if the instance has already initiated NFC data transfer."); + const rejected = promise_rejects(t, 'AbortError', p); + let callback_called = false; + t.step_timeout(() => { + callback_called = true; + controller.abort(); + }, 10); + await rejected; + assert_true(callback_called, 'timeout should have caused the abort'); +}, "NFCWriter.push should fail if abort push request before push happends."); promise_test(t => { const writer = new NFCWriter(); @@ -113,6 +138,16 @@ promise_test(t => { promise_test(t => { const writer = new NFCWriter(); + const promises = []; + invalid_signals.forEach(invalid_signal => { + promises.push( + promise_rejects(t, 'TypeError', writer.push(test_text_data, { signal: invalid_signal }))); + }); + return Promise.all(promises); +}, "NFCWriter.push should fail if signal is not an AbortSignal."); + +promise_test(t => { + const writer = new NFCWriter(); return promise_rejects(t, new TypeError(), writer.push(test_text_data, { timeout: "invalid"})); }, "NFCWriter.push should fail with TypeError when invalid timeout is provided."); @@ -185,4 +220,32 @@ promise_test(() => { }); }, 'Test that WebNFC API is not accessible from iframe context.'); +promise_test(t => { + const writer = new NFCWriter(); + const promises = []; + non_strings.forEach(invalid_url => { + promises.push( + promise_rejects(t, new TypeError(), writer.push({ + url: invalid_url, + records: [{ recordType: "text", data: 'Hello World' }] + })); + ); + }); + return Promise.all(promises); +}, "Test that promise is rejected with TypeError if NDEFMessageSource contains non-string url."); + +promise_test(t => { + const writer = new NFCWriter(); + const promises = []; + non_strings.forEach(invalid_serialNumber => { + promises.push( + promise_rejects(t, new TypeError(), writer.push({ + serialNumber: invalid_serialNumber, + records: [{ recordType: "text", data: 'Hello World' }] + })); + ); + }); + return Promise.all(promises); +}, "Test that promise is rejected with TypeError if NDEFMessageSource contains non-string serialNumber."); + </script> diff --git a/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push_signal-manual.https.html b/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push_signal-manual.https.html new file mode 100644 index 00000000000..f45d0bbbd49 --- /dev/null +++ b/tests/wpt/web-platform-tests/web-nfc/NFCWriter_push_signal-manual.https.html @@ -0,0 +1,45 @@ +<!DOCTYPE html> +<meta charset=utf-8> +<title>Web NFC Test: NFCWriter signal test</title> +<link rel="author" title="Intel" href="http://www.intel.com"/> +<link rel="help" href="https://w3c.github.io/web-nfc/"/> +<meta name="timeout" content="long"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/nfc_help.js"></script> +<meta name="flags" content="interact"> + +<p>Tap an NFC tag to the test device with NFC support.</p> + +<p>Note: All the actions need to be done in 60 seconds, otherwise it will get TIMEOUT.</p> + +<div id="log"></div> + +<script> + +"use strict"; + +setup({ explicit_timeout: true }); + +promise_test(async t => { + const writer = new NFCWriter(); + const reader = new NFCReader(); + const controller = new AbortController(); + + const p1 = writer.push(test_text_data, { signal: controller.signal }); + const p2 = writer.push(test_text_data); + + // Even though push request is grantable, this abort should be processed synchronously. + controller.abort(); + await promise_rejects(t, 'AbortError', p1); + await p2; + + const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]); + reader.start(); + const event = await readerWatcher.wait_for("reading"); + for (let record of event.message.records) { + assert_equals(record.data, test_text_data); + } +}, "Synchronously signaled abort."); + +</script> |