mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
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 -->
This commit is contained in:
commit
5defd51ba7
60 changed files with 924 additions and 268 deletions
|
@ -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"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[elementsFromPoint-iframes.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
[non-active-document.html]
|
||||
[DOMParser]
|
||||
expected: FAIL
|
||||
|
||||
[createHTMLDocument]
|
||||
expected: FAIL
|
||||
|
||||
[<template>]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[transition_calc_implicit.html]
|
||||
expected: TIMEOUT
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
|
@ -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) => {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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();
|
||||
|
@ -111,6 +136,16 @@ promise_test(t => {
|
|||
return promise_rejects(t, 'AbortError', writer.push(test_text_data, { signal: controller.signal }));
|
||||
}, "NFCWriter.push should fail if signal's aborted flag is set.");
|
||||
|
||||
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"}));
|
||||
|
@ -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>
|
||||
|
|
|
@ -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>
|
Loading…
Add table
Add a link
Reference in a new issue