aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2019-02-20 23:53:12 -0500
committerGitHub <noreply@github.com>2019-02-20 23:53:12 -0500
commit0dda1156094dae5ff47ab6fcf316cdc5547fff4c (patch)
tree91b60b184a9bec41767c53517ff80e777eb33f46
parent6bb98ad17a617ffda66ba063082d2e8ad5a5d12f (diff)
parent7680aab7252e55815b75685746c783744e0ac783 (diff)
downloadservo-0dda1156094dae5ff47ab6fcf316cdc5547fff4c.tar.gz
servo-0dda1156094dae5ff47ab6fcf316cdc5547fff4c.zip
Auto merge of #22919 - servo-wpt-sync:wpt_update_20-02-2019, r=jdm
Sync WPT with upstream (20-02-2019) Automated downstream sync of changes from upstream as of 20-02-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/22919) <!-- Reviewable:end -->
-rw-r--r--tests/wpt/metadata/MANIFEST.json456
-rw-r--r--tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini3
-rw-r--r--tests/wpt/metadata/encoding/single-byte-decoder.html.ini27
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini9
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini1
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini10
-rw-r--r--tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini3
-rw-r--r--tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini2
-rw-r--r--tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini4
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml13
-rw-r--r--tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py11
-rw-r--r--tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html16
-rw-r--r--tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html41
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html30
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html30
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html30
-rw-r--r--tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html22
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html23
-rw-r--r--tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html5
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html27
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html36
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html1
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html1
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webxr.idl2
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html21
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html55
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html16
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html19
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html14
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html31
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html39
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html42
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html40
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html43
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html16
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html19
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html16
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html25
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html73
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html56
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html12
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html21
-rw-r--r--tests/wpt/web-platform-tests/reporting/bufferSize.html29
-rw-r--r--tests/wpt/web-platform-tests/reporting/disconnect.html25
-rw-r--r--tests/wpt/web-platform-tests/reporting/generateTestReport.html27
-rw-r--r--tests/wpt/web-platform-tests/reporting/nestedReport.html30
-rw-r--r--tests/wpt/web-platform-tests/reporting/order.html32
-rw-r--r--tests/wpt/web-platform-tests/resources/testdriver.js25
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py13
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py18
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py15
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js9
-rw-r--r--tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py24
-rw-r--r--tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html55
60 files changed, 1584 insertions, 116 deletions
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index fffdafa6a89..ca67f6af07f 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -137677,6 +137677,42 @@
{}
]
],
+ "css/css-tables/subpixel-collapsed-borders-001.html": [
+ [
+ "/css/css-tables/subpixel-collapsed-borders-001.html",
+ [
+ [
+ "/css/css-tables/subpixel-collapsed-borders-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-tables/subpixel-collapsed-borders-002.html": [
+ [
+ "/css/css-tables/subpixel-collapsed-borders-002.html",
+ [
+ [
+ "/css/css-tables/subpixel-collapsed-borders-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-tables/subpixel-collapsed-borders-003.html": [
+ [
+ "/css/css-tables/subpixel-collapsed-borders-003.html",
+ [
+ [
+ "/css/css-tables/subpixel-collapsed-borders-003-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-tables/subpixel-table-cell-height-001.html": [
[
"/css/css-tables/subpixel-table-cell-height-001.html",
@@ -193089,6 +193125,18 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html": [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html",
+ [
+ [
+ "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [
[
"/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html",
@@ -194305,6 +194353,114 @@
{}
]
],
+ "mathml/presentation-markup/fractions/frac-bar-001.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-bar-001.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-bar-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-color-001.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-color-001.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-color-001-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-color-002.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-color-002.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-color-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-001.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-linethickness-001.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-002.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-linethickness-002.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-003.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-linethickness-003.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html",
+ "!="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-mrow-001.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-mrow-001.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-mrow-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-visibility-001.html": [
+ [
+ "/mathml/presentation-markup/fractions/frac-visibility-001.html",
+ [
+ [
+ "/mathml/presentation-markup/fractions/frac-visibility-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"mathml/presentation-markup/spaces/space-2.html": [
[
"/mathml/presentation-markup/spaces/space-2.html",
@@ -205742,6 +205898,11 @@
{}
]
],
+ "client-hints/resources/sec-ch-ua.py": [
+ [
+ {}
+ ]
+ ],
"client-hints/resources/square.png": [
[
{}
@@ -271047,6 +271208,16 @@
{}
]
],
+ "css/css-tables/subpixel-collapsed-borders-003-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "css/css-tables/subpixel-collapsed-borders-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-tables/subpixel-table-cell-height-001-ref.html": [
[
{}
@@ -298787,6 +298958,11 @@
{}
]
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html": [
+ [
+ {}
+ ]
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [
[
{}
@@ -303112,6 +303288,51 @@
{}
]
],
+ "mathml/presentation-markup/fractions/frac-bar-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-color-001-notref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-color-002-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-002-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-003-notref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-mrow-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html": [
+ [
+ {}
+ ]
+ ],
+ "mathml/presentation-markup/fractions/frac-visibility-001-ref.html": [
+ [
+ {}
+ ]
+ ],
"mathml/presentation-markup/spaces/space-2-ref.html": [
[
{}
@@ -323982,6 +324203,11 @@
{}
]
],
+ "webdriver/tests/send_alert_text/conftest.py": [
+ [
+ {}
+ ]
+ ],
"webdriver/tests/set_timeouts/__init__.py": [
[
{}
@@ -338580,6 +338806,18 @@
{}
]
],
+ "client-hints/sec-ch-ua.http.html": [
+ [
+ "/client-hints/sec-ch-ua.http.html",
+ {}
+ ]
+ ],
+ "client-hints/sec-ch-ua.https.html": [
+ [
+ "/client-hints/sec-ch-ua.https.html",
+ {}
+ ]
+ ],
"clipboard-apis/async-interfaces.https.html": [
[
"/clipboard-apis/async-interfaces.https.html",
@@ -376652,12 +376890,6 @@
{}
]
],
- "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html": [
- [
- "/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html",
- {}
- ]
- ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html": [
[
"/html/semantics/embedded-content/media-elements/track/track-element/track-cues-cuechange.html",
@@ -411214,12 +411446,52 @@
{}
]
],
+ "reporting/bufferSize.html": [
+ [
+ "/reporting/bufferSize.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "reporting/disconnect.html": [
+ [
+ "/reporting/disconnect.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "reporting/generateTestReport.html": [
+ [
+ "/reporting/generateTestReport.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"reporting/idlharness.window.js": [
[
"/reporting/idlharness.window.html",
{}
]
],
+ "reporting/nestedReport.html": [
+ [
+ "/reporting/nestedReport.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "reporting/order.html": [
+ [
+ "/reporting/order.html",
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"requestidlecallback/basic.html": [
[
"/requestidlecallback/basic.html",
@@ -425626,6 +425898,12 @@
{}
]
],
+ "webxr/xrFrame_lifetime.https.html": [
+ [
+ "/webxr/xrFrame_lifetime.https.html",
+ {}
+ ]
+ ],
"webxr/xrSession_cancelAnimationFrame.https.html": [
[
"/webxr/xrSession_cancelAnimationFrame.https.html",
@@ -449828,7 +450106,7 @@
},
"paths": {
".azure-pipelines.yml": [
- "5bd9fd67a1d5cdf1f929f1dd38e606d3e4f9fb99",
+ "cb204cabe288508280622c59b1d30bf18b74c1a1",
"support"
],
".codecov.yml": [
@@ -461083,10 +461361,22 @@
"2dd18068427ccec7f75ecbdc7fa4e19c339f53a7",
"support"
],
+ "client-hints/resources/sec-ch-ua.py": [
+ "a14a27dadf9e333784a5c636c821634b387e475f",
+ "support"
+ ],
"client-hints/resources/square.png": [
"01c9666a8de9d5535615aff830810e5df4b2156f",
"support"
],
+ "client-hints/sec-ch-ua.http.html": [
+ "e333c605301e621133ee5e6f3d01e2525d5c058a",
+ "testharness"
+ ],
+ "client-hints/sec-ch-ua.https.html": [
+ "b293745365a611475697aaa7b66a8a809cad7b3c",
+ "testharness"
+ ],
"clipboard-apis/META.yml": [
"ecbac54806cb0d3a915c551f0a684fdc84acdd5e",
"support"
@@ -577063,6 +577353,26 @@
"a24556aa0dedfab35ff7792f03b804f44c0f4160",
"reftest"
],
+ "css/css-tables/subpixel-collapsed-borders-001.html": [
+ "a71f5cc698b74a518411e57974577b4f4c4dccda",
+ "reftest"
+ ],
+ "css/css-tables/subpixel-collapsed-borders-002.html": [
+ "8f8292cd22becd3ddba61f5205828596a8995e44",
+ "reftest"
+ ],
+ "css/css-tables/subpixel-collapsed-borders-003-ref.html": [
+ "78e0be389393e235781549cd90ea961385ec5c68",
+ "support"
+ ],
+ "css/css-tables/subpixel-collapsed-borders-003.html": [
+ "358562cbd7ff49f43c234db502513faabc8390d1",
+ "reftest"
+ ],
+ "css/css-tables/subpixel-collapsed-borders-ref.html": [
+ "0a2e7a8d95b95dc21ad1c103fdfba65b8f5b1b86",
+ "support"
+ ],
"css/css-tables/subpixel-table-cell-height-001-ref.html": [
"3b6297fc4ab06643b2910194479b571ca3a462f2",
"support"
@@ -601084,7 +601394,7 @@
"testharness"
],
"css/cssom/CSSStyleSheet-constructable.html": [
- "e3083d283f35145ae7f2be1941ff930ae864b088",
+ "80189fe2f36e7c89f0445511460732fa77169108",
"testharness"
],
"css/cssom/CSSStyleSheet.html": [
@@ -616472,7 +616782,7 @@
"support"
],
"domparsing/DOMParser-parseFromString-html.html": [
- "ec424423a1d28988d2b949b51e9467f0cf702290",
+ "ad65cc58618462591568dda622f35b68a64c1d63",
"testharness"
],
"domparsing/DOMParser-parseFromString-xml-doctype.html": [
@@ -634167,12 +634477,16 @@
"76019c9b41e4fd4c56f4252d399f088b7b3e4470",
"reftest"
],
+ "html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html": [
+ "837c4fd7833d569f2949bf1c2a677836ac851597",
+ "support"
+ ],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html": [
- "427189f6fc78074ae13c58e94ae3d02bc0e513b2",
- "testharness"
+ "c2d300999eeaa207365b5c0b42f9b033e6b96446",
+ "reftest"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html": [
- "8354041eb2a0aa57b283e12d9c0390f16327ac80",
+ "c4c14bc2a394ff19c14bfa76c4b59ad5d6ddb618",
"support"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit.html": [
@@ -634180,7 +634494,7 @@
"reftest"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html": [
- "39461350b089b9041a71a6ca9aad7f1cfc078d68",
+ "c3ee804c485b762d8b69614136558bbf2ed833a8",
"support"
],
"html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video.html": [
@@ -643460,7 +643774,7 @@
"support"
],
"interfaces/webxr.idl": [
- "74466f856be208f091372c778c0c70ca8fa0e9a2",
+ "899bb0daa008ccb547d47b0a96c383c40e7e776e",
"support"
],
"interfaces/worklets.idl": [
@@ -644087,6 +644401,70 @@
"848eb5b144cef3740b794475f699229243c1287e",
"testharness"
],
+ "mathml/presentation-markup/fractions/frac-bar-001-ref.html": [
+ "5b7a8dff47e90cf2b0dc02688dd478deaf0a13fc",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-bar-001.html": [
+ "6688a587b1f25e2523ef5fd2535227381a1c263d",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-color-001-notref.html": [
+ "498d6277a3258c70882e7b2ec92e82e974bf9ab0",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-color-001.html": [
+ "bc61dbf51ffe487122859f189223b2ef43f88bb1",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-color-002-ref.html": [
+ "fe2f4fa7b1899e5d1114e3a89b14dc96843ef070",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-color-002.html": [
+ "d7cc88cb21bd9ed62d9a269e1029f113f9a27d13",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-001-ref.html": [
+ "c703edb764fe883e05e47e26464149aa64af1070",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-001.html": [
+ "94111174c6aa3ecf1fff4982bfc9ecbf4a10c2ee",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-002-ref.html": [
+ "69663938c1951a34a1e1134d549b610ea00c15e8",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-002.html": [
+ "5bb0d6bfb9d6113a04b9d3160ccc9db80aceaaa6",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-003-notref.html": [
+ "934d66633397313175e98c4bda871bb0a95e5db0",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-linethickness-003.html": [
+ "e535e703b52c75800155b5b25995730b2a236287",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-mrow-001-ref.html": [
+ "e42cb96fe8383959bef2d778cfb29d0638f1de03",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-mrow-001.html": [
+ "e5c6f52529443e881b8235a67f3e8cc7aa10fb51",
+ "reftest"
+ ],
+ "mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html": [
+ "2fa978624dc206c834f70d4cf620b565f8f3ac12",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html": [
+ "61f49e2ff5381c9684e5b36d03a51daf7f8f3e74",
+ "reftest"
+ ],
"mathml/presentation-markup/fractions/frac-parameters-1.html": [
"543017e19006377cac0c1a434bd43400467fac3b",
"testharness"
@@ -644095,6 +644473,14 @@
"75074875c9e6b1fa205fe76b85c4a0b36fadf274",
"testharness"
],
+ "mathml/presentation-markup/fractions/frac-visibility-001-ref.html": [
+ "41a262d511197edebb913cb68eb688eddf763ff2",
+ "support"
+ ],
+ "mathml/presentation-markup/fractions/frac-visibility-001.html": [
+ "b98f68d2a585d340804b27120a89d8e71e4c9e51",
+ "reftest"
+ ],
"mathml/presentation-markup/operators/mo-axis-height-1.html": [
"7b0031ac1ed63219130b69113ebbfdc28eec10d6",
"testharness"
@@ -666123,10 +666509,30 @@
"980823f59f7e3ac4f35a31ab6df37ce16e538f54",
"support"
],
+ "reporting/bufferSize.html": [
+ "b3512b3bc93b322e2015e71d70f01bc5986bc24d",
+ "testharness"
+ ],
+ "reporting/disconnect.html": [
+ "2dc5e8fd2de724e41bc0c003b4e7036d1d954371",
+ "testharness"
+ ],
+ "reporting/generateTestReport.html": [
+ "e3c2735686a05eefc9bbcfb107f76ec7275b8948",
+ "testharness"
+ ],
"reporting/idlharness.window.js": [
"17cef8183596ae1d0b307fb8ddccc7455b955966",
"testharness"
],
+ "reporting/nestedReport.html": [
+ "156338ee74653bfdc843e6acceda073c02ca635b",
+ "testharness"
+ ],
+ "reporting/order.html": [
+ "c43964220c981f4b91c7c5e7eac7fc67377b367b",
+ "testharness"
+ ],
"requestidlecallback/META.yml": [
"9c829d3c8885bb9b594e7096a878166e07f3e278",
"support"
@@ -667140,7 +667546,7 @@
"support"
],
"resources/testdriver.js": [
- "e328302e4f345114654eda323dbd09a5f650d419",
+ "031be1b7e5501658d412aecc6f0cba56b3444601",
"support"
],
"resources/testdriver.js.headers": [
@@ -682188,7 +682594,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/base.py": [
- "0e54eca778b3d6df8ae41da00f6acce129be82c1",
+ "41cf2c641d291b9fa573c3421e6fb61622a502fd",
"support"
],
"tools/wptrunner/wptrunner/executors/executorchrome.py": [
@@ -682216,7 +682622,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/executorselenium.py": [
- "21868421712994e83eb317f281c6cf0ff69f5229",
+ "fa257e1296e9046425d88b99ce440b9e658edd2a",
"support"
],
"tools/wptrunner/wptrunner/executors/executorservo.py": [
@@ -682228,7 +682634,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/executorwebdriver.py": [
- "3f8c2bb5a3f94a5230bf93e7e4192692df8f0ab3",
+ "817b2717cb71352955315497956065c72561050f",
"support"
],
"tools/wptrunner/wptrunner/executors/executorwebkit.py": [
@@ -682240,7 +682646,7 @@
"support"
],
"tools/wptrunner/wptrunner/executors/protocol.py": [
- "aa3565e5726a0662d10ed49cee85f153691c441f",
+ "d08b74bfc36ae97cebaa148741701dcc2a767399",
"support"
],
"tools/wptrunner/wptrunner/executors/pytestrunner/__init__.py": [
@@ -682300,7 +682706,7 @@
"support"
],
"tools/wptrunner/wptrunner/metadata.py": [
- "3a92491aa22202e21041a258220afae6bda13a92",
+ "8699ac4fc734c1a45a4b7723b3dceea27590f8fa",
"support"
],
"tools/wptrunner/wptrunner/products.py": [
@@ -682312,7 +682718,7 @@
"support"
],
"tools/wptrunner/wptrunner/testdriver-extra.js": [
- "6336d227db8d7d9f3e6c4276ad2f5c609e9f27e9",
+ "09d7c2908671228e625d0717e567d751470fe6cd",
"support"
],
"tools/wptrunner/wptrunner/testdriver-vendor.js": [
@@ -687959,6 +688365,10 @@
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
"support"
],
+ "webdriver/tests/send_alert_text/conftest.py": [
+ "f34630c3cbc5de2700552e576bc7c797d2bd724f",
+ "support"
+ ],
"webdriver/tests/send_alert_text/send.py": [
"6dbc03f94019abf6fc467ae2baf8fb9d21823e64",
"wdspec"
@@ -693559,6 +693969,10 @@
"69a35c2510983550993f630ea6f0a165c2e89369",
"testharness"
],
+ "webxr/xrFrame_lifetime.https.html": [
+ "971a6d78a1e1ee1c51141a475868185318680495",
+ "testharness"
+ ],
"webxr/xrSession_cancelAnimationFrame.https.html": [
"9b08f93eead693c1c9aa6d7e2458988aa7dae442",
"testharness"
diff --git a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini
index 8850ec200da..a100b281453 100644
--- a/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/transitions-animatable-properties-01.html.ini
@@ -74,3 +74,6 @@
[opacity end]
expected: FAIL
+ [border-bottom-width end]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini
index 8e2ceeddfbe..bcd187f508c 100644
--- a/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/scroll-behavior-smooth.html.ini
@@ -6,6 +6,3 @@
[Instant scrolling while doing history navigation.]
expected: FAIL
- [Smooth scrolling while doing history navigation.]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
index 2a5ec608a33..4acc2e997de 100644
--- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
+++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
@@ -32,7 +32,7 @@
[single-byte-decoder.html?XMLHttpRequest]
- expected: CRASH
+ expected: TIMEOUT
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
@@ -60,12 +60,6 @@
[windows-1254: iso_8859-9:1989 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1258: cp1258 (XMLHttpRequest)]
- expected: TIMEOUT
-
- [windows-1256: cp1256 (XMLHttpRequest)]
- expected: TIMEOUT
-
[windows-1254: iso_8859-9 (XMLHttpRequest)]
expected: TIMEOUT
@@ -90,34 +84,31 @@
[windows-1256: x-cp1256 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1257: x-cp1257 (XMLHttpRequest)]
- expected: TIMEOUT
-
[windows-1255: cp1255 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1256: windows-1256 (XMLHttpRequest)]
- expected: TIMEOUT
-
[windows-1257: windows-1257 (XMLHttpRequest)]
expected: TIMEOUT
[windows-1254: iso88599 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1254: iso-8859-9 (XMLHttpRequest)]
+ [windows-1254: iso8859-9 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1254: iso8859-9 (XMLHttpRequest)]
+ [windows-1255: windows-1255 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1254: iso-ir-148 (XMLHttpRequest)]
+ [windows-1258: x-cp1258 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1254: csisolatin5 (XMLHttpRequest)]
+ [windows-1255: x-cp1255 (XMLHttpRequest)]
expected: TIMEOUT
- [windows-1255: windows-1255 (XMLHttpRequest)]
+ [windows-1258: windows-1258 (XMLHttpRequest)]
+ expected: TIMEOUT
+
+ [x-mac-cyrillic: x-mac-cyrillic (XMLHttpRequest)]
expected: TIMEOUT
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 ff6b5fb487c..8a008d8b2b8 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,18 +312,9 @@
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
- expected: FAIL
-
- [<iframe>: combined response Content-Type: text/html */*]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index d4ba399b762..87c807a49ff 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,6 +11,3 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%20'NosniFF']
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
deleted file mode 100644
index dc2e45516de..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_5.html]
- [Multiple history traversals, last would be aborted]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini
index e8fe94b8878..cc781d0a782 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html.ini
@@ -1,4 +1,5 @@
[track-cue-rendering-empty-cue.html]
+ expected: TIMEOUT
[Empty cues]
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
deleted file mode 100644
index 8cc42056d34..00000000000
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[non-active-document.html]
- [DOMParser]
- expected: FAIL
-
- [createHTMLDocument]
- expected: FAIL
-
- [<template>]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini
index 7725b118e9d..99a24216c88 100644
--- a/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini
+++ b/tests/wpt/metadata/performance-timeline/webtiming-resolution.any.js.ini
@@ -12,6 +12,3 @@
[Verifies the resolution of entry.startTime is at least 5 microseconds.]
expected: TIMEOUT
- [Verifies the resolution of performance.now() is at least 5 microseconds.]
- 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
new file mode 100644
index 00000000000..dbea4f293ad
--- /dev/null
+++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini
@@ -0,0 +1,2 @@
+[transition_calc_implicit.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini b/tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini
deleted file mode 100644
index 14a9e778f39..00000000000
--- a/tests/wpt/mozilla/meta/mozilla/paint_timing.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[paint_timing.html]
- [Performance entries observer]
- expected: FAIL
-
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 5bd9fd67a1d..cb204cabe28 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -211,16 +211,3 @@ jobs:
displayName: 'Publish results'
inputs:
artifactName: 'safari-preview-results'
-
-# The InvokeRESTAPI task can only run in a server job.
-- job: results_post
- displayName: 'all tests (wpt.fyi hook)'
- dependsOn: results_safari_preview
- pool:
- vmImage: 'ubuntu-16.04'
- steps:
- - script: curl -s -S https://wpt.fyi/api/checks/azure/$(Build.BuildId)
- displayName: 'Invoke wpt.fyi hook'
- - script: curl -s -S https://staging.wpt.fyi/api/checks/azure/$(Build.BuildId)
- displayName: 'Invoke staging.wpt.fyi hook'
- condition: succeededOrFailed()
diff --git a/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py b/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py
new file mode 100644
index 00000000000..a14a27dadf9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py
@@ -0,0 +1,11 @@
+def main(request, response):
+ ua = request.headers.get('sec-ch-ua', '')
+ response.headers.set("Content-Type", "text/html")
+ response.headers.set("Accept-CH", "UA")
+ response.headers.set("Accept-CH-Lifetime", "10")
+ response.content = '''
+<script>
+ window.opener.postMessage({ header: "%s" }, "*");
+</script>
+Sec-CH-UA: %s
+''' % (ua, ua)
diff --git a/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html
new file mode 100644
index 00000000000..e333c605301
--- /dev/null
+++ b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.http.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+ promise_test(t => {
+ return new Promise((resolve, reject) => {
+ var w;
+ window.onmessage = e => {
+ assert_equals(e.data.header, "", "The `Sec-CH-UA` header is not delivered.");
+ w.close();
+ resolve();
+ };
+ w = window.open("./resources/sec-ch-ua.py");
+ });
+ }, "Open HTTP window: no `Sec-CH-UA` header.")
+</script>
diff --git a/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html
new file mode 100644
index 00000000000..b293745365a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/client-hints/sec-ch-ua.https.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<head>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+ var minor = "";
+ promise_test(t => {
+ return new Promise((resolve, reject) => {
+ var w;
+ window.onmessage = e => {
+ try {
+ assert_not_equals(e.data.header, "", "The `Sec-CH-UA` header is delivered.");
+ minor = e.data.header;
+ } catch (ex) {
+ reject(ex);
+ }
+ w.close();
+ resolve();
+ };
+ w = window.open("./resources/sec-ch-ua.py");
+ });
+ }, "Open HTTPS window prior to opt-in: `Sec-CH-UA` header with minor version.")
+
+ promise_test(t => {
+ return new Promise((resolve, reject) => {
+ var w;
+ window.onmessage = e => {
+ try {
+ assert_not_equals(e.data.header, "", "The `Sec-CH-UA` header is delivered.");
+ assert_not_equals(e.data.header, minor, "The `Sec-CH-UA` header is different after the opt-in than before.");
+ } catch (ex) {
+ reject(ex);
+ }
+ w.close();
+ resolve();
+ };
+ w = window.open("./resources/sec-ch-ua.py");
+ });
+ }, "Open HTTPS window post-opt-in: `Sec-CH-UA` header with minor version.")
+</script>
+</head>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html
new file mode 100644
index 00000000000..a71f5cc698b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-001.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders">
+<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606">
+<link rel="match" href="subpixel-collapsed-borders-ref.html">
+<meta name="flags" content="" />
+<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins." />
+
+<style>
+table {
+ border: 5px solid green;
+ border-collapse: collapse;
+}
+
+td {
+ width: 50px;
+ height: 50px;
+ border: 4.95px solid red;
+}
+</style>
+
+<p>There should be a square with a green border, not a red border.
+</p>
+
+<table>
+ <tr>
+ <td></td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html
new file mode 100644
index 00000000000..8f8292cd22b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-002.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders">
+<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606">
+<link rel="match" href="subpixel-collapsed-borders-ref.html">
+<meta name="flags" content="" />
+<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins even when the cell border is merely 0.01 pixels narrower" />
+
+<style>
+table {
+ border: 5px solid green;
+ border-collapse: collapse;
+}
+
+td {
+ width: 50px;
+ height: 50px;
+ border: 4.99px solid red;
+}
+</style>
+
+<p>There should be a square with a green border, not a red border.
+</p>
+
+<table>
+ <tr>
+ <td></td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html
new file mode 100644
index 00000000000..78e0be38939
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<style>
+table {
+ border: 5.95px solid green;
+ border-collapse: collapse;
+}
+
+td {
+ width: 50px;
+ height: 50px;
+ border: 1px solid red;
+}
+</style>
+
+<p>There should be a square with a green border, not a red border.
+</p>
+
+<table>
+ <tr>
+ <td></td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html
new file mode 100644
index 00000000000..358562cbd7f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-003.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
+<link rel="help" href="https://www.w3.org/TR/CSS22/tables.html#collapsing-borders">
+<link rel="help" href="https://drafts.csswg.org/css-tables-3/#border-conflict-resolution-algorithm">
+<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/606">
+<link rel="match" href="subpixel-collapsed-borders-003-ref.html">
+<meta name="flags" content="" />
+<meta name="assert" content="When collapsed border tables have border widths larger than cells', the table border wins even when the floored table border is the same size as the cell's." />
+
+<style>
+table {
+ border: 5.95px solid green;
+ border-collapse: collapse;
+}
+
+td {
+ width: 50px;
+ height: 50px;
+ border: 5px solid red;
+}
+</style>
+
+<p>There should be a square with a green border, not a red border.
+</p>
+
+<table>
+ <tr>
+ <td></td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html
new file mode 100644
index 00000000000..0a2e7a8d95b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-tables/subpixel-collapsed-borders-ref.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<style>
+table {
+ border: 5px solid green;
+ border-collapse: collapse;
+}
+
+td {
+ width: 50px;
+ height: 50px;
+ border: 1px solid red;
+}
+</style>
+
+<p>There should be a square with a green border, not a red border.
+</p>
+
+<table>
+ <tr>
+ <td></td>
+ </tr>
+</table>
diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
index e3083d283f3..80189fe2f36 100644
--- a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
+++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
@@ -14,7 +14,7 @@
<span class="yellow"></span>
</div>
</section>
-<section id="secondSection"></section>
+<section id="shadowHost"></section>
<section id="thirdSection"></section>
<script>
@@ -27,7 +27,8 @@ const yellowStyleText = ".yellow { color: yellow; }";
const firstDiv = document.querySelector('#firstSection > div');
const secondDiv = firstDiv.cloneNode(true);
-const shadowRoot = document.querySelector('#secondSection').attachShadow({mode: 'open'});
+const shadowHost = document.querySelector('#shadowHost');
+const shadowRoot = shadowHost.attachShadow({mode: 'open'});
shadowRoot.appendChild(secondDiv);
const greenSpan = firstDiv.children[0];
@@ -210,6 +211,24 @@ promise_test(() => {
}, 'Constructed style sheets can be applied on shadow root');
promise_test(() => {
+ return Promise.all(createAllSheetsPromise()).then(values => {
+ const greenStyleSheet = values[0];
+ const redStyleSheet = values[1];
+ shadowRoot.adoptedStyleSheets = [greenStyleSheet];
+ assert_equals(getComputedStyle(greenShadowSpan).color, "rgb(0, 128, 0)", "Style applies connected");
+ assert_equals(getComputedStyle(redShadowSpan).color, "rgb(0, 0, 0)", "Style applies when connected");
+ let hostParent = shadowHost.parentNode;
+ hostParent.removeChild(shadowHost);
+ assert_equals(getComputedStyle(greenShadowSpan).color, "", "Style doesn't apply when detached");
+ assert_equals(getComputedStyle(redShadowSpan).color, "", "Style doesn't apply when detached");
+ shadowRoot.adoptedStyleSheets = [redStyleSheet, greenStyleSheet];
+ hostParent.appendChild(shadowHost);
+ assert_equals(getComputedStyle(greenShadowSpan).color, "rgb(0, 128, 0)", "Style applies after reattach");
+ assert_equals(getComputedStyle(redShadowSpan).color, "rgb(255, 0, 0)", "Style applies after reattach");
+ });
+}, 'Re-attaching shadow host with adopted stylesheets work');
+
+promise_test(() => {
const plainSheet = new CSSStyleSheet();
const redStyleSheetPromise = plainSheet.replace(redStyleTexts[0]);
return redStyleSheetPromise.then(function(redStyleSheet) {
diff --git a/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html b/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html
index ec424423a1d..ad65cc58618 100644
--- a/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html
+++ b/tests/wpt/web-platform-tests/domparsing/DOMParser-parseFromString-html.html
@@ -67,6 +67,11 @@ test(function() {
}, "DOMParser parses HTML tag soup with no problems");
test(function() {
+ const doc = new DOMParser().parseFromString('<noembed>&lt;a&gt;</noembed>', 'text/html');
+ assert_equals(doc.querySelector('noembed').textContent, '&lt;a&gt;');
+}, 'DOMParser should handle the content of <noembed> as raw text');
+
+test(function() {
assert_throws(new TypeError(), function() {
new DOMParser().parseFromString("", "text/foo-this-is-invalid");
})
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html
new file mode 100644
index 00000000000..837c4fd7833
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue-ref.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title>Reference for track rendering with empty cue</title>
+<script src="/common/reftest-wait.js"></script>
+<style>
+html { overflow:hidden }
+body { margin:0 }
+.container {
+ display: inline-block;
+ position: relative;
+}
+</style>
+<div class="container">
+ <video width="320" height="180">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ <script>
+ var video = document.querySelector("video");
+ video.addEventListener('playing', () => {
+ video.pause();
+ takeScreenshot();
+ }, { once: true});
+ video.play();
+ </script>
+ </video>
+</div>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html
index 427189f6fc7..c2d300999ee 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-empty-cue.html
@@ -1,16 +1,26 @@
<!DOCTYPE html>
-<title>Empty cues</title>
-<script src="/common/media.js"></script>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script>
-async_test(function(t) {
- var video = document.createElement("video");
- video.src = getVideoURI("/media/test");
- video.addTextTrack("captions", "regular captions track", "en");
- video.textTracks[0].addCue(new VTTCue(0, 4, ""));
+<html class="reftest-wait">
+<title>Track rendering with empty cue</title>
+<link rel="match" href="track-cue-rendering-empty-cue-ref.html">
+<style>
+html { overflow:hidden }
+body { margin:0 }
+</style>
+<script src="/common/reftest-wait.js"></script>
+<video width="320" height="180">
+ <source src="/media/white.webm" type="video/webm">
+ <source src="/media/white.mp4" type="video/mp4">
+ <script>
+ var video = document.querySelector("video");
+ var track = video.addTextTrack("captions", "regular captions track", "en");
+ track.addCue(new VTTCue(0, 4, ""));
+ track.mode = "showing";
- video.onplaying = t.step_func_done();
+ video.addEventListener('playing', () => {
+ video.pause();
+ takeScreenshot();
+ }, { once: true});
video.play();
-});
-</script> \ No newline at end of file
+ </script>
+</video>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html
index 8354041eb2a..c4c14bc2a39 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-line-doesnt-fit-ref.html
@@ -20,7 +20,6 @@
background: green;
color: green;
font-size: 120px;
- padding: 2px;
}
</style>
<div class="container">
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html
index 39461350b08..c3ee804c485 100644
--- a/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/media-elements/track/track-element/track-cue-rendering-transformed-video-ref.html
@@ -22,7 +22,6 @@
background: green;
color: green;
font-size: 50px;
- padding: 2px;
}
</style>
<div class="container">
diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl
index 74466f856be..899bb0daa00 100644
--- a/tests/wpt/web-platform-tests/interfaces/webxr.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl
@@ -170,7 +170,7 @@ interface XRRay {
};
enum XRHandedness {
- "",
+ "none",
"left",
"right"
};
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html
new file mode 100644
index 00000000000..5b7a8dff47e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001-ref.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions bar</title>
+ <style type="text/css">
+ #container {
+ position: absolute;
+ left: 10px;
+ top: 50px;
+ width: 150px;
+ height: 150px;
+ background: green;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if you see a green square.</p>
+ <div id="container"></div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html
new file mode 100644
index 00000000000..6688a587b1f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-bar-001.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+ <head>
+ <meta charset="utf-8">
+ <title>fractions bar</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="Verifies painting of the fraction bar">
+ <link rel="match" href="frac-bar-001-ref.html">
+ <style type="text/css">
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/fraction-rulethickness10000.woff");
+ }
+ math {
+ /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+ /* The gap / shift / axisheight parameters are set to 0. */
+ font-family: "TestFont";
+ font-size: 1px;
+ }
+ #container {
+ position: absolute;
+ left: 0;
+ top: 0;
+ }
+ </style>
+ <script src="/common/reftest-wait.js"></script>
+ <script>
+ window.addEventListener("load", () => {
+ // Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
+ requestAnimationFrame(() => { document.fonts.ready.then(adjustPositionOfFraction); });
+ });
+ function adjustPositionOfFraction()
+ {
+ requestAnimationFrame(() => {
+ var container = document.getElementById("container");
+ var numeratorBox = document.getElementById("numerator").getBoundingClientRect();
+ container.style.left = (10 - numeratorBox.left) + "px";
+ container.style.top = (50 - numeratorBox.top) + "px";
+ requestAnimationFrame(takeScreenshot);
+ });
+ }
+ </script>
+ </head>
+ <body>
+ <p>This test passes if you see a green square.</p>
+ <div id="container">
+ <math>
+ <mfrac style="color: green; font-size: 15em">
+ <mspace id="numerator" width="150px"></mspace>
+ <mspace></mspace>
+ </mfrac>
+ </math>
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html
new file mode 100644
index 00000000000..498d6277a32
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001-notref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction bar color</title>
+ </head>
+ <body style="font-size: 20pt;">
+ <p>This test passes if you see a fraction with a blue fraction bar.</p>
+ <math>
+ <mfrac>
+ <mspace width="200px" height="20px" style="background: black"></mspace>
+ <mspace width="200px" height="20px" style="background: black"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html
new file mode 100644
index 00000000000..bc61dbf51ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-001.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction bar color</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="The CSS color property has an effect on the fraction bar.">
+ <link rel="mismatch" href="frac-color-001-notref.html">
+ </head>
+ <body style="font-size: 20pt;">
+ <p>This test passes if you see a fraction with a blue fraction bar.</p>
+ <math>
+ <mfrac style="color: blue;">
+ <mspace width="200px" height="20px" style="background: black"></mspace>
+ <mspace width="200px" height="20px" style="background: black"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html
new file mode 100644
index 00000000000..fe2f4fa7b18
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002-ref.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions color</title>
+ </head>
+ <body>
+ <p>This test passes if you see a green square and a blue square.</p>
+ <div style="background: green; width: 200px; height: 200px;">
+ </div>
+ <div style="background: blue; width: 200px; height: 200px;">
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html
new file mode 100644
index 00000000000..d7cc88cb21b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-color-002.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions color</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="Verifies the color attribute affects the fraction bar">
+ <link rel="match" href="frac-color-002-ref.html">
+ </head>
+ <body>
+ <p>This test passes if you see a green square and a blue square.</p>
+ <div style="background: green; width: 200px; height: 200px;">
+ <math>
+ <mspace width="10px"></mspace>
+ <mfrac style="color: green">
+ <mspace width="150px" height="20px"></mspace>
+ <mspace width="150px" height="20px"></mspace>
+ </mfrac>
+ </math>
+ </div>
+ <div style="background: blue; width: 200px; height: 200px;">
+ <math>
+ <mspace width="10px"></mspace>
+ <mfrac style="color: blue">
+ <mspace width="150px" height="20px"></mspace>
+ <mspace width="150px" height="20px"></mspace>
+ </mfrac>
+ </math>
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html
new file mode 100644
index 00000000000..c703edb764f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001-ref.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions linethickness</title>
+ <style type="text/css">
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/fraction-rulethickness10000.woff");
+ }
+ math {
+ /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+ font-family: "TestFont";
+ font-size: 1px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p>
+ <math>
+ <mfrac linethickness="5px">
+ <mspace width="20px" height="5px" style="background: blue"></mspace>
+ <mspace width="20px" height="5px" style="background: cyan"></mspace>
+ </mfrac>
+ <mfrac linethickness="10px">
+ <mspace width="20px" height="10px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ <mfrac linethickness="20px">
+ <mspace width="20px" height="20px" style="background: blue"></mspace>
+ <mspace width="20px" height="20px" style="background: cyan"></mspace>
+ </mfrac>
+ <mfrac linethickness="50px">
+ <mspace width="20px" height="50px" style="background: blue"></mspace>
+ <mspace width="20px" height="50px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html
new file mode 100644
index 00000000000..94111174c6a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-001.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions linethickness</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="Verifies 'thin', 'medium', 'thick' and unitless values for the linethickness attribute of the mfrac element">
+ <link rel="match" href="frac-linethickness-001-ref.html">
+ <style type="text/css">
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/fraction-rulethickness10000.woff");
+ }
+ math {
+ /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+ font-family: "TestFont";
+ font-size: 1px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if you see fractions with line thickness equal to the height of their blue numerator and cyan denominator.</p>
+ <math>
+ <mfrac linethickness="thin">
+ <mspace width="20px" height="5px" style="background: blue"></mspace>
+ <mspace width="20px" height="5px" style="background: cyan"></mspace>
+ </mfrac>
+ <mfrac linethickness="medium">
+ <mspace width="20px" height="10px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ <mfrac linethickness="thick">
+ <mspace width="20px" height="20px" style="background: blue"></mspace>
+ <mspace width="20px" height="20px" style="background: cyan"></mspace>
+ </mfrac>
+ <mfrac linethickness="5">
+ <mspace width="20px" height="50px" style="background: blue"></mspace>
+ <mspace width="20px" height="50px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html
new file mode 100644
index 00000000000..69663938c19
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002-ref.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions linethickness</title>
+ <style type="text/css">
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/fraction-rulethickness10000.woff");
+ }
+ math {
+ /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+ font-family: "TestFont";
+ font-size: 1px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if you see fraction with a cyan denominator and
+ a blue numerator as tall as its black bar.</p>
+ <math>
+ <mfrac linethickness="0px">
+ <mspace width="20px" height="0px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac linethickness="50px">
+ <mspace width="20px" height="50px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ <math style="font-size: 180px">
+ <mfrac linethickness="0.3888888888888889em">
+ <mspace width="20px" height="70px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html
new file mode 100644
index 00000000000..5bb0d6bfb9d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-002.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions linethickness</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="Verifies fraction with negative, percent and named space linethickness values.">
+ <link rel="match" href="frac-linethickness-002-ref.html">
+ <style type="text/css">
+ @font-face {
+ font-family: TestFont;
+ src: url("/fonts/math/fraction-rulethickness10000.woff");
+ }
+ math {
+ /* FractionRuleThickness = 10000 * 1 / 1000 = 10px; */
+ font-family: "TestFont";
+ font-size: 1px;
+ }
+ </style>
+ </head>
+ <body>
+ <p>This test passes if you see fraction with a cyan denominator and
+ a blue numerator as tall as its black bar.</p>
+ <math>
+ <mfrac linethickness="-1.23em">
+ <mspace width="20px" height="0px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac linethickness="500%">
+ <mspace width="20px" height="50px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ <math style="font-size: 180px">
+ <mfrac linethickness="veryverythickmathspace">
+ <mspace width="20px" height="70px" style="background: blue"></mspace>
+ <mspace width="20px" height="10px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html
new file mode 100644
index 00000000000..934d6663339
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003-notref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions linethickness</title>
+ </head>
+ <body>
+ <p>This test passes if you see a fraction without fraction bar.</p>
+ <math>
+ <mfrac>
+ <mspace width="20px" height="5px" style="background: blue"></mspace>
+ <mspace width="20px" height="5px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html
new file mode 100644
index 00000000000..e535e703b52
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-linethickness-003.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>fractions linethickness</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="Verifies fraction with 0px bar.">
+ <link rel="mismatch" href="frac-linethickness-003-notref.html">
+ </head>
+ <body>
+ <p>This test passes if you see a fraction without fraction bar.</p>
+ <math>
+ <mfrac linethickness="0px">
+ <mspace width="20px" height="5px" style="background: blue"></mspace>
+ <mspace width="20px" height="5px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html
new file mode 100644
index 00000000000..e42cb96fe83
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001-ref.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction mrow</title>
+ </head>
+ <body style="font-size: 20pt;">
+ <p>This test passes if you see a fraction with a blue square as numerator and a cyan square as denominator.</p>
+ <math>
+ <mfrac>
+ <mspace width="60px" height="60px" style="background: blue"></mspace>
+ <mspace width="60px" height="60px" style="background: cyan"></mspace>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html
new file mode 100644
index 00000000000..e5c6f525294
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-mrow-001.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction mrow</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="This test that <mrow> elements can be used as numerator and denominator of fractions.">
+ <link rel="match" href="frac-mrow-001-ref.html">
+ </head>
+ <body style="font-size: 20pt;">
+ <p>This test passes if you see a fraction with a blue square as numerator and a cyan square as denominator.</p>
+ <math>
+ <mfrac>
+ <mrow>
+ <mspace width="30px" height="60px" style="background: blue"></mspace>
+ <mspace width="30px" height="60px" style="background: blue "></mspace>
+ </mrow>
+ <mrow>
+ <mspace width="30px" height="60px" style="background: cyan"></mspace>
+ <mspace width="30px" height="60px" style="background: cyan "></mspace>
+ </mrow>
+ </mfrac>
+ </math>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html
new file mode 100644
index 00000000000..2fa978624dc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001-ref.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction numalign denomalign</title>
+ </head>
+ <body>
+ <p>This test passes if you see 3 fractions with a numerator respectively
+ aligned left/center/right with respect to the denominator ;
+ followed by 3 fractions with a denominator respectively aligned
+ left/center/right with respect to the numerator.</p>
+ <p>
+ <math>
+ <mfrac>
+ <mrow>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="20px" height="20px"></mspace>
+ </mrow>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac>
+ <mrow>
+ <mspace width="10px" height="20px"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="10px" height="20px"></mspace>
+ </mrow>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac>
+ <mrow>
+ <mspace width="20px" height="20px"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ </mrow>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ </mfrac>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mfrac>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ <mrow>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="20px" height="20px"></mspace>
+ </mrow>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ <mrow>
+ <mspace width="10px" height="20px"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="10px" height="20px"></mspace>
+ </mrow>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ <mrow>
+ <mspace width="20px" height="20px"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ </mrow>
+ </mfrac>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html
new file mode 100644
index 00000000000..61f49e2ff53
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-numalign-denomalign-001.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction numalign denomalign</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="This fraction alignment with the numalign/denomalign attributes.">
+ <link rel="match" href="frac-numalign-denomalign-001-ref.html">
+ </head>
+ <body>
+ <p>This test passes if you see 3 fractions with a numerator respectively
+ aligned left/center/right with respect to the denominator ;
+ followed by 3 fractions with a denominator respectively aligned
+ left/center/right with respect to the numerator.</p>
+ <p>
+ <math>
+ <mfrac numalign="left">
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac numalign="center">
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac numalign="right">
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ </mfrac>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mfrac denomalign="left">
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac denomalign="center">
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ </mfrac>
+ </math>
+ <math>
+ <mfrac denomalign="right">
+ <mspace width="30px" height="20px" style="background: cyan;"></mspace>
+ <mspace width="10px" height="20px" style="background: blue;"></mspace>
+ </mfrac>
+ </math>
+ </p>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html
new file mode 100644
index 00000000000..41a262d5111
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001-ref.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction bar visibility</title>
+ </head>
+ <body>
+ <p>This test passes if you see a green square and no red.</p>
+ <div style="background: green; width: 200px; height: 200px;">
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html
new file mode 100644
index 00000000000..b98f68d2a58
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-visibility-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Fraction bar visibility</title>
+ <link rel="help" href="http://www.mathml-association.org/MathMLinHTML5/S3.html#SS3.SSS2">
+ <meta name="assert" content="The CSS visible property affects the rendering of the fraction bar.">
+ <link rel="match" href="frac-visibility-001-ref.html">
+ </head>
+ <body>
+ <p>This test passes if you see a green square and no red.</p>
+ <div style="background: green; width: 200px; height: 200px;">
+ <math>
+ <mfrac style="visibility: hidden; color: red">
+ <mspace width="200px" height="20px"></mspace>
+ <mspace width="200px" height="20px"></mspace>
+ </mfrac>
+ </math>
+ </div>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/reporting/bufferSize.html b/tests/wpt/web-platform-tests/reporting/bufferSize.html
new file mode 100644
index 00000000000..b3512b3bc93
--- /dev/null
+++ b/tests/wpt/web-platform-tests/reporting/bufferSize.html
@@ -0,0 +1,29 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Reporting: Buffer size</title>
+<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org">
+<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>
+<script>
+ // Test the buffer size (100) of ReportingObserver.
+ async_test(async function(test) {
+ for (i = 0; i != 110; ++i)
+ await test_driver.generate_test_report("" + i);
+
+ var observer = new ReportingObserver(function(reports) {
+ test.step(function() {
+ // Only (the most recent) 100 reports should be observed, even though
+ // 110 were buffered.
+ assert_equals(reports.length, 100);
+ for(i = 0; i != 100; ++i) {
+ assert_equals(reports[i].body.message, "" + (i + 10));
+ }
+ });
+
+ test.done();
+ }, {buffered: true});
+ observer.observe();
+ }, "Buffer size");
+</script>
diff --git a/tests/wpt/web-platform-tests/reporting/disconnect.html b/tests/wpt/web-platform-tests/reporting/disconnect.html
new file mode 100644
index 00000000000..2dc5e8fd2de
--- /dev/null
+++ b/tests/wpt/web-platform-tests/reporting/disconnect.html
@@ -0,0 +1,25 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Reporting: Disconnect</title>
+<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org">
+<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>
+<script>
+ async_test(async function(test) {
+ var observer = new ReportingObserver(function(reports, observer) {
+ test.step(function() {
+ assert_equals(reports.length, 1);
+ assert_equals(reports[0].body.message, "Test message.");
+ });
+ test.done();
+ });
+ observer.observe();
+
+ // The observer should still receive this report even though disconnect()
+ // is called immediately afterwards.
+ await test_driver.generate_test_report("Test message.");
+ observer.disconnect();
+ }, "Disconnect");
+</script>
diff --git a/tests/wpt/web-platform-tests/reporting/generateTestReport.html b/tests/wpt/web-platform-tests/reporting/generateTestReport.html
new file mode 100644
index 00000000000..e3c2735686a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/reporting/generateTestReport.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="utf-8" />
+<title>Reporting: Generate Test Report</title>
+<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org">
+<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>
+<script>
+ // Test that the "generate_test_report" API works.
+ async_test(function(test) {
+ var observer = new ReportingObserver(function(reports) {
+ test.step(function() {
+ assert_equals(reports.length, 1);
+ // Ensure that the contents of the report are valid.
+ assert_equals(reports[0].type, "test");
+ assert_true(reports[0].url.endsWith("reporting/generateTestReport.html"));
+ assert_equals(reports[0].body.message, "Test message.");
+ });
+ test.done();
+ });
+ observer.observe();
+
+ // This should result in a "test" type report being generated and observed.
+ test_driver.generate_test_report("Test message.");
+ }, "Generate Test Report");
+</script>
diff --git a/tests/wpt/web-platform-tests/reporting/nestedReport.html b/tests/wpt/web-platform-tests/reporting/nestedReport.html
new file mode 100644
index 00000000000..156338ee746
--- /dev/null
+++ b/tests/wpt/web-platform-tests/reporting/nestedReport.html
@@ -0,0 +1,30 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Reporting: Nested report</title>
+<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org">
+<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>
+<script>
+ // Test that reports can be generated within a ReportingObserver
+ // callback. These reports should be received by the same observer.
+ async_test(function(test) {
+ var step = 0;
+ var observer = new ReportingObserver(async function(reports, observer) {
+ test.step(function() {
+ assert_equals(reports.length, 1);
+ assert_equals(reports[0].body.message, "" + step);
+ });
+
+ ++step;
+ if (step == 3)
+ test.done();
+
+ test_driver.generate_test_report("" + step);
+ });
+ observer.observe();
+
+ test_driver.generate_test_report("0");
+ }, "Nested report");
+</script>
diff --git a/tests/wpt/web-platform-tests/reporting/order.html b/tests/wpt/web-platform-tests/reporting/order.html
new file mode 100644
index 00000000000..c43964220c9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/reporting/order.html
@@ -0,0 +1,32 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Reporting: Order</title>
+<link rel="author" title="Paul Meyer" href="paulmeyer@chromium.org">
+<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>
+<p id="error">No error</p>
+<script>
+ var count = 0;
+ async_test(function(test) {
+ var observer = new ReportingObserver(function(reports) {
+ test.step(function() {
+ // Reports should be received in the same order that they were
+ // generated.
+ for(i in reports) {
+ assert_equals(reports[i].body.message, "" + count++);
+ }
+ });
+
+ if (count == 10)
+ test.done();
+ });
+ observer.observe();
+
+ for (i = 0; i != 10; ++i)
+ test_driver.generate_test_report("" + i);
+ }, "Order");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/resources/testdriver.js b/tests/wpt/web-platform-tests/resources/testdriver.js
index e328302e4f3..031be1b7e55 100644
--- a/tests/wpt/web-platform-tests/resources/testdriver.js
+++ b/tests/wpt/web-platform-tests/resources/testdriver.js
@@ -194,6 +194,20 @@
*/
action_sequence: function(actions) {
return window.test_driver_internal.action_sequence(actions);
+ },
+
+ /**
+ * Generates a test report on the current page
+ *
+ * The generate_test_report function generates a report (to be observed
+ * by ReportingObserver) for testing purposes, as described in
+ * {@link https://w3c.github.io/reporting/#generate-test-report-command}
+ *
+ * @returns {Promise} fulfilled after the report is generated, or
+ * rejected if the report generation fails
+ */
+ generate_test_report: function(message) {
+ return window.test_driver_internal.generate_test_report(message);
}
};
@@ -281,6 +295,17 @@
*/
action_sequence: function(actions) {
return Promise.reject(new Error("unimplemented"));
+ },
+
+ /**
+ * Generates a test report on the current page
+ *
+ * @param {String} message - the message to be contained in the report
+ * @returns {Promise} fulfilled after the report is generated, or
+ * rejected if the report generation fails
+ */
+ generate_test_report: function(message) {
+ return Promise.reject(new Error("unimplemented"));
}
};
})();
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
index 0e54eca778b..41cf2c641d2 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
@@ -509,7 +509,8 @@ class CallbackHandler(object):
self.actions = {
"click": ClickAction(self.logger, self.protocol),
"send_keys": SendKeysAction(self.logger, self.protocol),
- "action_sequence": ActionSequenceAction(self.logger, self.protocol)
+ "action_sequence": ActionSequenceAction(self.logger, self.protocol),
+ "generate_test_report": GenerateTestReportAction(self.logger, self.protocol)
}
def __call__(self, result):
@@ -593,3 +594,13 @@ class ActionSequenceAction(object):
def get_element(self, selector):
element = self.protocol.select.element_by_selector(selector)
return element
+
+class GenerateTestReportAction(object):
+ def __init__(self, logger, protocol):
+ self.logger = logger
+ self.protocol = protocol
+
+ def __call__(self, payload):
+ message = payload["message"]
+ self.logger.debug("Generating test report: %s" % message)
+ self.protocol.generate_test_report.generate_test_report(message)
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
index 21868421712..fa257e1296e 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
@@ -213,9 +213,6 @@ class SeleniumProtocol(Protocol):
resolve_ip=False),
desired_capabilities=self.capabilities)
- def after_conect(self):
- pass
-
def teardown(self):
self.logger.debug("Hanging up on Selenium session")
try:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 3f8c2bb5a3f..817b2717cb7 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -20,7 +20,8 @@ from .protocol import (BaseProtocolPart,
ClickProtocolPart,
SendKeysProtocolPart,
ActionSequenceProtocolPart,
- TestDriverProtocolPart)
+ TestDriverProtocolPart,
+ GenerateTestReportProtocolPart)
from ..testrunner import Stop
import webdriver as client
@@ -188,6 +189,15 @@ class WebDriverTestDriverProtocolPart(TestDriverProtocolPart):
self.webdriver.execute_script("window.postMessage(%s, '*')" % json.dumps(obj))
+class WebDriverGenerateTestReportProtocolPart(GenerateTestReportProtocolPart):
+ def setup(self):
+ self.webdriver = self.parent.webdriver
+
+ def generate_test_report(self, message):
+ json_message = {"message": message}
+ self.webdriver.send_session_command("POST", "reporting/generate_test_report", json_message)
+
+
class WebDriverProtocol(Protocol):
implements = [WebDriverBaseProtocolPart,
WebDriverTestharnessProtocolPart,
@@ -195,7 +205,8 @@ class WebDriverProtocol(Protocol):
WebDriverClickProtocolPart,
WebDriverSendKeysProtocolPart,
WebDriverActionSequenceProtocolPart,
- WebDriverTestDriverProtocolPart]
+ WebDriverTestDriverProtocolPart,
+ WebDriverGenerateTestReportProtocolPart]
def __init__(self, executor, browser, capabilities, **kwargs):
super(WebDriverProtocol, self).__init__(executor, browser)
@@ -214,9 +225,6 @@ class WebDriverProtocol(Protocol):
self.webdriver.start()
- def after_conect(self):
- pass
-
def teardown(self):
self.logger.debug("Hanging up on WebDriver session")
try:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py
index aa3565e5726..d08b74bfc36 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/protocol.py
@@ -265,6 +265,7 @@ class ClickProtocolPart(ProtocolPart):
:param element: A protocol-specific handle to an element."""
pass
+
class SendKeysProtocolPart(ProtocolPart):
"""Protocol part for performing trusted clicks"""
__metaclass__ = ABCMeta
@@ -280,6 +281,20 @@ class SendKeysProtocolPart(ProtocolPart):
pass
+class GenerateTestReportProtocolPart(ProtocolPart):
+ """Protocol part for generating test reports"""
+ __metaclass__ = ABCMeta
+
+ name = "generate_test_report"
+
+ @abstractmethod
+ def generate_test_report(self, message):
+ """Generate a test report.
+
+ :param message: The message to be contained in the report."""
+ pass
+
+
class ActionSequenceProtocolPart(ProtocolPart):
"""Protocol part for performing trusted clicks"""
__metaclass__ = ABCMeta
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py
index 3a92491aa22..8699ac4fc73 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/metadata.py
@@ -365,7 +365,7 @@ class ExpectedUpdater(object):
if self.ignore_existing:
test_data.set_requires_update()
- test_data.clear.append("expected")
+ test_data.clear.add("expected")
self.tests_visited[test_id] = set()
def test_status(self, data):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js
index 6336d227db8..09d7c290867 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testdriver-extra.js
@@ -90,4 +90,13 @@
window.__wptrunner_message_queue.push({"type": "action", "action": "action_sequence", "actions": actions});
return pending_promise;
};
+
+ window.test_driver_internal.generate_test_report = function(message) {
+ const pending_promise = new Promise(function(resolve, reject) {
+ pending_resolve = resolve;
+ pending_reject = reject;
+ });
+ window.__wptrunner_message_queue.push({"type": "action", "action": "generate_test_report", "message": message});
+ return pending_promise;
+ };
})();
diff --git a/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py b/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py
new file mode 100644
index 00000000000..f34630c3cbc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webdriver/tests/send_alert_text/conftest.py
@@ -0,0 +1,24 @@
+import pytest
+
+from webdriver.error import NoSuchAlertException, NoSuchWindowException
+
+
+@pytest.fixture(name="session")
+def fixture_session(capabilities, session, create_window):
+ """Prevent dialog rate limits by running the test in a new window."""
+ original_handle = session.window_handle
+ session.window_handle = create_window()
+
+ yield session
+
+ try:
+ session.alert.dismiss()
+ except NoSuchAlertException:
+ pass
+
+ try:
+ session.close()
+ except NoSuchWindowException:
+ pass
+
+ session.window_handle = original_handle
diff --git a/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html
new file mode 100644
index 00000000000..971a6d78a1e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webxr/xrFrame_lifetime.https.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<body>
+ <script src=/resources/testharness.js></script>
+ <script src=/resources/testharnessreport.js></script>
+ <script src="resources/webxr_util.js"></script>
+ <canvas></canvas>
+
+ <script>
+ let immersiveTestName = "XRFrame methods throw exceptions outside of the " +
+ "requestAnimationFrame callback for immersive sessions";
+ let nonImmersiveTestName = "XRFrame methods throw exceptions outside of the " +
+ "requestAnimationFrame callback for non-immersive sessions";
+
+ let fakeDeviceInitParams = { supportsImmersive:true };
+
+ let immersiveSessionOptions = { mode: 'immersive-vr' };
+ let nonImmersiveSessionOptions = { outputContext: getOutputContext() };
+
+ let testFunction = (testSession, testController, t) => new Promise((resolve) => {
+ let staleFrame = null;
+ let currentReferenceSpace = null;
+
+ function onFrame(time, xrFrame) {
+ t.step(() => {
+ assert_true(xrFrame instanceof XRFrame);
+ });
+
+ staleFrame = xrFrame;
+ step_timeout(afterFrame, 0);
+ }
+
+ function afterFrame() {
+ t.step(() => {
+ // Attempting to call a method on the frame outside the callback that
+ // originally provided it should cause it to throw an exception.
+ assert_throws('InvalidStateError', () => staleFrame.getViewerPose(currentReferenceSpace));
+ });
+
+ // Test does not complete until the this function has executed.
+ resolve();
+ }
+
+ testSession.requestReferenceSpace({ type: 'stationary', subtype: 'eye-level' }).then((referenceSpace) => {
+ currentReferenceSpace = referenceSpace;
+ testSession.requestAnimationFrame(onFrame);
+ });
+ });
+
+ xr_session_promise_test(immersiveTestName, testFunction,
+ fakeDeviceInitParams, immersiveSessionOptions);
+ xr_session_promise_test(nonImmersiveTestName, testFunction,
+ fakeDeviceInitParams, nonImmersiveSessionOptions);
+
+ </script>
+</body> \ No newline at end of file