aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json213
-rw-r--r--tests/wpt/metadata/dom/nodes/remove-and-adopt-crash.html.ini4
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini12
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini2
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini5
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini3
-rw-r--r--tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini4
-rw-r--r--tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini2
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini1
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini6
-rw-r--r--tests/wpt/web-platform-tests/cookies/cookie-enabled-noncookie-frame.html31
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001-ref.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001.html30
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002-ref.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002.html21
-rw-r--r--tests/wpt/web-platform-tests/dom/nodes/remove-and-adopt-crash.html18
-rw-r--r--tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html2
-rw-r--r--tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py2
-rw-r--r--tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl10
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/contracted-image.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/cross-origin-image.sub.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/expanded-image.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/image-TAO.sub.html60
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/image-src-change.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/loadTime-after-appendChild.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/observe-image.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html2
-rw-r--r--tests/wpt/web-platform-tests/largest-contentful-paint/repeated-image.html2
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html65
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html53
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html22
-rw-r--r--tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js117
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.https.html2
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html5
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.html4
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.html10
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints-fast.html3
-rw-r--r--tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.html3
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html93
-rw-r--r--tests/wpt/web-platform-tests/resources/chromium/image_capture.mojom.js92
-rw-r--r--tests/wpt/web-platform-tests/resources/chromium/mock-imagecapture.js18
-rw-r--r--tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js (renamed from tests/wpt/web-platform-tests/shape-detection/idlharness.any.js)36
-rw-r--r--tests/wpt/web-platform-tests/shape-detection/resources/shapedetection-helpers.js2
-rw-r--r--tests/wpt/web-platform-tests/webxr/resources/webxr_util.js2
47 files changed, 874 insertions, 149 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
index 3b874fc1748..3a3d15b8406 100644
--- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
@@ -14,6 +14,9 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
+ [Revoke blob URL after calling fetch, fetch should succeed]
+ expected: FAIL
+
[url-with-fetch.any.html]
[Untitled]
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 53f7c6ecab5..2d4dd5edc57 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -178473,6 +178473,30 @@
{}
]
],
+ "css/css-writing-modes/wm-propagation-001.html": [
+ [
+ "css/css-writing-modes/wm-propagation-001.html",
+ [
+ [
+ "/css/css-writing-modes/wm-propagation-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "css/css-writing-modes/wm-propagation-002.html": [
+ [
+ "css/css-writing-modes/wm-propagation-002.html",
+ [
+ [
+ "/css/css-writing-modes/wm-propagation-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-writing-modes/wm-propagation-body-006.xht": [
[
"css/css-writing-modes/wm-propagation-body-006.xht",
@@ -259062,6 +259086,12 @@
"css/css-writing-modes/vertical-alignment-vrl-026-ref.xht": [
[]
],
+ "css/css-writing-modes/wm-propagation-001-ref.html": [
+ []
+ ],
+ "css/css-writing-modes/wm-propagation-002-ref.html": [
+ []
+ ],
"css/css-writing-modes/wm-propagation-body-003-ref.xht": [
[]
],
@@ -273582,6 +273612,9 @@
"mathml/support/feature-detection.js": [
[]
],
+ "mathml/support/mathml-fragments.js": [
+ []
+ ],
"mathml/tools/axisheight.py": [
[]
],
@@ -308588,6 +308621,12 @@
{}
]
],
+ "cookies/cookie-enabled-noncookie-frame.html": [
+ [
+ "cookies/cookie-enabled-noncookie-frame.html",
+ {}
+ ]
+ ],
"cookies/http-state/attribute-tests.html": [
[
"cookies/http-state/attribute-tests.html",
@@ -329144,6 +329183,12 @@
{}
]
],
+ "dom/nodes/remove-and-adopt-crash.html": [
+ [
+ "dom/nodes/remove-and-adopt-crash.html",
+ {}
+ ]
+ ],
"dom/nodes/remove-unscopable.html": [
[
"dom/nodes/remove-unscopable.html",
@@ -360783,6 +360828,12 @@
{}
]
],
+ "largest-contentful-paint/image-TAO.sub.html": [
+ [
+ "largest-contentful-paint/image-TAO.sub.html",
+ {}
+ ]
+ ],
"largest-contentful-paint/image-src-change.html": [
[
"largest-contentful-paint/image-src-change.html",
@@ -361283,6 +361334,18 @@
{}
]
],
+ "mathml/relations/css-styling/attribute-mapping-001.html": [
+ [
+ "mathml/relations/css-styling/attribute-mapping-001.html",
+ {}
+ ]
+ ],
+ "mathml/relations/css-styling/attribute-mapping-002.html": [
+ [
+ "mathml/relations/css-styling/attribute-mapping-002.html",
+ {}
+ ]
+ ],
"mathml/relations/css-styling/displaystyle-1.html": [
[
"mathml/relations/css-styling/displaystyle-1.html",
@@ -391357,12 +391420,62 @@
{}
]
],
- "shape-detection/idlharness.any.js": [
+ "shape-detection/idlharness.https.any.js": [
+ [
+ "shape-detection/idlharness.https.any.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "/resources/WebIDLParser.js"
+ ],
+ [
+ "script",
+ "/resources/idlharness.js"
+ ],
+ [
+ "script",
+ "/shape-detection/resources/shapedetection-helpers.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "shape-detection/idlharness.https.any.serviceworker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "/resources/WebIDLParser.js"
+ ],
+ [
+ "script",
+ "/resources/idlharness.js"
+ ],
+ [
+ "script",
+ "/shape-detection/resources/shapedetection-helpers.js"
+ ]
+ ]
+ }
+ ],
[
- "shape-detection/idlharness.any.html",
+ "shape-detection/idlharness.https.any.sharedworker.html",
{
"script_metadata": [
[
+ "global",
+ "window,worker"
+ ],
+ [
"script",
"/resources/WebIDLParser.js"
],
@@ -391378,10 +391491,14 @@
}
],
[
- "shape-detection/idlharness.any.worker.html",
+ "shape-detection/idlharness.https.any.worker.html",
{
"script_metadata": [
[
+ "global",
+ "window,worker"
+ ],
+ [
"script",
"/resources/WebIDLParser.js"
],
@@ -469914,6 +470031,10 @@
"ed86aebf1837646e2808619e446d03bfe5b86000",
"support"
],
+ "cookies/cookie-enabled-noncookie-frame.html": [
+ "539d715ebd5344de4cf02b6485462b31bc167525",
+ "testharness"
+ ],
"cookies/http-state/attribute-tests.html": [
"8cb820564f455ea545ce0124bb477a211141bc5d",
"testharness"
@@ -593890,6 +594011,22 @@
"35560e940b3abdad4e67f92e173798f634b00785",
"reftest"
],
+ "css/css-writing-modes/wm-propagation-001-ref.html": [
+ "2e8df84f21ef494f99f356b056396c7d6d39d940",
+ "support"
+ ],
+ "css/css-writing-modes/wm-propagation-001.html": [
+ "d313cacf38dac06ec5be6377a7cc9055dc4e2d07",
+ "reftest"
+ ],
+ "css/css-writing-modes/wm-propagation-002-ref.html": [
+ "cd692dbffdf397bf362cd17602131a506ae6f75a",
+ "support"
+ ],
+ "css/css-writing-modes/wm-propagation-002.html": [
+ "42f5b1b3fdc903d9f6812bcab81866e6029eee69",
+ "reftest"
+ ],
"css/css-writing-modes/wm-propagation-body-003-ref.xht": [
"1f83fdaea6ef98786ce7c9769dcb4cd8dd4750a5",
"support"
@@ -610746,6 +610883,10 @@
"7eb1baf15f05f95545a563fe216eac0655c38a74",
"support"
],
+ "dom/nodes/remove-and-adopt-crash.html": [
+ "d37015ec9f923bfc74319631723defa0b222654d",
+ "testharness"
+ ],
"dom/nodes/remove-unscopable.html": [
"0238b0fa97a40dd9e5058d4153d1483553552033",
"testharness"
@@ -611731,7 +611872,7 @@
"testharness"
],
"element-timing/image-TAO.sub.html": [
- "032ae6b12198b76107ab3dfcc2ab3b7f92b13c00",
+ "0906b361394ae74cef3f8f2720844a7365ea5926",
"testharness"
],
"element-timing/image-carousel.html": [
@@ -611827,7 +611968,7 @@
"testharness"
],
"element-timing/resources/TAOImage.py": [
- "1e0afb3827898d4aad7d29ce5649ac00948ff492",
+ "6969166c67ce367b5c35626d5695d543f60bb20f",
"support"
],
"element-timing/resources/circle.svg": [
@@ -638915,7 +639056,7 @@
"support"
],
"interfaces/shape-detection-api.idl": [
- "72fce2001cad5a465440ef996150e38ddee609cf",
+ "83b7f893552e8f290f677e63547b2c133abf1404",
"support"
],
"interfaces/speech-api.idl": [
@@ -639515,11 +639656,11 @@
"testharness"
],
"largest-contentful-paint/contracted-image.html": [
- "7dc9e7a899d4d81074e842396b494a733668e278",
+ "e099a5e42f6d3fd7982a7e298c53b860258f8c70",
"testharness"
],
"largest-contentful-paint/cross-origin-image.sub.html": [
- "88775b861a6b98b1af0fb5163222a1025a6df02e",
+ "7669d4647802f54f4d04b7b7a6b0a9ccc19b9f11",
"testharness"
],
"largest-contentful-paint/element-only-when-fully-active.html": [
@@ -639527,19 +639668,23 @@
"testharness"
],
"largest-contentful-paint/expanded-image.html": [
- "766b61d013da2cefddb9e35398648d4fa2a2bded",
+ "9f64189eda60bc74b41d2526e577dcd0e0cf88d2",
"testharness"
],
"largest-contentful-paint/idlharness.html": [
"273fef80ce2d855075781512a9a8ab0a736af420",
"testharness"
],
+ "largest-contentful-paint/image-TAO.sub.html": [
+ "9409fd8fc05c338dc74a3c7bf8fe94d356679633",
+ "testharness"
+ ],
"largest-contentful-paint/image-src-change.html": [
- "3e083625bdc1812a2c344b8eefaaa10d3b31e623",
+ "84a49f7ea2220c43c083f91057763ae161035532",
"testharness"
],
"largest-contentful-paint/loadTime-after-appendChild.html": [
- "fb0eddb220ec660d529a43b112c576bf146a87e8",
+ "43ec9f6085d605098faeddce311b5ccbc626b073",
"testharness"
],
"largest-contentful-paint/observe-after-untrusted-scroll.html": [
@@ -639547,15 +639692,15 @@
"testharness"
],
"largest-contentful-paint/observe-image.html": [
- "16b3502eb340cbce179bf440c245cafafe4beea4",
+ "a9556ebaa60d04c154c8043fe7c48fbd7ec38700",
"testharness"
],
"largest-contentful-paint/observe-text.html": [
- "2cf1344f2557d5bddd22eaf4ae4fed99d89267a1",
+ "a2a376fde335cb2b9e05c8923998bfc15c2695f1",
"testharness"
],
"largest-contentful-paint/repeated-image.html": [
- "94406b20d62b417a690ce6a96d909bb29c791081",
+ "d25d4735c9747cb27bffdd640e1127f9fb9c075c",
"testharness"
],
"largest-contentful-paint/resources/iframe-stores-entry.html": [
@@ -640206,6 +640351,14 @@
"3eaf9c8fff483232eb6794b603f270bb86c47d3d",
"testharness"
],
+ "mathml/relations/css-styling/attribute-mapping-001.html": [
+ "347b571b1d681640cabec6c0ce7e940e523fa66b",
+ "testharness"
+ ],
+ "mathml/relations/css-styling/attribute-mapping-002.html": [
+ "1a8b7ca16d10ef191276f3dcbbe209eda14111f0",
+ "testharness"
+ ],
"mathml/relations/css-styling/color-001-ref.html": [
"0efca480eec5a3da684fe79a429982b139b202e4",
"support"
@@ -640423,7 +640576,7 @@
"reftest"
],
"mathml/relations/css-styling/padding-border-margin/border-001.html": [
- "38922118edd8f22596f388aceab7af63192577b0",
+ "8efb6a5ab0e6759fccbd9775da700d5065a3fdd7",
"testharness"
],
"mathml/relations/css-styling/padding-border-margin/helper.js": [
@@ -640594,6 +640747,10 @@
"50ca926d25ea810177068a5f5de29f39749db7e6",
"support"
],
+ "mathml/support/mathml-fragments.js": [
+ "5de537ca42af4a4763c5acf9307d2017214680db",
+ "support"
+ ],
"mathml/tools/axisheight.py": [
"43827e7031665bdd57ee54e208ea0f875a9a60ec",
"support"
@@ -641347,7 +641504,7 @@
"testharness"
],
"mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.https.html": [
- "9ec5261b9dc48ea143c60946d72233a9eb5d7261",
+ "fddeb60d0c24d9ceebd8f9df324467ae1cc32550",
"testharness"
],
"mediacapture-image/ImageCapture-creation.https.html": [
@@ -641371,7 +641528,7 @@
"testharness"
],
"mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html": [
- "4900336549f4a92f449233d24abf97f84f055102",
+ "9d985de66de4a476ddb68802603b212efd7c40b6",
"testharness"
],
"mediacapture-image/MediaStreamTrack-applyConstraints-reject.html": [
@@ -641379,7 +641536,7 @@
"testharness"
],
"mediacapture-image/MediaStreamTrack-applyConstraints.html": [
- "c87f954c682cb6869040ebc67f6245902cec1267",
+ "da3de3ec0f90cbad2563e41c9aa228c1297945e6",
"testharness"
],
"mediacapture-image/MediaStreamTrack-getCapabilities-fast.html": [
@@ -641387,11 +641544,11 @@
"testharness"
],
"mediacapture-image/MediaStreamTrack-getCapabilities.html": [
- "9e34f2389cc4e446767df2aa4991cb43b8c95c7a",
+ "e7b196f510a0baee4096f58f0fce7d868a977d88",
"testharness"
],
"mediacapture-image/MediaStreamTrack-getConstraints-fast.html": [
- "16f869cf119faa7eaa043ff6d65fa31b2998315b",
+ "3b1e2e0f2ca51e74222b36cb1d98a32a67e2a20b",
"testharness"
],
"mediacapture-image/MediaStreamTrack-getSettings-fast.html": [
@@ -641399,7 +641556,7 @@
"testharness"
],
"mediacapture-image/MediaStreamTrack-getSettings.html": [
- "8535f298bfab2ebca9dd3b37a0cc4f8538623203",
+ "a1a864c2445d844c5d6fd88dd48e1f6839ae9528",
"testharness"
],
"mediacapture-image/detached-HTMLCanvasElement.html": [
@@ -652683,7 +652840,7 @@
"testharness"
],
"pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html": [
- "b2251d660e7176627204e4d48dc591033501554e",
+ "5ad3de354574d4bde5668dfc3dec479fe252a385",
"testharness"
],
"pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked.html": [
@@ -663191,7 +663348,7 @@
"support"
],
"resources/chromium/image_capture.mojom.js": [
- "50428ffcb80c736c1f63f8a91e0c65ff472ef463",
+ "f145d7a3402543a18229629da0133dea81dd3755",
"support"
],
"resources/chromium/mock-barcodedetection.js": [
@@ -663211,7 +663368,7 @@
"support"
],
"resources/chromium/mock-imagecapture.js": [
- "329cbc3a761dc5720b7a67ed09ef68aec6a8bc3d",
+ "eec414bd032a2dd01f27e18de64df0bde4e4a459",
"support"
],
"resources/chromium/mojo_bindings.js": [
@@ -668038,12 +668195,12 @@
"52540271d27ecf76cfe68ca0502630eac8c5d0a3",
"testharness"
],
- "shape-detection/idlharness.any.js": [
- "dab7de99d2d1f15ed72f562a0fb7fbfb3367eeac",
+ "shape-detection/idlharness.https.any.js": [
+ "8886e356baa94b4a0a3b320efd3d14405efb4189",
"testharness"
],
"shape-detection/resources/shapedetection-helpers.js": [
- "91d36658aab0bf9435cfc9d283be45ef1292e2ed",
+ "de1e681de9fb8520d97381b3e6a844bcfc84b1f2",
"support"
],
"shape-detection/shapedetection-cross-origin.sub.html": [
@@ -690183,7 +690340,7 @@
"support"
],
"webxr/resources/webxr_util.js": [
- "022aca8c93e232f00c2d76de5580231af59ff487",
+ "f8c7f0f81c7014dad1f5292836f3ee208a5b6830",
"support"
],
"webxr/webGLCanvasContext_create_xrcompatible.https.html": [
diff --git a/tests/wpt/metadata/dom/nodes/remove-and-adopt-crash.html.ini b/tests/wpt/metadata/dom/nodes/remove-and-adopt-crash.html.ini
new file mode 100644
index 00000000000..7e40b92dee4
--- /dev/null
+++ b/tests/wpt/metadata/dom/nodes/remove-and-adopt-crash.html.ini
@@ -0,0 +1,4 @@
+[remove-and-adopt-crash.html]
+ [Check that removing a node and then adopting its parent into a different window/document doesn't crash.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index 8c3f8f31612..1b4ae9a29da 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,9 +312,6 @@
[<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html */*]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
@@ -324,12 +321,15 @@
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
+ expected: FAIL
+
+ [<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;" text/plain]
+ [<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
+ [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index 279734168dc..5c001592859 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,6 +56,6 @@
[separate text/javascript x/x]
expected: FAIL
- [separate text/javascript;charset=windows-1252 text/javascript]
+ [separate text/javascript;charset=windows-1252 error text/javascript]
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 b2cd43ef76c..536384f36e1 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -11,9 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%20'NosniFF']
- expected: FAIL
-
- [X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
+ [X-Content-Type-Options%3A%20%2Cnosniff]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
new file mode 100644
index 00000000000..87b07c3e670
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_1.html]
+ [Multiple history traversals from the same task]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
new file mode 100644
index 00000000000..75d75b4cda2
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_2.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
index 16fa2c5cfc1..dec4c579137 100644
--- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
+++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html.ini
@@ -1,4 +1,5 @@
[creating_browsing_context_test_01.html]
+ expected: TIMEOUT
[first argument: absolute url]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
deleted file mode 100644
index a9677391662..00000000000
--- a/tests/wpt/metadata/html/syntax/parsing/DOMContentLoaded-defer.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[DOMContentLoaded-defer.html]
- [The end: DOMContentLoaded and defer scripts]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
index 69bd952d756..910c88d3e81 100644
--- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
+++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js.ini
@@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
- expected: TIMEOUT
+ expected: CRASH
[ignore-opens-during-unload]
expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
index a56bad443a2..66bd350083b 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
@@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
- expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
index 134db732f78..6da130a36a4 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini
@@ -134,3 +134,9 @@
[X SNR (-195.93871551689728 dB) is not greater than or equal to 65.737. Got -195.93871551689728.]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 3.5199477452039719e+2 at index of 39267.\n\t[39267\]\t-3.5297753906250000e+2\t-9.8276454210281372e-1\t3.5199477452039719e+2\t3.5816796337323757e+2\t3.8985999999999999e-3\n\tMax RelError of 3.5816796337323757e+2 at index of 39267.\n\t[39267\]\t-3.5297753906250000e+2\t-9.8276454210281372e-1\t3.5199477452039719e+2\t3.5816796337323757e+2\t3.8985999999999999e-3\n]
+ expected: FAIL
+
+ [X SNR (-7.533841891306955 dB) is not greater than or equal to 65.737. Got -7.533841891306955.]
+ expected: FAIL
+
diff --git a/tests/wpt/web-platform-tests/cookies/cookie-enabled-noncookie-frame.html b/tests/wpt/web-platform-tests/cookies/cookie-enabled-noncookie-frame.html
new file mode 100644
index 00000000000..539d715ebd5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/cookies/cookie-enabled-noncookie-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<head>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <script>
+ var t = async_test("navigator.cookieEnabled behavior on frames without cookie access");
+ window.onmessage = function(ev) {
+ // Surprisingly, the legacy behavior here is to return true; this actually
+ // does match the spec definition since false is supposed to be returned
+ // when a document.cookie write is ignored --- and here it would throw
+ // a security exception, not be ignored.
+ assert_equals(ev.data, true);
+ t.done();
+ }
+
+ t.step(function() {
+ var iframe = document.createElement("iframe");
+ iframe.sandbox = "allow-scripts";
+ iframe.srcdoc = "<scr" + "ipt>" +
+ "window.onmessage = function() {" +
+ " parent.postMessage(navigator.cookieEnabled, '*'); " +
+ "}</scr" + "ipt>";
+ iframe.onload = function() {
+ iframe.contentWindow.postMessage({}, "*");
+ }
+ document.body.appendChild(iframe);
+ });
+ </script>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001-ref.html b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001-ref.html
new file mode 100644
index 00000000000..2e8df84f21e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001-ref.html
@@ -0,0 +1,22 @@
+<html>
+ <meta chartset=utf-8>
+ <title>Test Reference</title>
+ <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<style>
+html {
+ writing-mode: vertical-rl;
+}
+body {
+ writing-mode: vertical-rl;
+ width: 0; height: 0;
+}
+html::before {
+ content: "This text must be vertical.";
+}
+html::after {
+ content: "This text must be horizontal.";
+ display: block;
+ writing-mode: horizontal-tb;
+}
+</style>
+<body></body>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001.html b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001.html
new file mode 100644
index 00000000000..d313cacf38d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-001.html
@@ -0,0 +1,30 @@
+<html>
+ <meta chartset=utf-8>
+ <title>CSS-Writing Modes Test: propagation of the writing-mode property from body to root</title>
+ <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+ <link rel=help href="https://drafts.csswg.org/css-writing-modes-3/#principal-flow">
+ <link rel="match" href="wm-propagation-001-ref.html">
+ <meta name=assert content="the writing mode of the body must be propagated to the root, but the computed value must not change.">
+<style>
+html {
+ writing-mode: horizontal-tb;
+}
+body {
+ writing-mode: vertical-rl;
+ width: 0; height: 0;
+}
+html::before {
+ content: "This text must be vertical.";
+ /* This is inline content of the root,
+ and should therefore be vertical,
+ as the root's used value is vertical */
+}
+html::after {
+ content: "This text must be horizontal.";
+ display: block;
+ /* This is a block level element,
+ with it's own writing mode inherited from the root,
+ horizontal since the root's computed value should be horizontal*/
+}
+</style>
+<body></body>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002-ref.html b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002-ref.html
new file mode 100644
index 00000000000..cd692dbffdf
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002-ref.html
@@ -0,0 +1,21 @@
+<html>
+ <meta chartset=utf-8>
+ <title>Test reference</title>
+ <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+<style>
+html {
+ direction: rtl;
+}
+body {
+ height: 0;
+}
+html::before {
+ content: "This text must be on the right";
+}
+html::after {
+ content: "This text must be on the left";
+ display: block;
+ direction: ltr;
+}
+</style>
+<body></body>
diff --git a/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002.html b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002.html
new file mode 100644
index 00000000000..42f5b1b3fdc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-writing-modes/wm-propagation-002.html
@@ -0,0 +1,21 @@
+<html>
+ <meta chartset=utf-8>
+ <title>CSS-Writing Modes Test: propagation of the direction property from body to root</title>
+ <link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
+ <link rel=help href="https://drafts.csswg.org/css-writing-modes-3/#principal-flow">
+ <link rel="match" href="wm-propagation-002-ref.html">
+ <meta name=assert content="the 'direction' of the body must be propagated to the root, but the computed value must not change.">
+<style>
+body {
+ direction: rtl;
+ height: 0;
+}
+html::before {
+ content: "This text must be on the right";
+}
+html::after {
+ content: "This text must be on the left";
+ display: block;
+}
+</style>
+<body></body>
diff --git a/tests/wpt/web-platform-tests/dom/nodes/remove-and-adopt-crash.html b/tests/wpt/web-platform-tests/dom/nodes/remove-and-adopt-crash.html
new file mode 100644
index 00000000000..d37015ec9f9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/nodes/remove-and-adopt-crash.html
@@ -0,0 +1,18 @@
+<!doctype html>
+<title>Test for a Chrome crash when adopting a node into another document</title>
+<link rel="help" href="https://crbug.com/981384">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div id="d1"></div>
+<div id="d2"></div>
+<script>
+ test(() => {
+ d1.appendChild(document.createElement("iframe"));
+ d2.remove();
+ const adopted_div = d1;
+ const popup = window.open();
+ assert_equals(adopted_div.ownerDocument, document);
+ popup.document.body.appendChild(document.body);
+ assert_equals(adopted_div.ownerDocument, popup.document);
+ }, "Check that removing a node and then adopting its parent into a different window/document doesn't crash.");
+</script>
diff --git a/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html b/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html
index 032ae6b1219..0906b361394 100644
--- a/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html
+++ b/tests/wpt/web-platform-tests/element-timing/image-TAO.sub.html
@@ -45,7 +45,7 @@
else {
assert_unreached('Should be in one of valid_tao OR invalid_tao');
}
- checkNaturalSize(entry, 20, 20);
+ checkNaturalSize(entry, 100, 100);
if (img_count == total_images)
t.done();
});
diff --git a/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py b/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py
index 1e0afb38278..6969166c67c 100644
--- a/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py
+++ b/tests/wpt/web-platform-tests/element-timing/resources/TAOImage.py
@@ -41,5 +41,5 @@ def main(request, response):
else:
pass
response.headers.set("Cache-Control", "no-cache, must-revalidate");
- image_path = os.path.join(os.path.dirname(__file__), "square20.png");
+ image_path = os.path.join(os.path.dirname(__file__), "square100.png");
response.content = open(image_path, mode='rb').read();
diff --git a/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl b/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl
index 72fce2001ca..83b7f893552 100644
--- a/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl
+++ b/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl
@@ -4,6 +4,7 @@
// Source: Accelerated Shape Detection in Images (https://wicg.github.io/shape-detection-api/)
[Exposed=(Window,Worker),
+ SecureContext,
Constructor(optional FaceDetectorOptions faceDetectorOptions)]
interface FaceDetector {
Promise<sequence<DetectedFace>> detect(ImageBitmapSource image);
@@ -14,7 +15,9 @@ dictionary FaceDetectorOptions {
boolean fastMode;
};
-[Serializable]
+[Exposed=(Window,Worker),
+ SecureContext,
+ Serializable]
interface DetectedFace {
[SameObject] readonly attribute DOMRectReadOnly boundingBox;
[SameObject] readonly attribute FrozenArray<Landmark>? landmarks;
@@ -32,6 +35,7 @@ enum LandmarkType {
};
[Exposed=(Window,Worker),
+ SecureContext,
Constructor(optional BarcodeDetectorOptions barcodeDetectorOptions)]
interface BarcodeDetector {
static Promise<sequence<BarcodeFormat>> getSupportedFormats();
@@ -43,7 +47,9 @@ dictionary BarcodeDetectorOptions {
sequence<BarcodeFormat> formats;
};
-[Serializable]
+[Exposed=(Window,Worker),
+ SecureContext,
+ Serializable]
interface DetectedBarcode {
[SameObject] readonly attribute DOMRectReadOnly boundingBox;
[SameObject] readonly attribute DOMString rawValue;
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/contracted-image.html b/tests/wpt/web-platform-tests/largest-contentful-paint/contracted-image.html
index 7dc9e7a899d..e099a5e42f6 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/contracted-image.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/contracted-image.html
@@ -25,7 +25,7 @@
'The rendering timestamp should occur after script starts running.');
assert_greater_than_equal(performance.now(), entry.renderTime,
'The rendering timestamp should occur before the entry is dispatched to the observer.');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
// black-rectangle.png is 100 x 50. It occupies 50 x 50 so size will be bounded by the displayed size.
assert_equals(entry.size, 2500);
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/cross-origin-image.sub.html b/tests/wpt/web-platform-tests/largest-contentful-paint/cross-origin-image.sub.html
index 88775b861a6..7669d464780 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/cross-origin-image.sub.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/cross-origin-image.sub.html
@@ -16,7 +16,7 @@
const entry = entryList.getEntries()[0];
assert_equals(entry.entryType, 'largest-contentful-paint');
assert_equals(entry.renderTime, 0, 'The renderTime value should be 0 for a cross origin image.');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.loadTime, 'startTime should equal loadTime');
assert_equals(entry.duration, 0);
// blue.png is 133 x 106.
assert_equals(entry.size, 14098);
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/expanded-image.html b/tests/wpt/web-platform-tests/largest-contentful-paint/expanded-image.html
index 766b61d013d..9f64189eda6 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/expanded-image.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/expanded-image.html
@@ -25,7 +25,7 @@
'The rendering timestamp should occur after script starts running.');
assert_greater_than_equal(performance.now(), entry.renderTime,
'The rendering timestamp should occur before the entry is dispatched to the observer.');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
// black-rectangle.png is 100 x 50. It occupies 300 x 300 so size will be bounded by the intrinsic size.
assert_equals(entry.size, 5000);
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/image-TAO.sub.html b/tests/wpt/web-platform-tests/largest-contentful-paint/image-TAO.sub.html
new file mode 100644
index 00000000000..9409fd8fc05
--- /dev/null
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/image-TAO.sub.html
@@ -0,0 +1,60 @@
+<!DOCTYPE HTML>
+<meta charset=utf-8>
+<title>Largest Contentful Paint: observe cross origin images with various Timing-Allow-Origin headers</title>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/element-timing-helpers.js"></script>
+<div id='my_div'></div>
+<script>
+ async_test(t => {
+ if (!window.PerformanceElementTiming) {
+ assert_unreached("PerformanceElementTiming is not implemented");
+ }
+ const remote_img = 'http://{{domains[www]}}:{{ports[http][1]}}/element-timing/resources/TAOImage.py?'
+ + 'origin=' + window.location.origin +'&tao=';
+ const valid_tao = ['wildcard', 'origin', 'multi', 'multi_wildcard', 'match_origin', 'match_wildcard'];
+ const invalid_tao = ['null', 'space', 'uppercase'];
+ const div = document.getElementById('my_div');
+ let img_size = 20;
+ function addImage(tao) {
+ const img = document.createElement('img');
+ img.src = remote_img + tao;
+ img.id = tao;
+ img.height = img_size;
+ img.width = img_size;
+ // Set increasing size so that largest-contentful-paint captures all of them.
+ img_size += 1;
+ div.appendChild(img);
+ }
+ let img_count = 0;
+ const total_images = valid_tao.length + invalid_tao.length;
+ new PerformanceObserver(
+ t.step_func(entryList => {
+ assert_equals(entryList.getEntries().length, 1);
+ const entry = entryList.getEntries()[0];
+ assert_greater_than(entry.loadTime, 0);
+ const tao = entry.id;
+ if (valid_tao.includes(tao))
+ assert_greater_than(entry.renderTime, 0, 'Image with valid TAO should have renderTime');
+ else if (invalid_tao.includes(tao))
+ assert_equals(entry.renderTime, 0, 'Image with invalid TAO should not have renderTime');
+ else
+ assert_unreached('Should be in one of valid_tao OR invalid_tao');
+ img_count++;
+ // Process valid TAO images first.
+ if (img_count < valid_tao.length)
+ addImage(valid_tao[img_count]);
+ // Then add invalid TAO images.
+ else if (img_count < total_images)
+ addImage(invalid_tao[img_count - valid_tao.length]);
+ // Once we've seen all the images, end the test.
+ else
+ t.done();
+ })
+ ).observe({type: 'largest-contentful-paint'});
+ // Add first image, the rest will be added on each observer callback.
+ addImage(valid_tao[0]);
+ }, 'Cross-origin elements with valid TAO have correct renderTime, with invalid TAO have renderTime set to 0.');
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/image-src-change.html b/tests/wpt/web-platform-tests/largest-contentful-paint/image-src-change.html
index 3e083625bdc..84a49f7ea22 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/image-src-change.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/image-src-change.html
@@ -21,7 +21,7 @@
'The rendering timestamp should occur after script starts running.');
assert_greater_than_equal(performance.now(), entry.renderTime,
'The rendering timestamp should occur before the entry is dispatched to the observer.');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
if (firstCallback) {
// blue.png is 133 x 106.
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/loadTime-after-appendChild.html b/tests/wpt/web-platform-tests/largest-contentful-paint/loadTime-after-appendChild.html
index fb0eddb220e..43ec9f6085d 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/loadTime-after-appendChild.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/loadTime-after-appendChild.html
@@ -15,7 +15,7 @@
assert_equals(entryList.getEntries().length, 1);
const entry = entryList.getEntries()[0];
assert_equals(entry.entryType, 'largest-contentful-paint');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
assert_equals(entry.url, window.location.origin + '/images/black-rectangle.png');
assert_greater_than(entry.renderTime, entry.loadTime,
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-image.html b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-image.html
index 16b3502eb34..a9556ebaa60 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-image.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-image.html
@@ -19,7 +19,7 @@
'The rendering timestamp should occur after script starts running.');
assert_greater_than_equal(performance.now(), entry.renderTime,
'The rendering timestamp should occur before the entry is dispatched to the observer.');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
// blue.png is 133 x 106.
assert_equals(entry.size, 14098);
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html
index 2cf1344f255..a2a376fde33 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html
@@ -22,7 +22,7 @@ p {
assert_equals(entry.entryType, 'largest-contentful-paint');
assert_greater_than_equal(entry.renderTime, beforeRender);
assert_greater_than_equal(performance.now(), entry.renderTime);
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
// Some lower bound: height of at least 12 px.
// Width of at least 100 px.
diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/repeated-image.html b/tests/wpt/web-platform-tests/largest-contentful-paint/repeated-image.html
index 94406b20d62..d25d4735c97 100644
--- a/tests/wpt/web-platform-tests/largest-contentful-paint/repeated-image.html
+++ b/tests/wpt/web-platform-tests/largest-contentful-paint/repeated-image.html
@@ -24,7 +24,7 @@
assert_equals(entryList.getEntries().length, 1);
const entry = entryList.getEntries()[0];
assert_equals(entry.entryType, 'largest-contentful-paint');
- assert_equals(entry.startTime, 0);
+ assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime');
assert_equals(entry.duration, 0);
assert_equals(entry.url, path);
assert_less_than(entry.renderTime, performance.now(),
diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html
new file mode 100644
index 00000000000..347b571b1d6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-001.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Attribute mapping</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#legacy-mathml-style-attributes">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#attributes-common-to-html-and-mathml-elements">
+<meta name="assert" content="Verify that dir, mathcolor, mathbackground and mathsize are mapped to CSS">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/mathml/support/mathml-fragments.js"></script>
+<style>
+ #container {
+ color: blue;
+ font-size: 50px;
+ }
+</style>
+<script>
+ setup({ explicit_done: true });
+ window.addEventListener("load", runTests);
+ function runTests() {
+ var container = document.getElementById("container");
+ for (tag in MathMLFragments) {
+ container.insertAdjacentHTML("beforeend", `<math>${MathMLFragments[tag]}</math>`);
+ }
+ Array.from(document.getElementsByClassName("element")).forEach(element => {
+ var tag = element.tagName;
+ var style = window.getComputedStyle(element);
+
+ test(function() {
+ assert_equals(style.getPropertyValue("direction"), "ltr", "no attribute");
+ element.setAttribute("dir", "rtl");
+ assert_equals(style.getPropertyValue("direction"), "rtl", "attribute specified");
+ }, `dir on the ${tag} element is mapped to CSS direction`)
+
+ test(function() {
+ assert_equals(style.getPropertyValue("color"), "rgb(0, 0, 255)", "no attribute");
+ element.setAttribute("mathcolor", "black");
+ assert_equals(style.getPropertyValue("color"), "rgb(0, 0, 0)", "attribute specified");
+ }, `mathcolor on the ${tag} element is mapped to CSS color`);
+
+ test(function() {
+ assert_equals(style.getPropertyValue("background-color"), "rgba(0, 0, 0, 0)", "no attribute");
+ element.setAttribute("mathbackground", "lightblue");
+ assert_equals(style.getPropertyValue("background-color"), "rgb(173, 216, 230)", "attribute specified");
+ }, `mathbackground on the ${tag} element is mapped to CSS background-color`);
+
+ test(function() {
+ assert_equals(style.getPropertyValue("font-size"), "50px", "no attribute");
+ element.setAttribute("mathsize", "20px");
+ assert_equals(style.getPropertyValue("font-size"), "20px", "attribute specified");
+ }, `mathsize on the ${tag} element is mapped to CSS font-size`);
+ });
+
+ done();
+ }
+</script>
+</head>
+<body>
+ <div id="log"></div>
+ <div id="container">
+ <math class="element"></math>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html
new file mode 100644
index 00000000000..1a8b7ca16d1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Attribute mapping</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-displaystyle-and-scriptlevel-attributes">
+<meta name="assert" content="Verify that mathvariant, scriptlevel, displaystyle are mapped to CSS">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/mathml/support/mathml-fragments.js"></script>
+<script>
+ setup({ explicit_done: true });
+ window.addEventListener("load", runTests);
+ function runTests() {
+ var container = document.getElementById("container");
+ for (tag in MathMLFragments) {
+ container.insertAdjacentHTML("beforeend", `<math>${MathMLFragments[tag]}</math>`);
+ }
+ Array.from(document.getElementsByClassName("element")).forEach(element => {
+ var tag = element.tagName;
+ var style = window.getComputedStyle(element);
+
+ test(function() {
+ assert_equals(style.getPropertyValue("text-transform"), "none", "no attribute");
+ element.setAttribute("mathvariant", "fraktur");
+ assert_equals(style.getPropertyValue("text-transform"), "math-fraktur", "attribute specified");
+ }, `mathvariant on the ${tag} element is mapped to CSS text-transform`)
+
+ test(function() {
+ assert_equals(style.getPropertyValue("math-script-level"), "0", "no attribute");
+ element.setAttribute("scriptlevel", "10");
+ assert_equals(style.getPropertyValue("math-script-level"), "10", "attribute specified");
+ }, `scriptlevel on the ${tag} element is mapped to CSS math-script-level`);
+
+ test(function() {
+ assert_equals(style.getPropertyValue("math-style"), "inline", "no attribute");
+ element.setAttribute("displaystyle", "true");
+ assert_equals(style.getPropertyValue("math-style"), "display", "attribute specified");
+ }, `displaystyle on the ${tag} element is mapped to CSS math-style`);
+ });
+
+ done();
+ }
+</script>
+</head>
+<body>
+ <div id="log"></div>
+ <div id="container">
+ <math class="element"></math>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html
index 38922118edd..8efb6a5ab0e 100644
--- a/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html
+++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/padding-border-margin/border-001.html
@@ -57,10 +57,10 @@
<math>
<mrow>
<mrow id="mrow-border"
- style="border-left: 20px;
- border-right: 30px;
- border-top: 40px;
- border-bottom: 50px;">
+ style="border-left: 20px solid transparent;
+ border-right: 30px solid transparent;
+ border-top: 40px solid transparent;
+ border-bottom: 50px solid transparent;">
<mspace width="50px" height="50px"></mspace>
</mrow>
</mrow>
@@ -70,7 +70,7 @@
<math>
<mrow>
<mrow id="mrow-border-shorthand"
- style="border: 20px;">
+ style="border: 20px solid transparent;">
<mspace width="50px" height="50px"></mspace>
</mrow>
</mrow>
@@ -80,10 +80,10 @@
<math>
<mrow>
<mrow id="mrow-border-logical"
- style="border-inline-start: 20px;
- border-inline-end: 30px;
- border-block-start: 40px;
- border-block-end: 50px;">
+ style="border-inline-start: 20px solid transparent;
+ border-inline-end: 30px solid transparent;
+ border-block-start: 40px solid transparent;
+ border-block-end: 50px solid transparent;">
<mspace width="50px" height="50px"></mspace>
</mrow>
</mrow>
@@ -93,8 +93,8 @@
<math>
<mrow>
<mrow id="mrow-border-logical-shorthand"
- style="border-inline: 20px;
- border-block: 30px;">
+ style="border-inline: 20px solid transparent;
+ border-block: 30px solid transparent;">
<mspace width="50px" height="50px"></mspace>
</mrow>
</mrow>
diff --git a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js
new file mode 100644
index 00000000000..5de537ca42a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js
@@ -0,0 +1,117 @@
+var MathMLFragments = {
+ "annotation": "\
+<semantics>\
+ <mrow></mrow>\
+ <annotation class='element text-container'></annotation>\
+</semantics>",
+ "annotation-xml": "\
+<semantics>\
+ <mrow></mrow>\
+ <annotation-xml class='element text-container foreign-container'></annotation-xml>\
+</semantics>",
+ "maction": "\
+<maction class='element' actiontype='statusline'>\
+ <mrow class='mathml-container'></mrow>\
+ <mtext class='text-container'></mtext>\
+</maction>",
+ "menclose": "<menclose class='element mathml-container'></menclose>",
+ "merror": "<merror class='element mathml-container'></merror>",
+ "mfrac": "\
+<mfrac class='element'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</mfrac>",
+ "mi": "<mi class='element text-container foreign-container'></mi>",
+ "mmultiscripts": "\
+<mmultiscripts class='element'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</mmultiscripts>",
+ "mn": "<mn class='element text-container foreign-container'></mn>",
+ "mo": "<mo class='element text-container foreign-container'></mo>",
+ "mover": "\
+<mover class='element'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</mover>",
+ "mpadded": "<mpadded class='element mathml-container'></mpadded>",
+ "mphantom": "<mphantom class='element mathml-container'></mphantom>",
+ "mprescripts": "\
+<mmultiscripts>\
+ <mrow class='mathml-container'></mrow>\
+ <mprescripts class='element'/>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</mmultiscripts>",
+ "mroot": "\
+<mroot class='element'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</mroot>",
+ "mrow": "<mrow class='element mathml-container'></mrow>",
+ "ms": "<ms class='element text-container foreign-container'></ms>",
+ "mspace": "<mspace class='element'></mspace>",
+ "msqrt": "<msqrt class='element mathml-container'></msqrt>",
+ "mstyle": "<mstyle class='element mathml-container'></mstyle>",
+ "msub": "\
+<msub class='element mathml-container'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</msub>",
+ "msubsup": "\
+<msubsup class='element mathml-container'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</msubsup>",
+ "msup": "\
+<msup class='element mathml-container'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</msup>",
+ "mtable": "\
+<mtable class='element'>\
+ <mtr>\
+ <mtd class='mathml-container'>\
+ </mtd>\
+ </mtr>\
+</mtable>",
+ "mtd": "\
+<mtable>\
+ <mtr>\
+ <mtd class='element mathml-container'>\
+ </mtd>\
+ </mtr>\
+</mtable>",
+ "mtext": "<mtext class='element text-container foreign-container'></mtext>",
+ "mtr": "\
+<mtable>\
+ <mtr class='element'>\
+ <mtd class='mathml-container'>\
+ </mtd>\
+ </mtr>\
+</mtable>",
+ "munder": "\
+<munder class='element'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</munder>",
+ "munderover": "\
+<munderover class='element'>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+ <mrow class='mathml-container'></mrow>\
+</munderover>",
+ "none": "\
+<mmultiscripts>\
+ <mrow class='mathml-container'></mrow>\
+ <none class='element'/>\
+ <mrow class='mathml-container'></mrow>\
+</mmultiscripts>",
+ "semantics": "\
+<semantics class='element>\
+ <mrow class='mathml-container'></mrow>\
+ <annotation class='text-container'></annotation>\
+</semantics>"
+};
diff --git a/tests/wpt/web-platform-tests/mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.https.html b/tests/wpt/web-platform-tests/mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.https.html
index 9ec5261b9dc..fddeb60d0c2 100644
--- a/tests/wpt/web-platform-tests/mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.https.html
+++ b/tests/wpt/web-platform-tests/mediacapture-image/ImageCapture-MediaTrackSupportedConstraints.https.html
@@ -20,6 +20,8 @@ test(function() {
assert_true(supported_constraints.saturation);
assert_true(supported_constraints.sharpness);
assert_true(supported_constraints.focusDistance);
+ assert_true(supported_constraints.pan);
+ assert_true(supported_constraints.tilt);
assert_true(supported_constraints.zoom);
assert_true(supported_constraints.torch);
}, 'Image Capture supported constraints');
diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html
index 4900336549f..9d985de66de 100644
--- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html
+++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.html
@@ -35,6 +35,8 @@ image_capture_test(async t => {
sharpness : 6,
focusDistance : 7,
+ pan : 8,
+ tilt : 9,
zoom : 3.141592,
torch : true
@@ -89,6 +91,9 @@ image_capture_test(async t => {
assert_equals(constraints.advanced[0].focusDistance, settings.focusDistance,
'focusDistance');
+
+ assert_equals(constraints.advanced[0].pan, settings.pan, 'pan');
+ assert_equals(constraints.advanced[0].tilt, settings.tilt, 'tilt');
assert_equals(constraints.advanced[0].zoom, settings.zoom, 'zoom');
assert_equals(constraints.advanced[0].torch, settings.torch, 'torch');
diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.html
index c87f954c682..da3de3ec0f9 100644
--- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.html
+++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.html
@@ -36,6 +36,8 @@ image_capture_test(async (t, imageCaptureTest) => {
sharpness : 6,
focusDistance : 7,
+ pan : 8,
+ tilt : 9,
zoom : 3.141592,
torch : true
@@ -109,6 +111,8 @@ image_capture_test(async (t, imageCaptureTest) => {
assert_equals(constraintsDict.focusDistance, theMock.options().focusDistance
,'focusDistance');
+ assert_equals(constraintsDict.pan, theMock.options().pan, 'pan');
+ assert_equals(constraintsDict.tilt, theMock.options().tilt, 'tilt');
assert_equals(constraintsDict.torch, theMock.options().torch, 'torch');
diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.html
index 9e34f2389cc..e7b196f510a 100644
--- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.html
+++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.html
@@ -141,6 +141,16 @@ image_capture_test(async (t, imageCaptureTest) => {
assert_equals(capabilities.focusDistance.step,
mockCapabilities.focusDistance.step);
+ assert_true(capabilities.pan instanceof MediaSettingsRange);
+ assert_equals(capabilities.pan.max, mockCapabilities.pan.max);
+ assert_equals(capabilities.pan.min, mockCapabilities.pan.min);
+ assert_equals(capabilities.pan.step, mockCapabilities.pan.step);
+
+ assert_true(capabilities.tilt instanceof MediaSettingsRange);
+ assert_equals(capabilities.tilt.max, mockCapabilities.tilt.max);
+ assert_equals(capabilities.tilt.min, mockCapabilities.tilt.min);
+ assert_equals(capabilities.tilt.step, mockCapabilities.tilt.step);
+
assert_true(capabilities.zoom instanceof MediaSettingsRange);
assert_equals(capabilities.zoom.max, mockCapabilities.zoom.max);
assert_equals(capabilities.zoom.min, mockCapabilities.zoom.min);
diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints-fast.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints-fast.html
index 16f869cf119..3b1e2e0f2ca 100644
--- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints-fast.html
+++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints-fast.html
@@ -21,6 +21,9 @@ const constraints = { whiteBalanceMode : "manual",
sharpness : 6,
focusDistance : 7,
+ pan : 8,
+ tilt : 9,
+
zoom : 3.141592
// TODO: torch https://crbug.com/700607.
};
diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.html
index 8535f298bfa..a1a864c2445 100644
--- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.html
+++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.html
@@ -61,6 +61,9 @@ image_capture_test(async (t, imageCaptureTest) => {
assert_equals(settings.sharpness, mockSettings.sharpness.current);
assert_equals(settings.focusDistance, mockSettings.focusDistance.current);
+
+ assert_equals(settings.pan, mockSettings.pan.current);
+ assert_equals(settings.tilt, mockSettings.tilt.current);
assert_equals(settings.zoom, mockSettings.zoom.current);
assert_equals(settings.torch, mockSettings.torch, 'torch');
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
index b2251d660e7..5ad3de35457 100644
--- a/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_in_pointerlock.html
@@ -27,61 +27,76 @@
<script>
window.name="outerframe";
var test_pointermove = async_test("pointermove event received");
+ PhaseEnum = {
+ Start: 0,
+ Lock1: 1,
+ Lock2: 2,
+ Done: 3,
+ };
function run() {
var target0 = document.getElementById("target0");
var innerframe = document.getElementById('innerframe');
var target1 = innerframe.contentDocument.getElementById('target1');
innerframe.contentWindow.name = "innerframe";
+ phase = PhaseEnum.Start;
- on_event(document, "pointerlockchange", function(event) {
- if (document.pointerLockElement == target0) {
- on_event(target0, "pointermove", function (event) {
- test_pointermove.step(function() {
- assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
- }, "View attribute of pointermove should be the target frame.");
- document.exitPointerLock();
+ on_event(target0, "click", function(event) {
+ target0.requestPointerLock();
+ });
- on_event(target1, "click", function(event) {
- target1.requestPointerLock();
- });
+ on_event(target1, "click", function(event) {
+ target1.requestPointerLock();
+ });
- on_event(innerframe.contentDocument, "pointerlockchange", function(event) {
- if (innerframe.contentDocument.pointerLockElement == target1) {
- on_event(target1, "pointermove", function (event) {
- innerframe_pointermoveReceived = true;
- test_pointermove.step(function() {
- assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame.");
- }, "View attribute of pointermove should be the target frame.");
- innerframe.contentDocument.exitPointerLock();
- test_pointermove.done();
- });
- }
- });
- });
+ on_event(target0, "pointermove", function (event) {
+ if (phase == PhaseEnum.Lock1) {
+ assert_equals(document.pointerLockElement, target0);
+ test_pointermove.step(function() {
+ assert_equals(event.view.name, "outerframe", "View attribute of pointermove should be the target frame.");
+ }, "View attribute of pointermove should be the target frame.");
+ document.exitPointerLock();
+ // Click the inner frame target to lock.
+ clickInTarget("mouse", target1);
}
});
- on_event(target0, "click", function(event) {
- target0.requestPointerLock();
+ on_event(target1, "pointermove", function (event) {
+ if (phase == PhaseEnum.Lock2) {
+ assert_equals(innerframe.contentDocument.pointerLockElement, target1);
+ test_pointermove.step(function() {
+ assert_equals(event.view.name, "innerframe", "View attribute of pointermove should be the target frame.");
+ }, "View attribute of pointermove should be the target frame.");
+ innerframe.contentDocument.exitPointerLock();
+ test_pointermove.done();
+ }
});
- var x = innerframe.getBoundingClientRect().x + target1.getBoundingClientRect().x;
- var y = innerframe.getBoundingClientRect().y + target1.getBoundingClientRect().y;
- // Inject mouse input
- new test_driver.Actions()
- .pointerMove(5, 5, {origin: target0})
- .pointerDown()
- .pointerUp()
- .pointerMove(100, 300, {origin: target0})
- .pointerMove(x+10, y+10)
- .pointerDown()
- .pointerUp()
- .pointerMove(5, 5, {origin: target0})
- .send();
+ on_event(document, "pointerlockchange", function(event) {
+ if (phase == PhaseEnum.Start) {
+ assert_equals(document.pointerLockElement, target0);
+ phase++;
+ // Send moves in main frame target
+ new test_driver.Actions()
+ .pointerMove(10, 30, {origin: target0})
+ .send();
+ }
+ });
- }
+ on_event(innerframe.contentDocument, "pointerlockchange", function(event) {
+ if (phase == PhaseEnum.Lock1) {
+ assert_equals(innerframe.contentDocument.pointerLockElement, target1);
+ phase++;
+ // Send moves in inner frame target
+ new test_driver.Actions()
+ .pointerMove(10, 30, {origin: target0})
+ .send();
+ }
+ });
+ // Click the outer frame target to lock.
+ clickInTarget("mouse", target0);
+ }
</script>
<div id="complete-notice">
</div>
diff --git a/tests/wpt/web-platform-tests/resources/chromium/image_capture.mojom.js b/tests/wpt/web-platform-tests/resources/chromium/image_capture.mojom.js
index 50428ffcb80..f145d7a3402 100644
--- a/tests/wpt/web-platform-tests/resources/chromium/image_capture.mojom.js
+++ b/tests/wpt/web-platform-tests/resources/chromium/image_capture.mojom.js
@@ -24,6 +24,8 @@
MeteringMode.MANUAL = MeteringMode.NONE + 1;
MeteringMode.SINGLE_SHOT = MeteringMode.MANUAL + 1;
MeteringMode.CONTINUOUS = MeteringMode.SINGLE_SHOT + 1;
+ MeteringMode.MIN_VALUE = 0,
+ MeteringMode.MAX_VALUE = 3,
MeteringMode.isKnownEnumValue = function(value) {
switch (value) {
@@ -47,6 +49,8 @@
RedEyeReduction.NEVER = 0;
RedEyeReduction.ALWAYS = RedEyeReduction.NEVER + 1;
RedEyeReduction.CONTROLLABLE = RedEyeReduction.ALWAYS + 1;
+ RedEyeReduction.MIN_VALUE = 0,
+ RedEyeReduction.MAX_VALUE = 2,
RedEyeReduction.isKnownEnumValue = function(value) {
switch (value) {
@@ -69,6 +73,8 @@
FillLightMode.OFF = 0;
FillLightMode.AUTO = FillLightMode.OFF + 1;
FillLightMode.FLASH = FillLightMode.AUTO + 1;
+ FillLightMode.MIN_VALUE = 0,
+ FillLightMode.MAX_VALUE = 2,
FillLightMode.isKnownEnumValue = function(value) {
switch (value) {
@@ -175,6 +181,8 @@
this.saturation = null;
this.sharpness = null;
this.focusDistance = null;
+ this.pan = null;
+ this.tilt = null;
this.zoom = null;
this.redEyeReduction = 0;
this.height = null;
@@ -195,7 +203,7 @@
return err;
var kVersionSizes = [
- {version: 0, numBytes: 168}
+ {version: 0, numBytes: 184}
];
err = messageValidator.validateStructVersion(offset, kVersionSizes);
if (err !== validator.validationError.NONE)
@@ -298,41 +306,53 @@
return err;
- // validate PhotoState.zoom
+ // validate PhotoState.pan
err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 120, Range, false);
if (err !== validator.validationError.NONE)
return err;
+ // validate PhotoState.tilt
+ err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 128, Range, false);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+
+ // validate PhotoState.zoom
+ err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 136, Range, false);
+ if (err !== validator.validationError.NONE)
+ return err;
+
+
// validate PhotoState.redEyeReduction
- err = messageValidator.validateEnum(offset + codec.kStructHeaderSize + 128, RedEyeReduction);
+ err = messageValidator.validateEnum(offset + codec.kStructHeaderSize + 144, RedEyeReduction);
if (err !== validator.validationError.NONE)
return err;
// validate PhotoState.height
- err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 136, Range, false);
+ err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 152, Range, false);
if (err !== validator.validationError.NONE)
return err;
// validate PhotoState.width
- err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 144, Range, false);
+ err = messageValidator.validateStructPointer(offset + codec.kStructHeaderSize + 160, Range, false);
if (err !== validator.validationError.NONE)
return err;
// validate PhotoState.fillLightMode
- err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 152, 4, new codec.Enum(FillLightMode), false, [0], 0);
+ err = messageValidator.validateArrayPointer(offset + codec.kStructHeaderSize + 168, 4, new codec.Enum(FillLightMode), false, [0], 0);
if (err !== validator.validationError.NONE)
return err;
return validator.validationError.NONE;
};
- PhotoState.encodedSize = codec.kStructHeaderSize + 160;
+ PhotoState.encodedSize = codec.kStructHeaderSize + 176;
PhotoState.decode = function(decoder) {
var packed;
@@ -361,6 +381,8 @@
val.saturation = decoder.decodeStructPointer(Range);
val.sharpness = decoder.decodeStructPointer(Range);
val.focusDistance = decoder.decodeStructPointer(Range);
+ val.pan = decoder.decodeStructPointer(Range);
+ val.tilt = decoder.decodeStructPointer(Range);
val.zoom = decoder.decodeStructPointer(Range);
val.redEyeReduction = decoder.decodeStruct(codec.Int32);
decoder.skip(1);
@@ -400,6 +422,8 @@
encoder.encodeStructPointer(Range, val.saturation);
encoder.encodeStructPointer(Range, val.sharpness);
encoder.encodeStructPointer(Range, val.focusDistance);
+ encoder.encodeStructPointer(Range, val.pan);
+ encoder.encodeStructPointer(Range, val.tilt);
encoder.encodeStructPointer(Range, val.zoom);
encoder.encodeStruct(codec.Int32, val.redEyeReduction);
encoder.skip(1);
@@ -483,6 +507,8 @@
this.hasSaturation = false;
this.hasSharpness = false;
this.hasFocusDistance = false;
+ this.hasPan = false;
+ this.hasTilt = false;
this.hasZoom = false;
this.hasTorch = false;
this.torch = false;
@@ -504,6 +530,8 @@
this.saturation = 0;
this.sharpness = 0;
this.focusDistance = 0;
+ this.pan = 0;
+ this.tilt = 0;
this.zoom = 0;
this.fillLightMode = 0;
this.width = 0;
@@ -523,7 +551,7 @@
return err;
var kVersionSizes = [
- {version: 0, numBytes: 136}
+ {version: 0, numBytes: 152}
];
err = messageValidator.validateStructVersion(offset, kVersionSizes);
if (err !== validator.validationError.NONE)
@@ -580,8 +608,12 @@
+
+
+
+
// validate PhotoSettings.fillLightMode
- err = messageValidator.validateEnum(offset + codec.kStructHeaderSize + 104, FillLightMode);
+ err = messageValidator.validateEnum(offset + codec.kStructHeaderSize + 120, FillLightMode);
if (err !== validator.validationError.NONE)
return err;
@@ -594,7 +626,7 @@
return validator.validationError.NONE;
};
- PhotoSettings.encodedSize = codec.kStructHeaderSize + 128;
+ PhotoSettings.encodedSize = codec.kStructHeaderSize + 144;
PhotoSettings.decode = function(decoder) {
var packed;
@@ -615,15 +647,17 @@
val.hasSaturation = (packed >> 1) & 1 ? true : false;
val.hasSharpness = (packed >> 2) & 1 ? true : false;
val.hasFocusDistance = (packed >> 3) & 1 ? true : false;
- val.hasZoom = (packed >> 4) & 1 ? true : false;
- val.hasTorch = (packed >> 5) & 1 ? true : false;
- val.torch = (packed >> 6) & 1 ? true : false;
- val.hasFillLightMode = (packed >> 7) & 1 ? true : false;
+ val.hasPan = (packed >> 4) & 1 ? true : false;
+ val.hasTilt = (packed >> 5) & 1 ? true : false;
+ val.hasZoom = (packed >> 6) & 1 ? true : false;
+ val.hasTorch = (packed >> 7) & 1 ? true : false;
packed = decoder.readUint8();
- val.hasWidth = (packed >> 0) & 1 ? true : false;
- val.hasHeight = (packed >> 1) & 1 ? true : false;
- val.hasRedEyeReduction = (packed >> 2) & 1 ? true : false;
- val.redEyeReduction = (packed >> 3) & 1 ? true : false;
+ val.torch = (packed >> 0) & 1 ? true : false;
+ val.hasFillLightMode = (packed >> 1) & 1 ? true : false;
+ val.hasWidth = (packed >> 2) & 1 ? true : false;
+ val.hasHeight = (packed >> 3) & 1 ? true : false;
+ val.hasRedEyeReduction = (packed >> 4) & 1 ? true : false;
+ val.redEyeReduction = (packed >> 5) & 1 ? true : false;
decoder.skip(1);
val.whiteBalanceMode = decoder.decodeStruct(codec.Int32);
val.exposureMode = decoder.decodeStruct(codec.Int32);
@@ -638,6 +672,8 @@
val.saturation = decoder.decodeStruct(codec.Double);
val.sharpness = decoder.decodeStruct(codec.Double);
val.focusDistance = decoder.decodeStruct(codec.Double);
+ val.pan = decoder.decodeStruct(codec.Double);
+ val.tilt = decoder.decodeStruct(codec.Double);
val.zoom = decoder.decodeStruct(codec.Double);
val.fillLightMode = decoder.decodeStruct(codec.Int32);
decoder.skip(1);
@@ -668,16 +704,18 @@
packed |= (val.hasSaturation & 1) << 1
packed |= (val.hasSharpness & 1) << 2
packed |= (val.hasFocusDistance & 1) << 3
- packed |= (val.hasZoom & 1) << 4
- packed |= (val.hasTorch & 1) << 5
- packed |= (val.torch & 1) << 6
- packed |= (val.hasFillLightMode & 1) << 7
+ packed |= (val.hasPan & 1) << 4
+ packed |= (val.hasTilt & 1) << 5
+ packed |= (val.hasZoom & 1) << 6
+ packed |= (val.hasTorch & 1) << 7
encoder.writeUint8(packed);
packed = 0;
- packed |= (val.hasWidth & 1) << 0
- packed |= (val.hasHeight & 1) << 1
- packed |= (val.hasRedEyeReduction & 1) << 2
- packed |= (val.redEyeReduction & 1) << 3
+ packed |= (val.torch & 1) << 0
+ packed |= (val.hasFillLightMode & 1) << 1
+ packed |= (val.hasWidth & 1) << 2
+ packed |= (val.hasHeight & 1) << 3
+ packed |= (val.hasRedEyeReduction & 1) << 4
+ packed |= (val.redEyeReduction & 1) << 5
encoder.writeUint8(packed);
encoder.skip(1);
encoder.encodeStruct(codec.Int32, val.whiteBalanceMode);
@@ -693,6 +731,8 @@
encoder.encodeStruct(codec.Double, val.saturation);
encoder.encodeStruct(codec.Double, val.sharpness);
encoder.encodeStruct(codec.Double, val.focusDistance);
+ encoder.encodeStruct(codec.Double, val.pan);
+ encoder.encodeStruct(codec.Double, val.tilt);
encoder.encodeStruct(codec.Double, val.zoom);
encoder.encodeStruct(codec.Int32, val.fillLightMode);
encoder.skip(1);
diff --git a/tests/wpt/web-platform-tests/resources/chromium/mock-imagecapture.js b/tests/wpt/web-platform-tests/resources/chromium/mock-imagecapture.js
index 329cbc3a761..eec414bd032 100644
--- a/tests/wpt/web-platform-tests/resources/chromium/mock-imagecapture.js
+++ b/tests/wpt/web-platform-tests/resources/chromium/mock-imagecapture.js
@@ -91,6 +91,20 @@ var ImageCaptureTest = (() => {
step: 1.0
},
+ pan: {
+ min: 0.0,
+ max: 10.0,
+ current: 5.0,
+ step: 2.0
+ },
+
+ tilt: {
+ min: 0.0,
+ max: 10.0,
+ current: 5.0,
+ step: 2.0
+ },
+
zoom: {
min: 0.0,
max: 10.0,
@@ -140,6 +154,10 @@ var ImageCaptureTest = (() => {
this.state_.state.height.current = settings.height;
if (settings.hasWidth)
this.state_.state.width.current = settings.width;
+ if (settings.hasPan)
+ this.state_.state.pan.current = settings.pan;
+ if (settings.hasTilt)
+ this.state_.state.tilt.current = settings.tilt;
if (settings.hasZoom)
this.state_.state.zoom.current = settings.zoom;
if (settings.hasFocusMode)
diff --git a/tests/wpt/web-platform-tests/shape-detection/idlharness.any.js b/tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js
index dab7de99d2d..8886e356baa 100644
--- a/tests/wpt/web-platform-tests/shape-detection/idlharness.any.js
+++ b/tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js
@@ -1,3 +1,4 @@
+// META: global=window,worker
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
// META: script=/shape-detection/resources/shapedetection-helpers.js
@@ -10,36 +11,45 @@ idl_test(
['shape-detection-api'],
['dom', 'geometry'],
async idl_array => {
- let faceDetectionTest, barcodeDetectionTest;
+ idl_array.add_objects({
+ FaceDetector: ['faceDetector'],
+ DetectedFace: ['detectedFace'],
+ BarcodeDetector: ['barcodeDetector'],
+ DetectedBarcode: ['detectedBarcode']
+ });
+
+ let faceDetectionTest;
try {
faceDetectionTest =
await initialize_detection_tests("FaceDetectionTest");
- barcodeDetectionTest =
- await initialize_detection_tests("BarcodeDetectionTest");
const img = createTestImage();
const theImageBitmap = await createImageBitmap(img);
self.faceDetector = new FaceDetector();
const faceDetectionResult = await faceDetector.detect(theImageBitmap);
self.detectedFace = faceDetectionResult[0];
+ } catch (e) {
+ // Surfaced in idlharness.js's test_object.
+ } finally {
+ faceDetectionTest && faceDetectionTest.reset();
+ }
+
+ let barcodeDetectionTest;
+ try {
+ barcodeDetectionTest =
+ await initialize_detection_tests("BarcodeDetectionTest");
+ const img = createTestImage();
+ const theImageBitmap = await createImageBitmap(img);
self.barcodeDetector = new BarcodeDetector();
const barcodeDetectionResult =
await barcodeDetector.detect(theImageBitmap);
self.detectedBarcode = barcodeDetectionResult[0];
} catch (e) {
- // Surfaced in idlharness.js's test_object below.
+ // Surface in idlharness.js's test_object.
} finally {
- faceDetectionTest.reset();
- barcodeDetectionTest.reset();
+ barcodeDetectionTest && barcodeDetectionTest.reset();
}
-
- idl_array.add_objects({
- FaceDetector: ['faceDetector'],
- DetectedFace: ['detectedFace'],
- BarcodeDetector: ['barcodeDetector'],
- DetectedBarcode: ['detectedBarcode']
- });
}
);
diff --git a/tests/wpt/web-platform-tests/shape-detection/resources/shapedetection-helpers.js b/tests/wpt/web-platform-tests/shape-detection/resources/shapedetection-helpers.js
index 91d36658aab..de1e681de9f 100644
--- a/tests/wpt/web-platform-tests/shape-detection/resources/shapedetection-helpers.js
+++ b/tests/wpt/web-platform-tests/shape-detection/resources/shapedetection-helpers.js
@@ -23,7 +23,7 @@ let loadChromiumResources = Promise.resolve().then(() => {
'/gen/mojo/public/mojom/base/big_buffer.mojom.js',
'/gen/skia/public/interfaces/image_info.mojom.js',
'/gen/skia/public/interfaces/bitmap.mojom.js',
- '/gen/ui/gfx/geometry/mojo/geometry.mojom.js',
+ '/gen/ui/gfx/geometry/mojom/geometry.mojom.js',
`${prefix}/barcodedetection.mojom.js`,
`${prefix}/barcodedetection_provider.mojom.js`,
`${prefix}/facedetection.mojom.js`,
diff --git a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js
index 022aca8c93e..f8c7f0f81c7 100644
--- a/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js
+++ b/tests/wpt/web-platform-tests/webxr/resources/webxr_util.js
@@ -137,7 +137,7 @@ let loadChromiumResources = Promise.resolve().then(() => {
'/gen/gpu/ipc/common/mailbox_holder.mojom.js',
'/gen/gpu/ipc/common/sync_token.mojom.js',
'/gen/ui/display/mojom/display.mojom.js',
- '/gen/ui/gfx/geometry/mojo/geometry.mojom.js',
+ '/gen/ui/gfx/geometry/mojom/geometry.mojom.js',
'/gen/ui/gfx/mojo/gpu_fence_handle.mojom.js',
'/gen/ui/gfx/mojo/transform.mojom.js',
'/gen/device/vr/public/mojom/vr_service.mojom.js',