diff options
author | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2020-03-31 08:18:29 +0000 |
---|---|---|
committer | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2020-03-31 11:02:10 +0000 |
commit | 1dbfe69c918db53a15d90a9432a2ac54b36190d2 (patch) | |
tree | c5f420b966caa39e148db1af251fa48df50fb99f | |
parent | f9e7c6b9dc65fc178ef5e7e516bd777ef3bb5052 (diff) | |
download | servo-1dbfe69c918db53a15d90a9432a2ac54b36190d2.tar.gz servo-1dbfe69c918db53a15d90a9432a2ac54b36190d2.zip |
Update web-platform-tests to revision 5721f7843f406054b8e02b0e33ff8e733830cc3d
124 files changed, 2800 insertions, 354 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini new file mode 100644 index 00000000000..baa9f1a7541 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-005.html] + [Miss clipped float] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/css-animations/animation-base-response-003.html.ini b/tests/wpt/metadata-layout-2020/css/css-animations/animation-base-response-003.html.ini new file mode 100644 index 00000000000..261190d6a21 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-animations/animation-base-response-003.html.ini @@ -0,0 +1,4 @@ +[animation-base-response-003.html] + [Identical elements are all responsive to font-size animation] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini new file mode 100644 index 00000000000..5c7a587b84e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini @@ -0,0 +1,2 @@ +[flex-flow-percentage-margins-no-available-space-assert.html] + expected: CRASH diff --git a/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-minimum-size-001.html.ini index d473487df51..c0483aa5ee9 100644 --- a/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-002.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flex-minimum-size-001.html.ini @@ -1,4 +1,4 @@ -[flex-minimum-size-002.html] +[flex-minimum-size-001.html] [.flexbox, .inline-flexbox 1] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-with-multi-column-property.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-with-multi-column-property.html.ini new file mode 100644 index 00000000000..1a5d16bcfb2 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexbox-with-multi-column-property.html.ini @@ -0,0 +1,2 @@ +[flexbox-with-multi-column-property.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-image.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-image.html.ini new file mode 100644 index 00000000000..598d542c576 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-image.html.ini @@ -0,0 +1,4 @@ +[flexitem-stretch-image.html] + [.flexbox 1] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini new file mode 100644 index 00000000000..e5010b774b5 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/flexitem-stretch-range.html.ini @@ -0,0 +1,2 @@ +[flexitem-stretch-range.html] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/negative-overflow.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/negative-overflow.html.ini new file mode 100644 index 00000000000..fd7a93bb1dc --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-flexbox/negative-overflow.html.ini @@ -0,0 +1,31 @@ +[negative-overflow.html] + [.flexbox 10] + expected: FAIL + + [.flexbox 11] + expected: FAIL + + [.flexbox 5] + expected: FAIL + + [.flexbox 6] + expected: FAIL + + [.flexbox 7] + expected: FAIL + + [.flexbox 1] + expected: FAIL + + [.flexbox 2] + expected: FAIL + + [.flexbox 3] + expected: FAIL + + [.flexbox 8] + expected: FAIL + + [.flexbox 9] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-fonts/generic-family-keywords-001.html.ini new file mode 100644 index 00000000000..77d5720a911 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-fonts/generic-family-keywords-001.html.ini @@ -0,0 +1,2 @@ +[generic-family-keywords-001.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/css/css-fonts/generic-family-keywords-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-fonts/generic-family-keywords-002.html.ini new file mode 100644 index 00000000000..74f8887074c --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-fonts/generic-family-keywords-002.html.ini @@ -0,0 +1,2 @@ +[generic-family-keywords-002.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini index e35a452a186..70a00a101f6 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini @@ -1,2 +1,2 @@ [no-transition-from-ua-to-blocking-stylesheet.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/transition-base-response-003.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/transition-base-response-003.html.ini new file mode 100644 index 00000000000..28a4e5febe6 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/transition-base-response-003.html.ini @@ -0,0 +1,4 @@ +[transition-base-response-003.html] + [Identical elements are all responsive to font-size transition] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini new file mode 100644 index 00000000000..4c79907309b --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini @@ -0,0 +1,4 @@ +[CaretPosition-001.html] + [Element at (400, 100)] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini index 23c61ede1a1..c131078eace 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini @@ -17,6 +17,3 @@ [test the top of layer] expected: FAIL - [test some point of the element: top left corner] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini new file mode 100644 index 00000000000..e181af5397f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementsFromPoint-invalid-cases.html.ini @@ -0,0 +1,4 @@ +[elementsFromPoint-invalid-cases.html] + [The root element is the last element returned for otherwise empty queries within the viewport] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/custom-elements/reactions/HTMLMediaElement.html.ini b/tests/wpt/metadata-layout-2020/custom-elements/reactions/HTMLMediaElement.html.ini new file mode 100644 index 00000000000..2ca05f57bb0 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/custom-elements/reactions/HTMLMediaElement.html.ini @@ -0,0 +1,2 @@ +[HTMLMediaElement.html] + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini index e21e03bd937..b6d82b3d857 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini @@ -312,27 +312,18 @@ [Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK] expected: NOTRUN - [<iframe>: separate response Content-Type: text/html */*] - expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] - expected: FAIL - - [<iframe>: separate response Content-Type: text/html;" text/plain] - expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] expected: FAIL [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html;" \\" text/plain] + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini index e90ead91b2e..d4ba399b762 100644 --- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata-layout-2020/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%2Cnosniff] - expected: FAIL - - [Content-Type-Options%3A%20nosniff] + [X-Content-Type-Options%3A%20'NosniFF'] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata-layout-2020/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-layout-2020/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-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini index 51f8272a6de..75d75b4cda2 100644 --- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_3.html] +[traverse_the_history_2.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini index 51f8272a6de..dc2e45516de 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_3.html] +[traverse_the_history_5.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/dom/idlharness.worker.js.ini b/tests/wpt/metadata-layout-2020/html/dom/idlharness.worker.js.ini new file mode 100644 index 00000000000..4b1a8fa9a3e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/html/dom/idlharness.worker.js.ini @@ -0,0 +1,490 @@ +[idlharness.worker.html] + [OffscreenCanvasRenderingContext2D interface: attribute globalAlpha] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: self must inherit property "onmessageerror" with the proper type] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation measureText(DOMString)] + expected: FAIL + + [ImageBitmapRenderingContext interface: existence and properties of interface object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingEnabled] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetX] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute shadowOffsetY] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute strokeStyle] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation fillText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface object length] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation clearRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation getLineDash()] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute globalCompositeOperation] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation getImageData(long, long, long, long)] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "onlanguagechange" with the proper type] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation fill(optional CanvasFillRule)] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)" with the proper type] + expected: FAIL + + [WorkerNavigator interface: attribute languages] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation isPointInPath(unrestricted double, unrestricted double, optional CanvasFillRule)] + expected: FAIL + + [SharedWorker interface: existence and properties of interface prototype object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation restore()] + expected: FAIL + + [SharedWorker interface: attribute port] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute shadowColor] + expected: FAIL + + [ImageBitmapRenderingContext interface: existence and properties of interface prototype object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation isPointInPath(Path2D, unrestricted double, unrestricted double, optional CanvasFillRule)] + expected: FAIL + + [Path2D interface: existence and properties of interface object] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: calling requestAnimationFrame(FrameRequestCallback) on self with too few arguments must throw TypeError] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation beginPath()] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute lineWidth] + expected: FAIL + + [WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions) on self with too few arguments must throw TypeError] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation fill(Path2D, optional CanvasFillRule)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute filter] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: attribute name] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvas interface: operation convertToBlob(optional ImageEncodeOptions)] + expected: FAIL + + [OffscreenCanvas interface: existence and properties of interface object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation translate(unrestricted double, unrestricted double)] + expected: FAIL + + [Path2D interface: operation moveTo(unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvas interface: existence and properties of interface prototype object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf\]\] method of interface prototype object - setting to a new value via __proto__ should throw a TypeError] + expected: FAIL + + [Path2D interface object name] + expected: FAIL + + [WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "onrejectionhandled" with the proper type] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: self must inherit property "cancelAnimationFrame(unsigned long)" with the proper type] + expected: FAIL + + [PromiseRejectionEvent interface: attribute promise] + expected: FAIL + + [SharedWorker interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation resetTransform()] + expected: FAIL + + [ImageBitmapRenderingContext interface: attribute canvas] + expected: FAIL + + [OffscreenCanvas interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute imageSmoothingQuality] + expected: FAIL + + [Path2D interface object length] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation lineTo(unrestricted double, unrestricted double)] + expected: FAIL + + [Path2D interface: existence and properties of interface prototype object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation clip(Path2D, optional CanvasFillRule)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [Path2D interface: operation quadraticCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute lineCap] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation scale(unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvas interface: attribute width] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf\]\] method of interface prototype object - setting to a new value via Reflect.setPrototypeOf should return false] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation stroke()] + expected: FAIL + + [WorkerGlobalScope interface: attribute onunhandledrejection] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute lineJoin] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [WebSocket interface: attribute extensions] + expected: FAIL + + [ImageBitmapRenderingContext interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: attribute onmessageerror] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute direction] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute shadowBlur] + expected: FAIL + + [Path2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: existence and properties of interface prototype object] + expected: FAIL + + [SharedWorker interface: attribute onerror] + expected: FAIL + + [OffscreenCanvas interface: attribute height] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [SharedWorker interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface object name] + expected: FAIL + + [WorkerNavigator interface: attribute onLine] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation drawImage(CanvasImageSource, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute miterLimit] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation strokeRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: existence and properties of interface object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation commit()] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation getTransform()] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "onoffline" with the proper type] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute lineDashOffset] + expected: FAIL + + [WorkerNavigator interface: self.navigator must inherit property "hardwareConcurrency" with the proper type] + expected: FAIL + + [ImageBitmapRenderingContext interface object name] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: self must inherit property "name" with the proper type] + expected: FAIL + + [OffscreenCanvas interface: operation getContext(OffscreenRenderingContextId, optional any)] + expected: FAIL + + [History interface: existence and properties of interface object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)] + expected: FAIL + + [SharedWorker interface object length] + expected: FAIL + + [Path2D interface: operation lineTo(unrestricted double, unrestricted double)] + expected: FAIL + + [WorkerGlobalScope interface: attribute onrejectionhandled] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation createImageData(ImageData)] + expected: FAIL + + [SharedWorker interface: existence and properties of interface object] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute font] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long, long, long, long, long)] + expected: FAIL + + [Path2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)] + expected: FAIL + + [WorkerNavigator interface: member taintEnabled] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: calling cancelAnimationFrame(unsigned long) on self with too few arguments must throw TypeError] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation moveTo(unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvas interface object length] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation strokeText(DOMString, unrestricted double, unrestricted double, optional unrestricted double)] + expected: FAIL + + [ImageBitmapRenderingContext interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [Path2D interface: operation closePath()] + expected: FAIL + + [WorkerGlobalScope interface: attribute onoffline] + expected: FAIL + + [Path2D interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation createLinearGradient(double, double, double, double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation rotate(unrestricted double)] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: internal [[SetPrototypeOf\]\] method of interface prototype object - setting to a new value via Object.setPrototypeOf should throw a TypeError] + expected: FAIL + + [CanvasPattern interface: operation setTransform(optional DOMMatrix2DInit)] + expected: FAIL + + [WorkerGlobalScope interface: attribute ononline] + expected: FAIL + + [ImageBitmap interface: operation close()] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation setLineDash(sequence<unrestricted double>)] + expected: FAIL + + [Path2D interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "ononline" with the proper type] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation createRadialGradient(double, double, double, double, double, double)] + expected: FAIL + + [WorkerGlobalScope interface: attribute onlanguagechange] + expected: FAIL + + [OffscreenCanvas interface object name] + expected: FAIL + + [WorkerGlobalScope interface: calling createImageBitmap(ImageBitmapSource, long, long, long, long, optional ImageBitmapOptions) on self with too few arguments must throw TypeError] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "onunhandledrejection" with the proper type] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation setTransform(optional DOMMatrix2DInit)] + expected: FAIL + + [Path2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute textBaseline] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation isPointInStroke(Path2D, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvas interface: operation transferToImageBitmap()] + expected: FAIL + + [WorkerNavigator interface: attribute hardwareConcurrency] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation closePath()] + expected: FAIL + + [Path2D interface: operation arcTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation ellipse(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, optional boolean)] + expected: FAIL + + [WorkerNavigator interface: self.navigator must not have property "taintEnabled"] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: self must inherit property "requestAnimationFrame(FrameRequestCallback)" with the proper type] + expected: FAIL + + [SharedWorker interface object name] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute textAlign] + expected: FAIL + + [Path2D interface: operation bezierCurveTo(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute fillStyle] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: attribute canvas] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation putImageData(ImageData, long, long)] + expected: FAIL + + [ImageBitmapRenderingContext interface object length] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: operation cancelAnimationFrame(unsigned long)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation save()] + expected: FAIL + + [DedicatedWorkerGlobalScope interface: operation requestAnimationFrame(FrameRequestCallback)] + expected: FAIL + + [Path2D interface: operation addPath(Path2D, optional DOMMatrix2DInit)] + expected: FAIL + + [WorkerGlobalScope interface: self must inherit property "createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)" with the proper type] + expected: FAIL + + [WebSocket interface: new WebSocket("ws://foo") must inherit property "extensions" with the proper type] + expected: FAIL + + [OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation clip(optional CanvasFillRule)] + expected: FAIL + + [WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type] + expected: FAIL + + [WorkerGlobalScope interface: operation createImageBitmap(ImageBitmapSource, optional ImageBitmapOptions)] + expected: FAIL + + [OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] + expected: FAIL + + [ImageBitmapRenderingContext interface: operation transferFromImageBitmap(ImageBitmap?)] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini deleted file mode 100644 index bcd2fd0eab8..00000000000 --- a/tests/wpt/metadata-layout-2020/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[077.html] - [ adding several types of scripts through the DOM and removing some of them confuses scheduler ] - expected: FAIL - diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini index b136f9c43cf..b085132aab1 100644 --- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini @@ -32,3 +32,6 @@ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42278 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 31225.\n\t[31225\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n] expected: FAIL + [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44042 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 36821.\n\t[36821\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 19404.\n\t[19404\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index b9eb4a767f7..8a196d02954 100644 --- a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -59,3 +59,6 @@ [X SNR (45.01863788337742 dB) is not greater than or equal to 85.58. Got 45.01863788337742.] expected: FAIL + [X Stitched sine-wave buffers at sample rate 44100 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.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t5.1025573125871170e-22\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5610863715308471e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31080.\n] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html.ini new file mode 100644 index 00000000000..709bec32e7d --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html.ini @@ -0,0 +1,13 @@ +[cancel-scheduled-values.html] + [< [cancel1\] 2 out of 11 assertions were failed.] + expected: FAIL + + [X output[3000:\]: Expected 3 for all values but found 5000 unexpected values: \n\tIndex\tActual\n\t[0\]\t0\n\t[1\]\t-0.001000046730041504\n\t[2\]\t-0.001999974250793457\n\t[3\]\t-0.003000020980834961\n\t...and 4996 more errors.] + expected: FAIL + + [# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.] + expected: FAIL + + [X output[2000:2999\]: Expected 1.5 for all values but found 1000 unexpected values: \n\tIndex\tActual\n\t[0\]\t1\n\t[1\]\t0.9989999532699585\n\t[2\]\t0.9980000257492065\n\t[3\]\t0.996999979019165\n\t...and 996 more errors.] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html.ini new file mode 100644 index 00000000000..2d91b4b6edd --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html.ini @@ -0,0 +1,4 @@ +[maxdelay-rounding.html] + [Executing "maxdelay-rounding"] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/webxr/ar-module/idlharness.https.window.js.ini b/tests/wpt/metadata-layout-2020/webxr/ar-module/idlharness.https.window.js.ini new file mode 100644 index 00000000000..b8c2535d84f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/webxr/ar-module/idlharness.https.window.js.ini @@ -0,0 +1,4 @@ +[idlharness.https.window.html] + [XRSession interface: attribute interactionMode] + expected: FAIL + diff --git a/tests/wpt/metadata-layout-2020/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata-layout-2020/workers/semantics/multiple-workers/005.html.ini index 268949ced5c..f584fce5df1 100644 --- a/tests/wpt/metadata-layout-2020/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata-layout-2020/workers/semantics/multiple-workers/005.html.ini @@ -1,4 +1,5 @@ [005.html] + expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 6880486989b..d697373667e 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -24018,7 +24018,7 @@ ] ], "worklet-animation-with-scroll-timeline-and-display-none.https.html": [ - "7dea4609b942c9b3fa00313ca9c1e4e56b83a537", + "ceb5f2d788306ef2d2fa5cab6ad76ffba9ec2d4b", [ null, [ @@ -24044,7 +24044,7 @@ ] ], "worklet-animation-with-scroll-timeline-root-scroller.https.html": [ - "be577dcc50f2cd462455bac1361bf4fab8b8a5ec", + "2b2a38396a2f7fa5ad63b6a8ac0d38630904ec07", [ null, [ @@ -24057,7 +24057,7 @@ ] ], "worklet-animation-with-scroll-timeline.https.html": [ - "7006f8f84a695924c1d341f2725c05b4676c10e1", + "35eaddcd8e906263c31792ab06c28daebd30b20b", [ null, [ @@ -133456,6 +133456,19 @@ {} ] ], + "flexbox-with-multi-column-property.html": [ + "5b11b0f9fd245a451e289229c4ed3e6e183dd40b", + [ + null, + [ + [ + "/css/css-flexbox/reference/flexbox-with-multi-column-property-ref.html", + "==" + ] + ], + {} + ] + ], "flexbox_absolute-atomic.html": [ "dae6b3e43ea71f3795508dd0ca4b243d4510c383", [ @@ -136095,6 +136108,19 @@ {} ] ], + "flexitem-stretch-range.html": [ + "43ecc81d52ddfbcf3d42ad2ed10577e851822636", + [ + null, + [ + [ + "/css/css-flexbox/reference/flexitem-stretch-range-ref.html", + "==" + ] + ], + {} + ] + ], "floated-flexitem.html": [ "e2050034f48cb51eb7eeb75acb97ed72d5755a2f", [ @@ -161413,6 +161439,32 @@ {} ] ], + "intrinsic-percent-replaced-007.html": [ + "f862bb9dc064089a3aa926d23c26a22c129a80cd", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "intrinsic-percent-replaced-008.html": [ + "d0099530c3aa3b5146647e9fd1ac9eb1327973ef", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "intrinsic-percent-replaced-dynamic-001.html": [ "1128ffa1759f26011c0639d8b5f498322c6396ac", [ @@ -161491,6 +161543,32 @@ {} ] ], + "intrinsic-percent-replaced-dynamic-007.html": [ + "72d3b23dca6e8444518e83aa060e509b23f9d1b3", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "intrinsic-percent-replaced-dynamic-008.html": [ + "9a3361a5e2926885e355c837981c0f4b535dc512", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "ortho-writing-mode-001.html": [ "9342802645faa7b57a12ce4b8ef17d755fcaface", [ @@ -239948,11 +240026,11 @@ [] ], "worklet-animation-with-scroll-timeline-ref.html": [ - "fe92232d9afa24f78e9cc7cc3bae341ba2a471bc", + "1316d69a42da9c508cbdd7e1477ef37da72a07a2", [] ], "worklet-animation-with-scroll-timeline-root-scroller-ref.html": [ - "5810e1738c1d5927223037e97a7a14a52c405a5e", + "917b044841c1d709e5fe938abda23fdd4b2966da", [] ] }, @@ -285049,6 +285127,10 @@ "ace792e456c12f40e52ae50d51d05fd6a449a628", [] ], + "flexbox-with-multi-column-property-ref.html": [ + "fbb8fcda3e10a4660b132da37a8894cecec317d0", + [] + ], "flexbox_quirks_body-ref.html": [ "164784fbd30859888b63069d9813eb5a104eb999", [] @@ -285057,6 +285139,10 @@ "0a8869a1452962b4895e60d8cebe987b55499666", [] ], + "flexitem-stretch-range-ref.html": [ + "e941a157be0f93da78dfdaedf2c2d701b1bf31f8", + [] + ], "floated-flexitem-ref.html": [ "ae0cd2e9608cfee74f8e269e588642229f5f8bf6", [] @@ -285143,6 +285229,10 @@ [] ], "support": { + "100x100-blue.png": [ + "f578ae72533c7746c8a4d2f6eef32a8137ee1f4b", + [] + ], "100x100-green.png": [ "25b76c3c6f216793a36b1f29287dafd993898c67", [] @@ -286091,6 +286181,10 @@ "51112efc7cab5b20a86bae9e4c2aebd68a5230b0", [] ], + "font-family-keywords.js": [ + "fc5b723e6875c8abe4905a23b8ab631db9934dfd", + [] + ], "font-weight-bolder-001-ref.png": [ "42675efe43e614e824ae500ce6cbd511a22f7a8e", [] @@ -325529,6 +325623,14 @@ "caf23f4daddd7e6c7118280f4a8c390e9819e92b", [] ], + "consumption-crossorigin-child.sub.html": [ + "c9f37ac8efd90e6055e8af6d4ef99248ed378883", + [] + ], + "consumption-sameorigin-child.html": [ + "9e421fc0f1ed098a500c9c64be7cd892dce3d2be", + [] + ], "propagation-crossorigin-child.sub.html": [ "3cdd6886da2a875e3a9ead3f68dda09df4c0c0da", [] @@ -327062,7 +327164,7 @@ [] ], "image-capture.idl": [ - "148bd7bb4cd0bd58162da962a5b230dc53116303", + "094f3f5cafe87a1f8dbbb004842715d8f552d0b4", [] ], "input-events.idl": [ @@ -327318,7 +327420,7 @@ [] ], "video-raf.idl": [ - "4584050093f71bafacb23c21f8fc3696cb4a4a1b", + "df4aa4c33decc5e94b7a31442df8d470a61f0f00", [] ], "visual-viewport.idl": [ @@ -327410,7 +327512,7 @@ [] ], "webxr-ar-module.idl": [ - "c5899d657b297261125902773e854c18bdf0df2a", + "2a525d2da89c215057407002b6ecdd08c8472f9c", [] ], "webxr-gamepads-module.idl": [ @@ -327603,7 +327705,7 @@ ] }, "lint.whitelist": [ - "7c282eefeabda7c3ce73e40f794123710219cf36", + "bd5a5d5c172161beac501f42bd50dcaafd552019", [] ], "loading": { @@ -344156,7 +344258,7 @@ ] }, "testcommon.js": [ - "811fe784c2635546c8bd1d6befc276d1cfbfad9a", + "1eb24f658c2348171b386f36dcc1b824ad236fbc", [] ], "timing-model": { @@ -367701,6 +367803,20 @@ ] }, "badging": { + "badge-error.https.html": [ + "3da5cf61e8332a22addccbb4ee664fb03a0c62e0", + [ + null, + {} + ] + ], + "badge-success.https.html": [ + "6a25962e7b978729c57bea2b563178ec3b434fb1", + [ + null, + {} + ] + ], "idlharness.https.any.js": [ "65688bb878cb9343f60f0c07a7fd8c95dedd99fc", [ @@ -378728,6 +378844,13 @@ {} ] ], + "animation-base-response-003.html": [ + "d6e6da7309c3c5b741f2f64266a547a3643d43b2", + [ + null, + {} + ] + ], "animation-before-initial-box-construction-001.html": [ "558c5ea18699f3856c7d34b976f920b1fd7fd5b0", [ @@ -381060,8 +381183,8 @@ {} ] ], - "flex-flow-auto-margins-no-available-space-assert.html": [ - "0b7799f20523f571927a28ef7a13a2b388ca1e09", + "flex-flow-percentage-margins-no-available-space-assert.html": [ + "086c4f5dd711fb45b2739dbf74794f81d8e88d95", [ null, {} @@ -381095,7 +381218,7 @@ {} ] ], - "flex-minimum-size-002.html": [ + "flex-minimum-size-001.html": [ "c2eea80ca5b79818f6b7a9a36ab1ff64826b5218", [ null, @@ -381130,6 +381253,13 @@ {} ] ], + "flexitem-stretch-image.html": [ + "dd0f8d4f76f1f3dbaf67629315c8e39d73f01df3", + [ + null, + {} + ] + ], "getcomputedstyle": { "flexbox_computedstyle_align-content-center.html": [ "cd7ed7ae2d7bc7f23a14d754a86cc2b63979a7bf", @@ -381720,6 +381850,20 @@ {} ] ], + "multiline-min-max.html": [ + "8a8bb0a539b42ccd5b8b90cecc6ea47ba19be0a4", + [ + null, + {} + ] + ], + "negative-overflow.html": [ + "82f5bdbc1569580d5c07b26e402da189287bd870", + [ + null, + {} + ] + ], "order_value.html": [ "ca9af99b939f77835933ccc76de5185b656f5977", [ @@ -381939,6 +382083,13 @@ {} ] ], + "percentage-heights-011.html": [ + "fda9c9b4f306adbfc8cd0eeb06f700ad2a5e60a9", + [ + null, + {} + ] + ], "percentage-padding-001.html": [ "8bba5d60f5cae1b93df70c1973a473f163020a51", [ @@ -382144,7 +382295,14 @@ ] ], "generic-family-keywords-001.html": [ - "aa9fb5a6a03bb330d35669f903a1ee7c0f138e18", + "bd39bac3ff8b3cda7e7eb60c75b0b5e6589f6110", + [ + null, + {} + ] + ], + "generic-family-keywords-002.html": [ + "7399860b03c6cd69dc48750b884221177112373b", [ null, {} @@ -387261,6 +387419,13 @@ } }, "css-page": { + "inheritance.html": [ + "565287bce50fa46fdc17cf438ff9eeb2862106a7", + [ + null, + {} + ] + ], "page-rule-declarations-000.html": [ "cbe53855a0a6869dfc49d5997bba7584b04dcbdd", [ @@ -387281,7 +387446,30 @@ null, {} ] - ] + ], + "parsing": { + "page-computed.html": [ + "0accba057487570e6a1a1e990c66cd72d0c17155", + [ + null, + {} + ] + ], + "page-invalid.html": [ + "7af7ccb9a30ddb5018e06cc230836e017e83c614", + [ + null, + {} + ] + ], + "page-valid.html": [ + "a4c31f5766ab89373511cc336e64d0de29224167", + [ + null, + {} + ] + ] + } }, "css-paint-api": { "idlharness.html": [ @@ -390138,6 +390326,31 @@ ] ] }, + "aspect-ratio": { + "parsing": { + "contain-intrinsic-size-computed.html": [ + "3cd562fb9ce10a0f5c82b4884046c91e2b9428b0", + [ + null, + {} + ] + ], + "contain-intrinsic-size-invalid.html": [ + "523ba7269c76777cd314edeb195b5465bbccef4d", + [ + null, + {} + ] + ], + "contain-intrinsic-size-valid.html": [ + "d9341d8c15b0a4f7fac268d24b08109484cafe20", + [ + null, + {} + ] + ] + } + }, "aspect-ratio-affects-container-width-when-height-changes.html": [ "0dbbb2f9404da7cfa89f2e75af3ca06cfbe4be7e", [ @@ -394561,6 +394774,13 @@ {} ] ], + "transition-base-response-003.html": [ + "045da5dbdebca628d10846ee96cb6d9ffede2cfe", + [ + null, + {} + ] + ], "transition-delay-001.html": [ "921525ea72d2e1e28d2321c1594085deaf2330f0", [ @@ -399042,6 +399262,13 @@ {} ] ], + "font-family-serialization-001.html": [ + "6c59b985c4fd5483b4c3f186e2917a20b428ee5b", + [ + null, + {} + ] + ], "font-shorthand-serialization.html": [ "29082f83eaf75a0831e5175b8b1217c4ecf4ebcd", [ @@ -426361,17 +426588,21 @@ ] ], "cache-storage-reporting-dedicated-worker.https.html": [ - "468861a9df60fc790e10515d3d01fd9fbd818266", + "9493a64b39c71a255f90c7d93c1a526d80afdebd", [ null, - {} + { + "timeout": "long" + } ] ], "cache-storage-reporting-document.https.html": [ - "a6a2c355cb2287c6792c13e5a29e5e654ea00d3f", + "d5ae757facfc5742a1bbb134dbd67bd6fbdeb4df", [ null, - {} + { + "timeout": "long" + } ] ], "cache-storage-reporting-service-worker.https.html": [ @@ -426384,10 +426615,12 @@ ] ], "cache-storage-reporting-shared-worker.https.html": [ - "2cbdb21ee12d2bd971284d2a54e42d4bbf2a041d", + "0b13de8657f93aeba0980831f98e378b753f4c83", [ null, - {} + { + "timeout": "long" + } ] ], "coep-frame-javascript.https.html": [ @@ -441134,8 +441367,8 @@ } }, "user-activation": { - "activation-api-click.tentative.html": [ - "2178863fbd2a3e101df69ef1a79e420327d7e96c", + "basic.html": [ + "fe8cebc1089e6a5b15eb24ec0e3a9b2eb284c796", [ null, { @@ -441143,8 +441376,8 @@ } ] ], - "activation-api-iframe-no-activate.tentative.html": [ - "46fd129459c5beb0cb10eb1df40d6764c3dbc98c", + "chained-setTimeout.tentative.html": [ + "133f137eed6f42c6160556eb08efc8290026f1ec", [ null, { @@ -441152,8 +441385,8 @@ } ] ], - "activation-api-iframe.tentative.html": [ - "91fac9b246c6752bf33b036f6cab7bb1b9022e6c", + "consumption-crossorigin.sub.tentative.html": [ + "01e4d35a43edca555e6ded7e8f35870299a76d44", [ null, { @@ -441161,8 +441394,8 @@ } ] ], - "activation-api-setTimeout.tentative.html": [ - "a8eba38c60eeef7396c2725d26ea3c6e6609be7a", + "consumption-sameorigin.tentative.html": [ + "140642c97dd9dc0e7f2a267a93684b4e869b9c93", [ null, { @@ -441186,6 +441419,24 @@ {} ] ], + "navigation-state-reset-crossorigin.sub.tentative.html": [ + "5839836a0d897d93e491c50f9d16c379161aa169", + [ + null, + { + "testdriver": true + } + ] + ], + "navigation-state-reset-sameorigin.tentative.html": [ + "144d7d4bf50a6f97279be54fb7a2d03b74263abd", + [ + null, + { + "testdriver": true + } + ] + ], "propagation-crossorigin.sub.tentative.html": [ "a2f578f53b92a3595d3dbba15460d28f1d4f0960", [ @@ -445665,7 +445916,7 @@ ] ], "frac-linethickness-002.html": [ - "6cb1b8b4351dbf1f7afcbee3986fa8c7aee71810", + "0a1d7efef6c6a41bc6601594ce52860aa96969e3", [ null, {} @@ -462895,6 +463146,20 @@ {} ] ], + "fcp-text-input.html": [ + "6a0cd86881fd8f7ebeee2d79dc173c063e8bc181", + [ + null, + {} + ] + ], + "fcp-typographic-pseudo.html": [ + "5ec62b7d59d40abc1ba44803c00737059d02f7a2", + [ + null, + {} + ] + ], "fcp-video-frame.html": [ "fff38cd2c811937cac38c605e94402eab1e4e977", [ @@ -462915,6 +463180,13 @@ null, {} ] + ], + "fcp-with-rtl.html": [ + "0915b0083da1e3c0dfcdda49e826442c13b50979", + [ + null, + {} + ] ] }, "first-contentful-bg-image.html": [ @@ -476581,7 +476853,7 @@ ] ], "idlharness.any.js": [ - "a7542f191c10ea7b42110b5fc80e7abf43174bb5", + "aa860d3dd16a712fb3e81b5393c5ca2f3dccfde7", [ "resource-timing/idlharness.any.html", { @@ -476593,8 +476865,13 @@ [ "script", "/resources/idlharness.js" + ], + [ + "timeout", + "long" ] - ] + ], + "timeout": "long" } ], [ @@ -476608,8 +476885,13 @@ [ "script", "/resources/idlharness.js" + ], + [ + "timeout", + "long" ] - ] + ], + "timeout": "long" } ] ], @@ -496471,7 +496753,7 @@ }, "DocumentOrShadowRoot": { "getAnimations.html": [ - "67addc05476fba7107fcc97b6783180093daf96f", + "9bcc042a8fed318be44d09fd2436cd97ba9c4086", [ null, {} @@ -496739,7 +497021,7 @@ ] ], "update-and-send-events-replacement.html": [ - "fced6ead657cc7a37110b156efe79b4d6cf63ccb", + "04389a9e2705e006686c53ac0897e0047cb61b90", [ null, {} @@ -498461,6 +498743,13 @@ {} ] ], + "cancel-scheduled-values.html": [ + "0174922fe8a1a9afc4c504a21482767f88a81aeb", + [ + null, + {} + ] + ], "event-insertion.html": [ "2eef895c8e8750bc25c45ba67c8c67c60e2f17bc", [ @@ -499105,6 +499394,13 @@ {} ] ], + "maxdelay-rounding.html": [ + "84d9f181389cb879fd97cbb2e3bb6740bcc89b2f", + [ + null, + {} + ] + ], "no-dezippering.html": [ "7857cf16aa0574bf1974186d327fd7dd9fb99403", [ diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini new file mode 100644 index 00000000000..baa9f1a7541 --- /dev/null +++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini @@ -0,0 +1,4 @@ +[hit-test-floats-005.html] + [Miss clipped float] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-animations/animation-base-response-003.html.ini b/tests/wpt/metadata/css/css-animations/animation-base-response-003.html.ini new file mode 100644 index 00000000000..261190d6a21 --- /dev/null +++ b/tests/wpt/metadata/css/css-animations/animation-base-response-003.html.ini @@ -0,0 +1,4 @@ +[animation-base-response-003.html] + [Identical elements are all responsive to font-size animation] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/flex-flow-auto-margins-no-available-space-assert.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-flow-auto-margins-no-available-space-assert.html.ini deleted file mode 100644 index f6d455bb56e..00000000000 --- a/tests/wpt/metadata/css/css-flexbox/flex-flow-auto-margins-no-available-space-assert.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[flex-flow-auto-margins-no-available-space-assert.html] - expected: CRASH diff --git a/tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini new file mode 100644 index 00000000000..5c7a587b84e --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html.ini @@ -0,0 +1,2 @@ +[flex-flow-percentage-margins-no-available-space-assert.html] + expected: CRASH diff --git a/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-001.html.ini b/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-001.html.ini new file mode 100644 index 00000000000..c0483aa5ee9 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/flex-minimum-size-001.html.ini @@ -0,0 +1,13 @@ +[flex-minimum-size-001.html] + [.flexbox, .inline-flexbox 1] + expected: FAIL + + [.flexbox, .inline-flexbox 6] + expected: FAIL + + [.flexbox, .inline-flexbox 5] + expected: FAIL + + [.flexbox, .inline-flexbox 4] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/flexbox-with-multi-column-property.html.ini b/tests/wpt/metadata/css/css-flexbox/flexbox-with-multi-column-property.html.ini new file mode 100644 index 00000000000..1a5d16bcfb2 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/flexbox-with-multi-column-property.html.ini @@ -0,0 +1,2 @@ +[flexbox-with-multi-column-property.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-image.html.ini b/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-image.html.ini new file mode 100644 index 00000000000..598d542c576 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-image.html.ini @@ -0,0 +1,4 @@ +[flexitem-stretch-image.html] + [.flexbox 1] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini b/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini new file mode 100644 index 00000000000..e5010b774b5 --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/flexitem-stretch-range.html.ini @@ -0,0 +1,2 @@ +[flexitem-stretch-range.html] + expected: FAIL diff --git a/tests/wpt/metadata/css/css-flexbox/negative-overflow.html.ini b/tests/wpt/metadata/css/css-flexbox/negative-overflow.html.ini new file mode 100644 index 00000000000..fd7a93bb1dc --- /dev/null +++ b/tests/wpt/metadata/css/css-flexbox/negative-overflow.html.ini @@ -0,0 +1,31 @@ +[negative-overflow.html] + [.flexbox 10] + expected: FAIL + + [.flexbox 11] + expected: FAIL + + [.flexbox 5] + expected: FAIL + + [.flexbox 6] + expected: FAIL + + [.flexbox 7] + expected: FAIL + + [.flexbox 1] + expected: FAIL + + [.flexbox 2] + expected: FAIL + + [.flexbox 3] + expected: FAIL + + [.flexbox 8] + expected: FAIL + + [.flexbox 9] + expected: FAIL + diff --git a/tests/wpt/metadata/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/metadata/css/css-fonts/generic-family-keywords-001.html.ini new file mode 100644 index 00000000000..77d5720a911 --- /dev/null +++ b/tests/wpt/metadata/css/css-fonts/generic-family-keywords-001.html.ini @@ -0,0 +1,2 @@ +[generic-family-keywords-001.html] + expected: ERROR diff --git a/tests/wpt/metadata/css/css-fonts/generic-family-keywords-002.html.ini b/tests/wpt/metadata/css/css-fonts/generic-family-keywords-002.html.ini new file mode 100644 index 00000000000..74f8887074c --- /dev/null +++ b/tests/wpt/metadata/css/css-fonts/generic-family-keywords-002.html.ini @@ -0,0 +1,2 @@ +[generic-family-keywords-002.html] + expected: ERROR diff --git a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini index e35a452a186..70a00a101f6 100644 --- a/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini +++ b/tests/wpt/metadata/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet.html.ini @@ -1,2 +1,2 @@ [no-transition-from-ua-to-blocking-stylesheet.html] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/css/css-transitions/transition-base-response-003.html.ini b/tests/wpt/metadata/css/css-transitions/transition-base-response-003.html.ini new file mode 100644 index 00000000000..28a4e5febe6 --- /dev/null +++ b/tests/wpt/metadata/css/css-transitions/transition-base-response-003.html.ini @@ -0,0 +1,4 @@ +[transition-base-response-003.html] + [Identical elements are all responsive to font-size transition] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini new file mode 100644 index 00000000000..4c79907309b --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini @@ -0,0 +1,4 @@ +[CaretPosition-001.html] + [Element at (400, 100)] + expected: FAIL + diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini index 5733d536fd3..85e94926cb3 100644 --- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini @@ -21,6 +21,3 @@ [test the top of layer] expected: FAIL - [test some point of the element: top left corner] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini new file mode 100644 index 00000000000..e181af5397f --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini @@ -0,0 +1,4 @@ +[elementsFromPoint-invalid-cases.html] + [The root element is the last element returned for otherwise empty queries within the viewport] + expected: FAIL + diff --git a/tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini b/tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini new file mode 100644 index 00000000000..2ca05f57bb0 --- /dev/null +++ b/tests/wpt/metadata/custom-elements/reactions/HTMLMediaElement.html.ini @@ -0,0 +1,2 @@ +[HTMLMediaElement.html] + 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 2a8d9b969e8..564c771e1b5 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,27 +312,18 @@ [fetch(): separate response Content-Type: text/plain ] expected: NOTRUN - [<iframe>: separate response Content-Type: text/html */*] - expected: FAIL - [<iframe>: combined response Content-Type: */* text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*] - expected: FAIL - - [<iframe>: separate response Content-Type: text/html;" text/plain] - expected: FAIL - [<iframe>: separate response Content-Type: text/html;x=" text/plain] expected: FAIL [<iframe>: combined response Content-Type: text/html;" \\" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/html;" \\" text/plain] + [<iframe>: combined response Content-Type: text/html;" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html */*;charset=gbk] 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 1c62485a210..aa6eb8f6085 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%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] expected: FAIL - [X-Content-Type-Options%3A%20%2Cnosniff] - expected: FAIL - - [Content-Type-Options%3A%20nosniff] + [X-Content-Type-Options%3A%20'NosniFF'] 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/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 new file mode 100644 index 00000000000..dc2e45516de --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_5.html] + [Multiple history traversals, last would be aborted] + expected: FAIL + diff --git a/tests/wpt/metadata/html/dom/idlharness.worker.js.ini b/tests/wpt/metadata/html/dom/idlharness.worker.js.ini index 2ee6b8974f7..c90719b22b7 100644 --- a/tests/wpt/metadata/html/dom/idlharness.worker.js.ini +++ b/tests/wpt/metadata/html/dom/idlharness.worker.js.ini @@ -131,9 +131,6 @@ [OffscreenCanvasRenderingContext2D interface: operation stroke(Path2D)] expected: FAIL - [ImageBitmap interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - [Path2D interface object name] expected: FAIL @@ -212,9 +209,6 @@ [OffscreenCanvasRenderingContext2D interface: operation rect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] expected: FAIL - [ImageBitmap interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - [WebSocket interface: attribute extensions] expected: FAIL @@ -248,9 +242,6 @@ [OffscreenCanvas interface: attribute height] expected: FAIL - [ImageBitmap interface object name] - expected: FAIL - [OffscreenCanvasRenderingContext2D interface: operation setTransform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] expected: FAIL @@ -302,9 +293,6 @@ [OffscreenCanvasRenderingContext2D interface: operation createImageData(long, long)] expected: FAIL - [ImageBitmap interface: existence and properties of interface prototype object] - expected: FAIL - [SharedWorker interface object length] expected: FAIL @@ -353,9 +341,6 @@ [OffscreenCanvasRenderingContext2D interface: operation createPattern(CanvasImageSource, DOMString)] expected: FAIL - [ImageBitmap interface: existence and properties of interface object] - expected: FAIL - [OffscreenCanvasRenderingContext2D interface: operation transform(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double)] expected: FAIL @@ -425,9 +410,6 @@ [OffscreenCanvasRenderingContext2D interface: operation setLineDash([object Object\])] expected: FAIL - [ImageBitmap interface: attribute width] - expected: FAIL - [SharedWorker interface: attribute port] expected: FAIL @@ -494,15 +476,9 @@ [OffscreenCanvas interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - [ImageBitmap interface: attribute height] - expected: FAIL - [WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type] expected: FAIL - [ImageBitmap interface object length] - expected: FAIL - [OffscreenCanvasRenderingContext2D interface: operation fillRect(unrestricted double, unrestricted double, unrestricted double, unrestricted double)] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini deleted file mode 100644 index bcd2fd0eab8..00000000000 --- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/execution-timing/077.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[077.html] - [ adding several types of scripts through the DOM and removing some of them confuses scheduler ] - expected: FAIL - diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini index 2876deaba63..6db75a34235 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini @@ -101,3 +101,6 @@ [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42278 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 31225.\n\t[31225\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n] expected: FAIL + [X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44042 more errors.\n\tMax AbsError of 1.9999977350234985e+0 at index of 36821.\n\t[36821\]\t9.9999773502349854e-1\t-1.0000000000000000e+0\t1.9999977350234985e+0\t1.9999977350234985e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 19404.\n\t[19404\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n] + 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 769ea75a0f0..4dbc16848f7 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 @@ -290,3 +290,6 @@ [X SNR (45.01863788337742 dB) is not greater than or equal to 85.58. Got 45.01863788337742.] expected: FAIL + [X Stitched sine-wave buffers at sample rate 44100 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.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[31080\]\t5.1025573125871170e-22\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5610863715308471e-41\t6.1397600173950195e-1\t6.1397600173950195e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\tMax AbsError of 6.1397600173950195e-1 at index of 31081.\n\tMax RelError of 1.0000000000000000e+0 at index of 31080.\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html.ini new file mode 100644 index 00000000000..709bec32e7d --- /dev/null +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html.ini @@ -0,0 +1,13 @@ +[cancel-scheduled-values.html] + [< [cancel1\] 2 out of 11 assertions were failed.] + expected: FAIL + + [X output[3000:\]: Expected 3 for all values but found 5000 unexpected values: \n\tIndex\tActual\n\t[0\]\t0\n\t[1\]\t-0.001000046730041504\n\t[2\]\t-0.001999974250793457\n\t[3\]\t-0.003000020980834961\n\t...and 4996 more errors.] + expected: FAIL + + [# AUDIT TASK RUNNER FINISHED: 1 out of 1 tasks were failed.] + expected: FAIL + + [X output[2000:2999\]: Expected 1.5 for all values but found 1000 unexpected values: \n\tIndex\tActual\n\t[0\]\t1\n\t[1\]\t0.9989999532699585\n\t[2\]\t0.9980000257492065\n\t[3\]\t0.996999979019165\n\t...and 996 more errors.] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html.ini new file mode 100644 index 00000000000..2d91b4b6edd --- /dev/null +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html.ini @@ -0,0 +1,4 @@ +[maxdelay-rounding.html] + [Executing "maxdelay-rounding"] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/ar-module/idlharness.https.window.js.ini b/tests/wpt/metadata/webxr/ar-module/idlharness.https.window.js.ini new file mode 100644 index 00000000000..b8c2535d84f --- /dev/null +++ b/tests/wpt/metadata/webxr/ar-module/idlharness.https.window.js.ini @@ -0,0 +1,4 @@ +[idlharness.https.window.html] + [XRSession interface: attribute interactionMode] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index 268949ced5c..f584fce5df1 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,4 +1,5 @@ [005.html] + expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html index 7dea4609b94..ceb5f2d7883 100644 --- a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html +++ b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-and-display-none.https.html @@ -21,7 +21,13 @@ background-color: red; } + /* Hide scrollbars to avoid unnecessary visual issues related to them */ + #scroller::-webkit-scrollbar { + display: none; + } + #scroller { + scrollbar-width: none; overflow: auto; height: 100px; width: 100px; @@ -75,4 +81,4 @@ }); }); }); -</script> +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-ref.html b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-ref.html index fe92232d9af..1316d69a42d 100644 --- a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-ref.html +++ b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-ref.html @@ -16,7 +16,13 @@ background-color: red; } + /* Hide scrollbars to avoid unnecessary visual issues related to them */ + #scroller::-webkit-scrollbar { + display: none; + } + #scroller { + scrollbar-width: none; overflow: auto; height: 100px; width: 100px; diff --git a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller-ref.html b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller-ref.html index 5810e1738c1..917b044841c 100644 --- a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller-ref.html +++ b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller-ref.html @@ -1,7 +1,13 @@ <!DOCTYPE html> <title>Reference for Scroll timeline with WorkletAnimation using the root scroller</title> <style> + /* Hide scrollbars to avoid unnecessary visual issues related to them */ + html::-webkit-scrollbar { + display: none; + } + html { + scrollbar-width: none; min-height: 100%; min-width: 100%; padding-bottom: 100px; @@ -34,4 +40,4 @@ const maxScroll = scroller.scrollHeight - scroller.clientHeight; scroller.scrollTop = 0.5 * maxScroll; }); -</script> +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html index be577dcc50f..2b2a38396a2 100644 --- a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html +++ b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline-root-scroller.https.html @@ -1,7 +1,8 @@ <html class="reftest-wait"> <title>Scroll timeline with WorkletAnimation using the root scroller</title> <link rel="help" href="https://drafts.css-houdini.org/css-animationworklet/"> -<meta name="assert" content="Worklet animation correctly updates values when using the root scroller as the source for the ScrollTimeline"> +<meta name="assert" + content="Worklet animation correctly updates values when using the root scroller as the source for the ScrollTimeline"> <link rel="match" href="worklet-animation-with-scroll-timeline-root-scroller-ref.html"> <script src="/web-animations/testcommon.js"></script> @@ -9,7 +10,13 @@ <script src="common.js"></script> <style> + /* Hide scrollbars to avoid unnecessary visual issues related to them */ + html::-webkit-scrollbar { + display: none; + } + html { + scrollbar-width: none; min-height: 100%; min-width: 100%; padding-bottom: 100px; @@ -33,15 +40,15 @@ <div id="covered"></div> <script> - registerPassthroughAnimator().then(()=>{ + registerPassthroughAnimator().then(() => { const box = document.getElementById('box'); const effect = new KeyframeEffect(box, [ - {transform: 'translateY(0)', opacity: 1}, - {transform: 'translateY(200px)', opacity: 0} + { transform: 'translateY(0)', opacity: 1 }, + { transform: 'translateY(200px)', opacity: 0 } ], { - duration: 1000, - } + duration: 1000, + } ); const scroller = document.scrollingElement; diff --git a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline.https.html b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline.https.html index 7006f8f84a6..35eaddcd8e9 100644 --- a/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline.https.html +++ b/tests/wpt/web-platform-tests/animation-worklet/worklet-animation-with-scroll-timeline.https.html @@ -21,7 +21,13 @@ background-color: red; } + /* Hide scrollbars to avoid unnecessary visual issues related to them */ + #scroller::-webkit-scrollbar { + display: none; + } + #scroller { + scrollbar-width: none; overflow: auto; height: 100px; width: 100px; @@ -45,11 +51,11 @@ const box = document.getElementById('box'); const effect = new KeyframeEffect(box, [ - { transform: 'translateY(0)', opacity: 1}, - { transform: 'translateY(200px)', opacity: 0} + { transform: 'translateY(0)', opacity: 1 }, + { transform: 'translateY(200px)', opacity: 0 } ], { - duration: 1000, - } + duration: 1000, + } ); const scroller = document.getElementById('scroller'); @@ -65,4 +71,4 @@ takeScreenshot(); }); }); -</script> +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/badging/badge-error.https.html b/tests/wpt/web-platform-tests/badging/badge-error.https.html new file mode 100644 index 00000000000..3da5cf61e83 --- /dev/null +++ b/tests/wpt/web-platform-tests/badging/badge-error.https.html @@ -0,0 +1,36 @@ +<!DOCTYPE html> +<title>Badging: Unsupported values</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge(-1)); +}, "Negative value not allowed"); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge( + Number.MAX_SAFE_INTEGER + 1)); +}, "Value too large (2^53)"); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge(Infinity)); +}, "Positive infinity"); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge(-Infinity)); +}, "Negative infinity"); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge(NaN)); +}, "NaN"); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge("Foo")); +}, 'Cannot convert to long: "Foo"'); + +promise_test(t => { + return promise_rejects_js(t, TypeError, navigator.setAppBadge({})); +}, "Cannot convert to long: object"); + +</script> diff --git a/tests/wpt/web-platform-tests/badging/badge-success.https.html b/tests/wpt/web-platform-tests/badging/badge-success.https.html new file mode 100644 index 00000000000..6a25962e7b9 --- /dev/null +++ b/tests/wpt/web-platform-tests/badging/badge-success.https.html @@ -0,0 +1,62 @@ +<!DOCTYPE html> +<title>Badging: Supported values</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script> + +promise_test(async t => { + const result = await navigator.setAppBadge(); + assert_equals(result, undefined); +}, "No parameter should show a flag with no numeric value."); + +promise_test(async t => { + const result = await navigator.setAppBadge(undefined); + assert_equals(result, undefined); +}, "undefined should show a flag with no numeric value."); + +promise_test(async t => { + const result = await navigator.setAppBadge(1); + assert_equals(result, undefined); +}, "An integer value of 3 should show the badge vale 3."); + +promise_test(async t => { + const result = await navigator.setAppBadge(10.6); + assert_equals(result, undefined); +}, "Non-whole number should round down to nearest integer (10)."); + +promise_test(async t => { + const result = await navigator.setAppBadge(Number.MAX_SAFE_INTEGER); + assert_equals(result, undefined); +}, "Maximum allowed value (2^53 - 1) should display saturated value: '99+'."); + +promise_test(async t => { + const result = await navigator.setAppBadge(0); + assert_equals(result, undefined); +}, "Set to zero should clear the badge."); + +promise_test(async t => { + const result = await navigator.clearAppBadge(); + assert_equals(result, undefined); +}, "Should clear the badge."); + +promise_test(async t => { + const result = await navigator.setAppBadge(null); + assert_equals(result, undefined); +}, "Setting to null should clear the badge."); + +promise_test(async t => { + const result = await navigator.setAppBadge(false); + assert_equals(result, undefined); +}, "Setting to false should clear the badge."); + +promise_test(async t => { + const result = await navigator.setAppBadge(true); + assert_equals(result, undefined); +}, "Setting to true should display a value of 1."); + +promise_test(async t => { + const result = await navigator.setAppBadge("3"); + assert_equals(result, undefined); +}, "Setting to the string '3' should display a value of 3."); + +</script> diff --git a/tests/wpt/web-platform-tests/css/css-animations/animation-base-response-003.html b/tests/wpt/web-platform-tests/css/css-animations/animation-base-response-003.html new file mode 100644 index 00000000000..d6e6da7309c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-animations/animation-base-response-003.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<title>Tests that identical elements in the base style responds to font-size animation</title> +<link rel="help" href="https://drafts.csswg.org/css-animations/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + @keyframes font_size_animation { + from { font-size: 10px; } + to { font-size: 20px; } + } + div { + font-size: 1px; + min-width: 1em; + animation: font_size_animation steps(2, end) 1000s -500s; + } +</style> +<div></div> +<div></div> +<div></div> +<script> +test(() => { + let divs = document.querySelectorAll('div'); + for (let div of divs) + assert_equals(getComputedStyle(div).getPropertyValue('min-width'), '15px'); +}, 'Identical elements are all responsive to font-size animation'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-auto-margins-no-available-space-assert.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html index 0b7799f2052..086c4f5dd71 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-auto-margins-no-available-space-assert.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-flow-percentage-margins-no-available-space-assert.html @@ -1,7 +1,7 @@ <!DOCTYPE html> -<title>CSS Flexbox: flex-flow auto margin with no available space</title> +<title>CSS Flexbox: flex-flow percentage margin with no available space</title> <link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#flex-shrink-property"> -<link rel="help" href="https://crbug.com/380201"> +<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=380201"> <meta name="assert" content="This test checks that a flexbox doesn't shrink below border/padding when stretching children with no available space."> <style> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-002.html b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-001.html index c2eea80ca5b..c2eea80ca5b 100644 --- a/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-002.html +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flex-minimum-size-001.html diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-with-multi-column-property.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-with-multi-column-property.html new file mode 100644 index 00000000000..5b11b0f9fd2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexbox-with-multi-column-property.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<title>CSS Flexbox: column-* properties are ignored.</title> +<link rel="stylesheet" href="support/flexbox.css"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers"> +<link rel="help" href="https://drafts.csswg.org/css-multicol-1/#propdef-column-count"> +<link rel="match" href="reference/flexbox-with-multi-column-property-ref.html"> +<meta name="assert" content="This test ensures that column-* properties (in the Multicol module) have no effect on a flex container."/> +<style> +.flexbox, .inline-flexbox { + column-count: 2; + column-gap: 100px; + width: 20em; +} +</style> +<div class="flexbox"> +AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC DDDDDDDDDD +</div> + +<div class="inline-flexbox"> +AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC DDDDDDDDDD +</div> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html new file mode 100644 index 00000000000..dd0f8d4f76f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-image.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<title>CSS Flexbox: image stretch</title> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-property"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto"> +<link href="support/flexbox.css" rel="stylesheet"> +<meta name="assert" content="This test ensures that flexbox stretches a given image +to fit the size of flexitem according to flex values."> +<style> +.flexbox { + width: 600px; + display: flex; + background-color: #aaa; + position: relative; + min-height: 10px; +} +.flexbox > * { + margin: 0; + border: 0; + padding: 0; + min-width: 0; +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<body onload="checkLayout('.flexbox')"> +<div id=log></div> + +<div class="flexbox"> + <img data-expected-display="block" data-expected-width="345" style="flex: 1 0 auto;" src="support/100x100-blue.png"> + <img data-expected-display="block" data-expected-width="255" data-expected-height="100" style="flex: 1 0 auto;" src="support/10x10-green.png"> +</div> + +</body> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-range.html b/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-range.html new file mode 100644 index 00000000000..43ecc81d52d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/flexitem-stretch-range.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<html> +<title>CSS Flexbox: range stretch</title> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-property"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto"> +<link rel="match" href="reference/flexitem-stretch-range-ref.html"> +<link href="support/flexbox.css" rel="stylesheet"> +<meta name="assert" content="This test ensures that the thumb should be centered vertically +when stretching a range input."> +<body> +<p>When stretching a range input, the thumb should be centered vertically.</p> +<div class="flexbox" style="height: 200px;"> + <input type="range" style="flex: 1; margin: 0;"> +</div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/multiline-min-max.html b/tests/wpt/web-platform-tests/css/css-flexbox/multiline-min-max.html new file mode 100644 index 00000000000..8a8bb0a539b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/multiline-min-max.html @@ -0,0 +1,151 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Flexbox: multiline flexbox and line breaks.</title> +<link rel="stylesheet" href="support/flexbox.css" > +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#algo-main-item"> +<meta name="assert" content="This test ensures that multiline flexbox uses min/max constraints when finding line breaks."/> +<style> +.flexbox { + width: 600px; + background-color: grey; + border: 5px solid black; + height: 20px; + position: relative; +} +.flexbox > div { + height: 10px; +} +.children-border-box > div { + box-sizing: border-box; +} + +.flexbox :nth-child(1) { + background-color: blue; +} +.flexbox :nth-child(2) { + background-color: yellow; +} +.flexbox :nth-child(3) { + background-color: salmon; +} +.flexbox :nth-child(4) { + background-color: lime; +} +.flexbox :nth-child(5) { + background-color: red; +} +.flexbox :nth-child(6) { + background-color: orange; +} +.flexbox :nth-child(7) { + background-color: purple; +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +</head> +<body onload="checkLayout('.flexbox')"> +<div id=log></div> + +<div class="flexbox wrap"> + <div class="flex-one" style="min-width: 400px" data-expected-width="400" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="400" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap"> + <div class="flex-one" style="min-width: 400px; padding-left: 10px;" data-expected-width="500" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="100" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap"> + <div class="flex-one" style="min-width: 400px; border-left: 10px solid red;" data-expected-width="500" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="100" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap"> + <div class="flex-one" style="min-width: 400px; margin-left: 10px;" data-expected-width="490" data-offset-x="10" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="100" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px;" data-expected-width="300" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="300" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="400" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> +</div> + +<div class="flexbox wrap"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px; padding-left: 10px;" data-expected-width="310" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="310" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="455" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="600" data-offset-x="0" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px; border-left: 10px solid red;" data-expected-width="310" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="310" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="455" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="600" data-offset-x="0" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px; margin-left: 10px;" data-expected-width="300" data-offset-x="10" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="310" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="455" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="600" data-offset-x="0" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap children-border-box"> + <div class="flex-one" style="min-width: 400px; padding-left: 10px;" data-expected-width="400" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="400" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap children-border-box"> + <div class="flex-one" style="min-width: 400px; border-left: 10px solid red;" data-expected-width="400" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="400" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap children-border-box"> + <div class="flex-one" style="min-width: 400px; margin-left: 10px;" data-expected-width="490" data-offset-x="10" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="0" data-offset-y="10"></div> + <div class="flex-none" style="width: 100px" data-expected-width="100" data-offset-x="100" data-offset-y="10"></div> +</div> + +<div class="flexbox wrap children-border-box"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px; padding-left: 10px;" data-expected-width="300" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="300" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="400" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> +</div> + +<div class="flexbox wrap children-border-box"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px; border-left: 10px solid red;" data-expected-width="300" data-offset-x="0" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="300" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="400" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="100" data-offset-x="500" data-offset-y="0"></div> +</div> + +<div class="flexbox wrap children-border-box"> + <div style="flex: 1 1 600px; flex: 1 1 600px; max-width: 300px; margin-left: 10px;" data-expected-width="300" data-offset-x="10" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="310" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="145" data-offset-x="455" data-offset-y="0"></div> + <div class="flex-one-one-auto" style="width: 100px" data-expected-width="600" data-offset-x="0" data-offset-y="10"></div> +</div> + +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/negative-overflow.html b/tests/wpt/web-platform-tests/css/css-flexbox/negative-overflow.html new file mode 100644 index 00000000000..82f5bdbc156 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/negative-overflow.html @@ -0,0 +1,98 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Flexbox: align-items: center/flex-end and bottom padding.</title> +<link rel="stylesheet" href="support/flexbox.css" > +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#align-items-property"> +<meta name="assert" content="This test ensures that flexbox containers with 'align-items: center|flex-end' and 'overflow: auto/scroll' have no extra bottom padding."/> +<style> +.flexbox { + overflow: auto; + height: 50px; + width: 50px; + background-color: red; + position: relative; +} + +.vertical-padding { + padding-top: 5px; + padding-bottom: 10px; + background-color: lime; +} + +.vertical-border { + border-top: 2px solid black; + border-bottom: 8px solid lightblue; +} + +.flexbox > div { + width: 100%; + height: 100px; + background-color: green; +} +</style> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<script> +window.onload = function() { + checkLayout('.flexbox'); + + // Make failures more obvious by showing the red background that should have been clipped. + Array.prototype.forEach.call(document.querySelectorAll(".flexbox"), function(element) { + element.scrollTop = 1000; + }); +}; +</script> +</head> +<body> +<div id=log></div> + +<div class="flexbox align-items-flex-end" data-expected-scroll-height="50"> + <div></div> +</div> + +<div class="flexbox align-items-flex-end" data-expected-scroll-height="150"> + <div></div> + <div style="position: absolute; left: 0; top: 50px;"></div> +</div> + +<div class="flexbox align-items-center" data-expected-scroll-height="75"> + <div></div> +</div> + +<div class="flexbox" data-expected-scroll-height="100"> + <div></div> +</div> + +<div class="flexbox wrap-reverse" data-expected-scroll-height="50"> + <div></div> + <div></div> +</div> + +<div class="flexbox align-items-flex-end vertical-padding" data-expected-scroll-height="65"> + <div></div> +</div> + +<div class="flexbox align-items-flex-end vertical-padding vertical-border" data-expected-scroll-height="65"> + <div></div> +</div> + +<div class="flexbox align-items-center vertical-padding" data-expected-scroll-height="90"> + <div></div> +</div> + +<div class="flexbox vertical-padding" data-expected-scroll-height="115"> + <div></div> +</div> + +<div class="flexbox vertical-padding vertical-border" data-expected-scroll-height="115"> + <div></div> +</div> + +<div class="flexbox wrap-reverse vertical-padding" data-expected-scroll-height="65"> + <div></div> + <div></div> +</div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/percentage-heights-011.html b/tests/wpt/web-platform-tests/css/css-flexbox/percentage-heights-011.html new file mode 100644 index 00000000000..fda9c9b4f30 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/percentage-heights-011.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html> +<head> +<title>CSS Flexbox: percentage height of flex item</title> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-property"> +<link href="support/flexbox.css" rel="stylesheet"> +<meta name="assert" content="This test checks that the height of flexitems work properly +with percentage value and 'overflow-y' auto."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/check-layout-th.js"></script> +<script> +window.onload = function() +{ + var outer = document.getElementById("outer"); + outer.style.height = "300px"; + outer.offsetLeft; + outer.style.height = "100px"; + checkLayout('#outer'); +}; +</script> +</head> +<body> +<div id=log></div> +<div id="outer" data-expected-height="100"> + <div class="flexbox" data-expected-height="100" style="height: 100%"> + <div class="flex-one" data-expected-height="100" style="overflow-y: auto; height: 100%"> + <div data-expected-height="100" style="height: 100%"> + <div data-expected-height="100" style="width: 100px; height: 100px; background-color: green"></div> + </div> + </div> + </div> +</div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-with-multi-column-property-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-with-multi-column-property-ref.html new file mode 100644 index 00000000000..fbb8fcda3e1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexbox-with-multi-column-property-ref.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<link href="resources/flexbox.css" rel="stylesheet"> +<style> +.flexbox, .inline-flexbox { + width: 20em; + font-kerning: none; +} +</style> +<div class="flexbox"> +AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC DDDDDDDDDD +</div> + +<div class="inline-flexbox"> +AAAAAAAAAA BBBBBBBBBB CCCCCCCCCC DDDDDDDDDD +</div> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html new file mode 100644 index 00000000000..e941a157be0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/reference/flexitem-stretch-range-ref.html @@ -0,0 +1,9 @@ +<!DOCTYPE html> +<html> +<body> +<p>When stretching a range input, the thumb should be centered vertically.</p> +<div style="height: 200px;"> + <input type="range" style="width: 100%; height: 100%; margin: 0;"> +</div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-flexbox/support/100x100-blue.png b/tests/wpt/web-platform-tests/css/css-flexbox/support/100x100-blue.png Binary files differnew file mode 100644 index 00000000000..f578ae72533 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-flexbox/support/100x100-blue.png diff --git a/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-001.html b/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-001.html index aa9fb5a6a03..bd39bac3ff8 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-001.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-001.html @@ -1,36 +1,56 @@ <!DOCTYPE html> -<title>CSS Test: Test generic family keywords do not match @font-face</title> +<title>CSS Test: Test generic family keywords matching for @font-face</title> <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#family-name-syntax"> <link rel="author" title="Koji Ishii" href="mailto:kojii@chromium.com"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> +<script src="/css/css-fonts/support/font-family-keywords.js"></script> +<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/> <style> div { font-size: 10px; } +#ahem { + font-family: Ahem; +} </style> -<template id="fonts"> +<body> + <div><span id="ahem">00000</span></div> + <div><span id="test">00000</span></div> +<script> + setup({ explicit_done: true }); + window.addEventListener("load", () => { document.fonts.ready.then(runTests); }); + function runTests() { + let ahem = document.getElementById('ahem'); + let ahem_expected_width = ahem.offsetWidth; + kGenericFontFamilyKeywords.forEach(keyword => { + test(() => { + let element = document.getElementById('test'); + element.setAttribute("style", `font-family: ${keyword};`); + let expected_width = element.offsetWidth; + + // Insert the @font-face rules for quoted and unquoted keywords. + document.documentElement.insertAdjacentHTML('beforeend', ` <style> @font-face { - font-family: system-ui; + font-family: ${keyword}; src: local(Ahem), url('/fonts/Ahem.ttf'); } </style> -</template> -<body onload="onLoad()"> - <div><span id="system-ui" style="font-family: system-ui">00000</span></div> -<script> -function onLoad() { - test(() => { - let element = document.getElementById('system-ui'); - let expected_width = element.offsetWidth; +<style> +@font-face { + font-family: "${keyword}"; + src: local(Ahem), url('/fonts/Ahem.ttf'); +} +</style>`); - // Insert the @font-face rule. - let template = document.getElementById('fonts'); - document.documentElement.appendChild(template.content.cloneNode(true)); + assert_equals(element.offsetWidth, expected_width, `unquoted ${keyword} does not match @font-face rule`); - assert_equals(element.offsetWidth, expected_width); - }); -}; + element.setAttribute("style", `font-family: "${keyword}";`); + assert_equals(element.offsetWidth, ahem_expected_width, `quoted ${keyword} matches @font-face rule`); + }, `@font-face matching for quoted and unquoted ${keyword}`); + }); + done(); + } </script> </body> diff --git a/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-002.html b/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-002.html new file mode 100644 index 00000000000..7399860b03c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-fonts/generic-family-keywords-002.html @@ -0,0 +1,44 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="utf-8"> + <title>Generic font family: -webkit-* treated as <font-family></title> + <link rel="help" href="https://drafts.csswg.org/css-fonts-4/#generic-font-families"> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/css/css-fonts/support/font-family-keywords.js"></script> + <link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/> + <style> + div { + font-size: 10px; + } + #ahem { + font-family: Ahem; + } + </style> + </head> + <body> + <div><span id="ahem">00000</span></div> + <div><span id="test">00000</span></div> + </body> +<script> + setup({ explicit_done: true }); + window.addEventListener("load", () => { document.fonts.ready.then(runTests); }); + function SetFontFamilyAndMeasure(fontFamilyValue) { + var element = document.getElementById('test'); + element.setAttribute("style", `font-family: ${fontFamilyValue}, Ahem;`); + return element.offsetWidth; + } + function runTests() { + let ahem = document.getElementById('ahem'); + let ahem_expected_width = ahem.offsetWidth; + let families = kGenericFontFamilyKeywords.map(keyword => `-webkit-${keyword}`).concat(kWebKitPrefixKeywords); + families.forEach(name => { + test(function() { + assert_equals(SetFontFamilyAndMeasure(name), ahem_expected_width); + }, `font-family: ${name} treated as <font-family>, not <generic-name>`); + }); + done(); + } +</script> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-fonts/support/font-family-keywords.js b/tests/wpt/web-platform-tests/css/css-fonts/support/font-family-keywords.js new file mode 100644 index 00000000000..fc5b723e687 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-fonts/support/font-family-keywords.js @@ -0,0 +1,17 @@ +var kGenericFontFamilyKeywords = ["serif", + "sans-serif", + "cursive", + "fantasy", + "monospace", + "system", + "emoji", + "math", + "fangsong", + "ui-serif", + "ui-sans-serif", + "ui-monospace", + "ui-rounded"]; + +var kWebKitPrefixKeywords = ["-webkit-body", + "-webkit-standard", + "-webkit-pictograph"]; diff --git a/tests/wpt/web-platform-tests/css/css-page/inheritance.html b/tests/wpt/web-platform-tests/css/css-page/inheritance.html new file mode 100644 index 00000000000..565287bce50 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-page/inheritance.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-page-3/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/inheritance-testcommon.js"></script> +<div id="container"> + <div id="target"></div> +</div> +<script> + assert_not_inherited("page", "auto", "koko"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-page/parsing/page-computed.html b/tests/wpt/web-platform-tests/css/css-page/parsing/page-computed.html new file mode 100644 index 00000000000..0accba05748 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-page/parsing/page-computed.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-page-3/#using-named-pages"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> +<div id="target"></div> +<script> + test_computed_value("page", "auto"); + test_computed_value("page", "AUTO", "auto"); + test_computed_value("page", "blablabla"); + test_computed_value("page", "BLABLABLA"); + test_computed_value("page", "table"); + test_computed_value("page", "TABLE"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-page/parsing/page-invalid.html b/tests/wpt/web-platform-tests/css/css-page/parsing/page-invalid.html new file mode 100644 index 00000000000..7af7ccb9a30 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-page/parsing/page-invalid.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-page-3/#using-named-pages"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +<script> + test_invalid_value("page", "not valid"); + test_invalid_value("page", "not,valid"); + test_invalid_value("page", "123px"); + test_invalid_value("page", "calc(10%+1px)"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-page/parsing/page-valid.html b/tests/wpt/web-platform-tests/css/css-page/parsing/page-valid.html new file mode 100644 index 00000000000..a4c31f5766a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-page/parsing/page-valid.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/css-page-3/#using-named-pages"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> +<script> + test_valid_value("page", "auto"); + test_valid_value("page", "table"); + test_valid_value("page", "xyzabc"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed.html b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed.html new file mode 100644 index 00000000000..3cd562fb9ce --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed.html @@ -0,0 +1,18 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio Test: aspect-ratio with computed values</title> +<link rel="author" title="Google LLC" href="https://www.google.com/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio"> +<meta name="assert" content="aspect-ratio supports the full grammar '[auto | <ratio>]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/computed-testcommon.js"></script> + +<div id=target></div> +<div id=scratch></div> +<script> + +test_computed_value("aspect-ratio", "auto"); +test_computed_value("aspect-ratio", "1 / 1"); +test_computed_value("aspect-ratio", "16 / 9"); +test_computed_value("aspect-ratio", "16/9", "16 / 9"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-invalid.html b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-invalid.html new file mode 100644 index 00000000000..523ba7269c7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-invalid.html @@ -0,0 +1,19 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio Test: aspect-ratio with invalid values</title> +<link rel="author" title="Google LLC" href="https://www.google.com/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio"> +<meta name="assert" content="aspect-ratio supports the full grammar '[auto | <ratio>]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> + +<script> +test_invalid_value("aspect-ratio", "auto / 5"); +test_invalid_value("aspect-ratio", "auto / 16"); +test_invalid_value("aspect-ratio", "16 9"); +test_invalid_value("aspect-ratio", "16px / 9px"); +test_invalid_value("aspect-ratio", "0 / 9"); +test_invalid_value("aspect-ratio", "16 / 0"); +test_invalid_value("aspect-ratio", "0 / 0"); +test_invalid_value("aspect-ratio", "16 / -9"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid.html b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid.html new file mode 100644 index 00000000000..d9341d8c15b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<title>CSS aspect-ratio Test: aspect-ratio with valid values</title> +<link rel="author" title="Google LLC" href="https://www.google.com/"> +<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio"> +<meta name="assert" content="aspect-ratio supports the full grammar '[auto | <ratio>]'."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/support/parsing-testcommon.js"></script> + +<script> +test_valid_value("aspect-ratio", "auto"); +test_valid_value("aspect-ratio", "16 / 9"); +test_valid_value("aspect-ratio", "16/9", "16 / 9"); +test_valid_value("aspect-ratio", "16 /9", "16 / 9"); +test_valid_value("aspect-ratio", "16/ 9", "16 / 9"); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-007.html b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-007.html new file mode 100644 index 00000000000..f862bb9dc06 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-007.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes"> +<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." /> +<link rel="match" href="../reference/ref-filled-green-100px-square-only.html"> +<style> +#container { position: relative; height: 200px; } +#abs { position: absolute; top: 0; bottom: 100px; background: green; } +canvas { height: 100%; } +</style> +<p>Test passes if there is a filled green square.</p> +<div id=container> + <div id=abs> + <canvas width=10 height=10></canvas> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-008.html b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-008.html new file mode 100644 index 00000000000..d0099530c3a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-008.html @@ -0,0 +1,15 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic-sizes"> +<meta name="assert" content="Checks that a replaced element, with an aspect ratio, converts a percent height into an intrinsic width." /> +<link rel="match" href="../reference/ref-filled-green-100px-square-only.html"> +<style> +#container { position: relative; width: 200px; height: 200px; } +#abs { writing-mode: vertical-lr; position: absolute; left: 0; right: 100px; background: green; } +canvas { width: 100%; } +</style> +<p>Test passes if there is a filled green square.</p> +<div id=container> + <div id=abs> + <canvas width=10 height=10></canvas> + </div> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-dynamic-007.html b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-dynamic-007.html new file mode 100644 index 00000000000..72d3b23dca6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-dynamic-007.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic"> +<link rel="match" href="../reference/ref-filled-green-100px-square-only.html"> +<meta name="assert" content="This test checks that a dynamic change in the height of an element calculates the intrinsic min/max size correctly when a replaced element is present."/> +<p>Test passes if there is a filled green square.</p> +<div style="position: relative; width: 100px; height: 200px;"> + <div id="target" style="position: absolute; top:0; bottom: 0; background: green;"> + <canvas width="1" height="1" style="height: 100%;"></canvas> + </div> +</div> +<script> + document.body.offsetTop; + document.getElementById('target').style.bottom = '100px'; +</script> diff --git a/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-dynamic-008.html b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-dynamic-008.html new file mode 100644 index 00000000000..9a3361a5e29 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/intrinsic-percent-replaced-dynamic-008.html @@ -0,0 +1,14 @@ +<!DOCTYPE html> +<link rel="help" href="https://drafts.csswg.org/css-sizing-3/#intrinsic"> +<link rel="match" href="../reference/ref-filled-green-100px-square-only.html"> +<meta name="assert" content="This test checks that a dynamic change in the height of an element calculates the intrinsic min/max size correctly when a replaced element is present."/> +<p>Test passes if there is a filled green square.</p> +<div style="position: relative; width: 200px; height: 200px;"> + <div id="target" style="writing-mode: vertical-lr; position: absolute; left: 0; right: 0; background: green;"> + <canvas width="1" height="1" style="width: 100%;"></canvas> + </div> +</div> +<script> + document.body.offsetTop; + document.getElementById('target').style.right = '100px'; +</script> diff --git a/tests/wpt/web-platform-tests/css/css-transitions/transition-base-response-003.html b/tests/wpt/web-platform-tests/css/css-transitions/transition-base-response-003.html new file mode 100644 index 00000000000..045da5dbdeb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-transitions/transition-base-response-003.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<title>Tests that identical elements in the base style responds to font-size transition</title> +<link rel="help" href="https://drafts.csswg.org/css-animations/"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + div { + font-size: 10px; + min-width: 1em; + transition: font-size steps(2, start) 10s; + } + .change { + font-size: 20px; + } +</style> +<div></div> +<div></div> +<div></div> +<script> +test(() => { + let divs = document.querySelectorAll('div'); + for (let div of divs) { + let unused = getComputedStyle(div).getPropertyValue('min-width'); + div.className = 'change'; + assert_equals(getComputedStyle(div).getPropertyValue('min-width'), '15px'); + } +}, 'Identical elements are all responsive to font-size transition'); +</script> diff --git a/tests/wpt/web-platform-tests/css/cssom/font-family-serialization-001.html b/tests/wpt/web-platform-tests/css/cssom/font-family-serialization-001.html new file mode 100644 index 00000000000..6c59b985c4f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom/font-family-serialization-001.html @@ -0,0 +1,44 @@ +<!DOCTYPE HTML> +<html> +<meta charset="utf-8"> +<title>Serialization of font-family</title> +<link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-declaration-block"> +<link rel="help" href="https://drafts.csswg.org/css-fonts-4/#font-family-prop"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/css/css-fonts/support/font-family-keywords.js"></script> +<div id="target"></div> +<script> + function SetFontFamilyAndSerialize(fontFamilyValue) { + var target = document.getElementById('target'); + target.setAttribute("style", `font-family: ${fontFamilyValue}`); + return window.getComputedStyle(target).getPropertyValue('font-family'); + } + test(function() { + kGenericFontFamilyKeywords.forEach(keyword => { + assert_equals(SetFontFamilyAndSerialize(keyword), keyword); + }); + }, "Serialization of <generic-family>"); + + test(function() { + kGenericFontFamilyKeywords.forEach(keyword => { + var quoted_keyword = `"${keyword}"`; + assert_equals(SetFontFamilyAndSerialize(quoted_keyword), quoted_keyword); + }); + }, "Serialization of quoted \"<generic-family>\""); + + test(function() { + kGenericFontFamilyKeywords.forEach(keyword => { + var prefixed_keyword = `-webkit-${keyword}`; + assert_equals(SetFontFamilyAndSerialize(prefixed_keyword), prefixed_keyword); + }); + }, "Serialization of prefixed -webkit-<generic-family>"); + + test(function() { + kWebKitPrefixKeywords.forEach(keyword => { + assert_equals(SetFontFamilyAndSerialize(keyword), keyword); + }); + }, `Serialization of ${kWebKitPrefixKeywords}`); + +</script> +</html> diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-dedicated-worker.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-dedicated-worker.https.html index 468861a9df6..9493a64b39c 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-dedicated-worker.https.html +++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-dedicated-worker.https.html @@ -4,6 +4,7 @@ <title> Check COEP report are send for CacheStorage requests in DedicatedWorker </title> + <meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-document.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-document.https.html index a6a2c355cb2..d5ae757facf 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-document.https.html +++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-document.https.html @@ -4,6 +4,7 @@ <title> Check COEP report are send for CacheStorage requests in Document. </title> + <meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https.html index 2cbdb21ee12..0b13de8657f 100644 --- a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https.html +++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/cache-storage-reporting-shared-worker.https.html @@ -4,6 +4,7 @@ <title> Check COEP report are send for CacheStorage requests in DedicatedWorker </title> + <meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html deleted file mode 100644 index 2178863fbd2..00000000000 --- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-click.tentative.html +++ /dev/null @@ -1,34 +0,0 @@ -<!DOCTYPE html> -<!-- - Tentative due to: - https://github.com/whatwg/html/issues/1983 ---> -<html> -<head> -<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> -</head> -<body> - <h1>Clicking on document sets user activation</h1> - <p>Click anywhere in the document.</p> - <script> - async_test(function(t) { - assert_false(navigator.userActivation.hasBeenActive); - assert_false(navigator.userActivation.isActive); - window.addEventListener("click", t.step_func_done(event => { - assert_true(navigator.userActivation.hasBeenActive); - assert_true(navigator.userActivation.isActive); - - // Opening a window should consume the activation. - var win = window.open('404.html'); - win.close(); - assert_true(navigator.userActivation.hasBeenActive); - assert_false(navigator.userActivation.isActive); - })); - test_driver.click(document.body); - }, "Values adjust on activity"); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tentative.html deleted file mode 100644 index 46fd129459c..00000000000 --- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe-no-activate.tentative.html +++ /dev/null @@ -1,58 +0,0 @@ -<!DOCTYPE html> -<!-- - Tentative due to: - https://github.com/whatwg/html/issues/1983 ---> -<html> -<head> -<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> -</head> -<body> - <h1>Clicking in parent frame does not propagate state to child</h1> - <ol id="instructions"> - <li>Click this instruction text. - </ol> - <iframe id="child" width="200" height="200" - src="resources/child-one.html"> - </iframe> - <script> - async_test(function(t) { - var child = document.getElementById("child"); - assert_false(navigator.userActivation.isActive); - assert_false(navigator.userActivation.hasBeenActive); - window.addEventListener("message", t.step_func(event => { - var msg = JSON.parse(event.data); - if (msg.type == 'child-one-loaded') { - // Child's states should be false after load. - assert_false(msg.isActive); - assert_false(msg.hasBeenActive); - - // Click in parent document. - test_driver.click(document.getElementById('instructions')); - } else if (msg.type == 'child-one-report') { - // Only the transient state in child should be false after consumption below. - assert_false(msg.isActive); - assert_true(msg.hasBeenActive); - t.done(); - } - })); - window.addEventListener("click", t.step_func(event => { - assert_true(navigator.userActivation.isActive); - assert_true(navigator.userActivation.hasBeenActive); - - // Opening a window should consume the activation. - var win = window.open('404.html'); - win.close(); - assert_false(navigator.userActivation.isActive); - assert_true(navigator.userActivation.hasBeenActive); - - // Ask child to report its state. - child.contentWindow.postMessage(JSON.stringify({"type": "report"}), '*'); - })); - }, "Values adjust on activity"); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tentative.html deleted file mode 100644 index 91fac9b246c..00000000000 --- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-iframe.tentative.html +++ /dev/null @@ -1,52 +0,0 @@ -<!DOCTYPE html> -<!-- - Tentative due to: - https://github.com/whatwg/html/issues/1983 ---> -<html> -<head> -<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> -</head> -<body> - <h1>Clicking in iframe has activation state in child</h1> - <ol id="instructions"> - <li>Click inside the yellow area. - </ol> - <iframe id="child" width="200" height="200" - src="resources/child-one.html"> - </iframe> - <script> - async_test(function(t) { - var child = document.getElementById("child"); - assert_false(navigator.userActivation.isActive); - assert_false(navigator.userActivation.hasBeenActive); - window.addEventListener("message", t.step_func(event => { - var msg = JSON.parse(event.data); - if (msg.type == 'child-one-loaded') { - // values have false after load - assert_false(msg.isActive); - assert_false(msg.hasBeenActive); - test_driver.click(child); - } else if (msg.type == 'child-one-clicked') { - // values have activation state on click - assert_true(navigator.userActivation.isActive); - assert_true(navigator.userActivation.hasBeenActive); - assert_true(msg.isActive); - assert_true(msg.hasBeenActive); - child.src = "resources/child-two.html"; - } else if (msg.type == 'child-two-loaded') { - // values are reset after navigation - assert_true(navigator.userActivation.isActive); - assert_true(navigator.userActivation.hasBeenActive); - assert_false(msg.isActive); - assert_false(msg.hasBeenActive); - t.done(); - } - })); - }, "Values adjust on activity"); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/activation-api-setTimeout.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/activation-api-setTimeout.tentative.html deleted file mode 100644 index a8eba38c60e..00000000000 --- a/tests/wpt/web-platform-tests/html/user-activation/activation-api-setTimeout.tentative.html +++ /dev/null @@ -1,36 +0,0 @@ -<!DOCTYPE html> -<!-- - Tentative due to: - https://github.com/whatwg/html/issues/1983 ---> -<html> -<head> -<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> -</head> -<body> - <h1>Clicking on document sets user activation even after setTimeout</h1> - <p>Click anywhere in the document.</p> - <script> - async_test(function(t) { - assert_false(navigator.userActivation.hasBeenActive); - assert_false(navigator.userActivation.isActive); - window.addEventListener("click", event => { - t.step_timeout(() => { - assert_true(navigator.userActivation.hasBeenActive); - assert_true(navigator.userActivation.isActive); - - // Opening a window should consume the activation. - window.open('404.html'); - assert_true(navigator.userActivation.hasBeenActive); - assert_false(navigator.userActivation.isActive); - t.done(); - }, 0); - }); - test_driver.click(document.body); - }, "Values adjust on activity"); - </script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/basic.html b/tests/wpt/web-platform-tests/html/user-activation/basic.html new file mode 100644 index 00000000000..fe8cebc1089 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/basic.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<html> +<head> + <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> +</head> +<body> + <h1>Basic user activation test</h1> + <p>Tests that a popup is allowed with user activation.</p> + <ol id="instructions"> + <li>Click anywhere in the document. + </ol></body> + <script> + let test_w_click = async_test("Popup with click"); + + window.addEventListener("click", () => { + test_w_click.step(() => { + let win = window.open(); + assert_true(!!win); + win.close(); + }); + test_w_click.done(); + }); + + test_driver.click(document.body); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/chained-setTimeout.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/chained-setTimeout.tentative.html new file mode 100644 index 00000000000..133f137eed6 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/chained-setTimeout.tentative.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<!-- + Tentative due to: + https://github.com/whatwg/html/issues/1983 +--> +<html> +<head> + <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> + const max_call_depth = 3; + let initial_async_tests = {}; + let final_async_tests = {}; + + function testInitialStates(depth) { + assert_true(1 <= depth && depth <= max_call_depth); + + initial_async_tests[depth].step_timeout(() => { + assert_false(navigator.userActivation.isActive); + assert_false(navigator.userActivation.hasBeenActive); + initial_async_tests[depth].done(); + + if (depth < max_call_depth) + testInitialStates(depth+1); + }, 10); + } + + function testFinalStates(depth) { + assert_true(1 <= depth && depth <= max_call_depth); + + final_async_tests[depth].step_timeout(() => { + assert_true(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + final_async_tests[depth].done(); + + if (depth < max_call_depth) + testFinalStates(depth+1); + }, 10) + } + + function run() { + for (let i = 1; i <= max_call_depth; i++) { + initial_async_tests[i] = async_test("Call-depth=" + i + " initial state"); + final_async_tests[i] = async_test("Call-depth=" + i + " final state"); + } + + testInitialStates(1); + + window.addEventListener("click", event => { + testFinalStates(1); + }); + test_driver.click(document.body); + } + </script> +</head> +<body onload="run()"> + <h1>User activation state in chained setTimeout calls</h1> + <p>Tests that user activation state is visible in arbitrary call depth of setTimeout.</p> + <ol id="instructions"> + <li>Click anywhere in the document. + </ol></body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative.html new file mode 100644 index 00000000000..01e4d35a43e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/consumption-crossorigin.sub.tentative.html @@ -0,0 +1,131 @@ +<!DOCTYPE html> +<!-- + Tentative due to: + https://github.com/whatwg/html/issues/1983 +--> +<html> +<head> + <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> + // Frame layout: + // top=origin0:this-file [ + // child1=origin1:child-one.html, + // child-xo=origin2:consumption-crossorigin-child.html [ + // gchild=origin3:child-two.html + // ] + // ] + let test_parent_initial = async_test("Parent frame initial state"); + let test_parent_final = async_test("Parent frame final state"); + + let test_child1_initial = async_test("Child1 frame initial state"); + let test_child1_final = async_test("Child1 frame final state"); + + let test_child_xo_initial = async_test("Child2 frame initial state"); + let test_child_xo_final = async_test("Child2 frame final state"); + + let test_gchild_initial = async_test("Grandchild frame initial state"); + let test_gchild_final = async_test("Grand child frame final state"); + + let num_children_to_load = 3; + let num_children_to_report = 3; + + function finishLoadPhase() { + test_parent_initial.step(() => { + assert_true(num_children_to_load == 0); + assert_false(navigator.userActivation.isActive); + assert_false(navigator.userActivation.hasBeenActive); + }); + test_parent_initial.done(); + + test_driver.click(document.getElementById("child1")); + // The click at "child-xo" happens after receiving "child-one-clicked" msg. + } + + function finishReportPhase() { + test_parent_final.step(() => { + assert_true(num_children_to_report == 0); + assert_false(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + }); + test_parent_final.done(); + // End of all tests. + } + + window.addEventListener("message", event => { + var msg = JSON.parse(event.data); + + if (msg.type == 'child-one-loaded') { + test_child1_initial.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_child1_initial.done(); + } else if (msg.type == 'child-crossorigin-loaded') { + test_child_xo_initial.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_child_xo_initial.done(); + } else if (msg.type == 'child-two-loaded') { + test_gchild_initial.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_gchild_initial.done(); + } else if (msg.type == 'child-one-clicked') { + test_driver.click(document.getElementById("child-xo")); + } else if (msg.type == 'child-one-report') { + test_child1_final.step(() => { + assert_false(msg.isActive); + assert_true(msg.hasBeenActive); + }); + test_child1_final.done(); + } else if (msg.type == 'child-crossorigin-report') { + // This msg was triggered by a user click followed by a window.open(). + test_child_xo_final.step(() => { + assert_false(msg.isActive); + assert_true(msg.hasBeenActive); + }); + test_child_xo_final.done(); + + // Ask remaining frames to report states. + let ask_report = JSON.stringify({"type": "report"}); + frames[0].postMessage(ask_report, "*"); + frames[1].frames[0].postMessage(ask_report, "*"); + } else if (msg.type == 'child-two-report') { + test_gchild_final.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_gchild_final.done(); + } + + // Phase switching. + if (msg.type.endsWith("-loaded")) { + if (--num_children_to_load == 0) + finishLoadPhase(); + } else if (msg.type.endsWith("-report")) { + if (--num_children_to_report == 0) + finishReportPhase(); + } + }); + </script> +</head> +<body> + <h1>User activation consumption across cross-origin frame boundary</h1> + <p>Tests that user activation consumption resets the transient states in all cross-origin frames.</p> + <ol id="instructions"> + <li>Click anywhere on the yellow area. + <li>Click anywhere on the green area (child frame). + </ol> + <iframe id="child1" width="300px" height="40px" + src="http://{{domains[www1]}}:{{ports[http][0]}}/html/user-activation/resources/child-one.html"> + </iframe> + <iframe id="child-xo" width="300px" height="140px" + src="http://{{domains[www2]}}:{{ports[http][0]}}/html/user-activation/resources/consumption-crossorigin-child.sub.html"> + </iframe> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/consumption-sameorigin.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/consumption-sameorigin.tentative.html new file mode 100644 index 00000000000..140642c97dd --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/consumption-sameorigin.tentative.html @@ -0,0 +1,127 @@ +<!DOCTYPE html> +<!-- + Tentative due to: + https://github.com/whatwg/html/issues/1983 +--> +<html> +<head> + <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> + // Frame layout: + // top=this-file [ + // child1=child-one.html, + // child-so=consumption-sameorigin-child.html [ + // gchild=child-two.html + // ] + // ] + let test_parent_initial = async_test("Parent frame initial state"); + let test_parent_final = async_test("Parent frame final state"); + + let test_child1_initial = async_test("Child1 frame initial state"); + let test_child1_final = async_test("Child1 frame final state"); + + let test_child_so_initial = async_test("Child2 frame initial state"); + let test_child_so_final = async_test("Child2 frame final state"); + + let test_gchild_initial = async_test("Grandchild frame initial state"); + let test_gchild_final = async_test("Grand child frame final state"); + + let num_children_to_load = 3; + let num_children_to_report = 3; + + function finishLoadPhase() { + test_parent_initial.step(() => { + assert_true(num_children_to_load == 0); + assert_false(navigator.userActivation.isActive); + assert_false(navigator.userActivation.hasBeenActive); + }); + test_parent_initial.done(); + + test_driver.click(document.getElementById("child-so")); + } + + function finishReportPhase() { + test_parent_final.step(() => { + assert_true(num_children_to_report == 0); + assert_false(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + }); + test_parent_final.done(); + // End of all tests. + } + + window.addEventListener("message", event => { + var msg = JSON.parse(event.data); + + if (msg.type == 'child-one-loaded') { + test_child1_initial.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_child1_initial.done(); + } else if (msg.type == 'child-sameorigin-loaded') { + test_child_so_initial.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_child_so_initial.done(); + } else if (msg.type == 'child-two-loaded') { + test_gchild_initial.step(() => { + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + }); + test_gchild_initial.done(); + } else if (msg.type == 'child-one-report') { + test_child1_final.step(() => { + assert_false(msg.isActive); + assert_true(msg.hasBeenActive); + }); + test_child1_final.done(); + } else if (msg.type == 'child-sameorigin-report') { + // This msg was triggered by a user click followed by a window.open(). + test_child_so_final.step(() => { + assert_false(msg.isActive); + assert_true(msg.hasBeenActive); + }); + test_child_so_final.done(); + + // Ask remaining frames to report states. + let ask_report = JSON.stringify({"type": "report"}); + frames[0].postMessage(ask_report, "*"); + frames[1].frames[0].postMessage(ask_report, "*"); + } else if (msg.type == 'child-two-report') { + test_gchild_final.step(() => { + assert_false(msg.isActive); + assert_true(msg.hasBeenActive); + }); + test_gchild_final.done(); + } + + // Phase switching. + if (msg.type.endsWith("-loaded")) { + if (--num_children_to_load == 0) + finishLoadPhase(); + } else if (msg.type.endsWith("-report")) { + if (--num_children_to_report == 0) + finishReportPhase(); + } + }); + </script> +</head> +<body> + <h1>User activation consumption across same-origin frame boundary</h1> + <p>Tests that user activation consumption resets the transient states in all same-origin frames.</p> + <ol id="instructions"> + <li>Click anywhere on the green area (child frame). + </ol> + <iframe id="child1" width="300px" height="40px" + src="resources/child-one.html"> + </iframe> + <iframe id="child-so" width="300px" height="140px" + src="resources/consumption-sameorigin-child.html"> + </iframe> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative.html new file mode 100644 index 00000000000..5839836a0d8 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/navigation-state-reset-crossorigin.sub.tentative.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<!-- + Tentative due to: + https://github.com/whatwg/html/issues/1983 +--> +<html> +<head> +<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> +</head> +<body> + <h1>Post-navigation activation state in child</h1> + <p>Tests that navigating a cross-origin child frame resets its activation states.</p> + <ol id="instructions"> + <li>Click inside the yellow area. + </ol> + <iframe id="child" width="200" height="50" + src="http://{{domains[www1]}}:{{ports[http][0]}}/html/user-activation/resources/child-one.html"> + </iframe> + <script> + async_test(function(t) { + var child = document.getElementById("child"); + window.addEventListener("message", t.step_func(event => { + var msg = JSON.parse(event.data); + if (msg.type == 'child-one-loaded') { + assert_false(navigator.userActivation.isActive); + assert_false(navigator.userActivation.hasBeenActive); + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + + test_driver.click(child); + } else if (msg.type == 'child-one-clicked') { + assert_true(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + assert_true(msg.isActive); + assert_true(msg.hasBeenActive); + + child.src = "http://{{domains[www2]}}:{{ports[http][0]}}/html/user-activation/resources/child-two.html"; + } else if (msg.type == 'child-two-loaded') { + assert_true(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + + t.done(); + } + })); + }, "Post-navigation state reset."); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative.html b/tests/wpt/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative.html new file mode 100644 index 00000000000..144d7d4bf50 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/navigation-state-reset-sameorigin.tentative.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<!-- + Tentative due to: + https://github.com/whatwg/html/issues/1983 +--> +<html> +<head> +<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> +</head> +<body> + <h1>Post-navigation activation state in child</h1> + <p>Tests that navigating a same-origin child frame resets its activation states.</p> + <ol id="instructions"> + <li>Click inside the yellow area. + </ol> + <iframe id="child" width="200" height="50" + src="resources/child-one.html"> + </iframe> + <script> + async_test(function(t) { + var child = document.getElementById("child"); + window.addEventListener("message", t.step_func(event => { + var msg = JSON.parse(event.data); + if (msg.type == 'child-one-loaded') { + assert_false(navigator.userActivation.isActive); + assert_false(navigator.userActivation.hasBeenActive); + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + + test_driver.click(child); + } else if (msg.type == 'child-one-clicked') { + assert_true(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + assert_true(msg.isActive); + assert_true(msg.hasBeenActive); + + child.src = "resources/child-two.html"; + } else if (msg.type == 'child-two-loaded') { + assert_true(navigator.userActivation.isActive); + assert_true(navigator.userActivation.hasBeenActive); + assert_false(msg.isActive); + assert_false(msg.hasBeenActive); + + t.done(); + } + })); + }, "Post-navigation state reset."); + </script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/consumption-crossorigin-child.sub.html b/tests/wpt/web-platform-tests/html/user-activation/resources/consumption-crossorigin-child.sub.html new file mode 100644 index 00000000000..c9f37ac8efd --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/resources/consumption-crossorigin-child.sub.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> + <script> + window.top.postMessage(JSON.stringify({ + "type": "child-crossorigin-loaded", + "isActive": navigator.userActivation.isActive, + "hasBeenActive": navigator.userActivation.hasBeenActive + }), "*"); + + window.addEventListener("click", event => { + window.open().close(); + + window.top.postMessage(JSON.stringify({ + "type": "child-crossorigin-report", + "isActive": navigator.userActivation.isActive, + "hasBeenActive": navigator.userActivation.hasBeenActive + }), "*"); + }); + </script> +</head> +<body style="background: lightgreen;"> + <!-- The midpoint of this frame should be outside the grandchild frame. --> + <div style="height: 75px;">Cross-origin child frame</div> + <iframe id="child2" width="270px" height="30px" + src="http://{{domains[www]}}:{{ports[http][0]}}/html/user-activation/resources/child-two.html"> + </iframe> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/html/user-activation/resources/consumption-sameorigin-child.html b/tests/wpt/web-platform-tests/html/user-activation/resources/consumption-sameorigin-child.html new file mode 100644 index 00000000000..9e421fc0f1e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/user-activation/resources/consumption-sameorigin-child.html @@ -0,0 +1,29 @@ +<!DOCTYPE html> +<html> +<head> + <script> + window.top.postMessage(JSON.stringify({ + "type": "child-sameorigin-loaded", + "isActive": navigator.userActivation.isActive, + "hasBeenActive": navigator.userActivation.hasBeenActive + }), "*"); + + window.addEventListener("click", event => { + window.open().close(); + + window.top.postMessage(JSON.stringify({ + "type": "child-sameorigin-report", + "isActive": navigator.userActivation.isActive, + "hasBeenActive": navigator.userActivation.hasBeenActive + }), "*"); + }); + </script> +</head> +<body style="background: lightgreen;"> + <!-- The midpoint of this frame should be outside the grandchild frame. --> + <div style="height: 75px;">Same-origin child frame</div> + <iframe id="child2" width="270px" height="30px" + src="child-two.html"> + </iframe> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/interfaces/image-capture.idl b/tests/wpt/web-platform-tests/interfaces/image-capture.idl index 148bd7bb4cd..094f3f5cafe 100644 --- a/tests/wpt/web-platform-tests/interfaces/image-capture.idl +++ b/tests/wpt/web-platform-tests/interfaces/image-capture.idl @@ -93,27 +93,27 @@ partial dictionary MediaTrackCapabilities { }; partial dictionary MediaTrackConstraintSet { - ConstrainDOMString whiteBalanceMode; - ConstrainDOMString exposureMode; - ConstrainDOMString focusMode; - ConstrainPoint2D pointsOfInterest; - - ConstrainDouble exposureCompensation; - ConstrainDouble exposureTime; - ConstrainDouble colorTemperature; - ConstrainDouble iso; - - ConstrainDouble brightness; - ConstrainDouble contrast; - ConstrainDouble saturation; - ConstrainDouble sharpness; - - ConstrainDouble focusDistance; - ConstrainDouble pan; - ConstrainDouble tilt; - ConstrainDouble zoom; - - ConstrainBoolean torch; + ConstrainDOMString whiteBalanceMode; + ConstrainDOMString exposureMode; + ConstrainDOMString focusMode; + ConstrainPoint2D pointsOfInterest; + + ConstrainDouble exposureCompensation; + ConstrainDouble exposureTime; + ConstrainDouble colorTemperature; + ConstrainDouble iso; + + ConstrainDouble brightness; + ConstrainDouble contrast; + ConstrainDouble saturation; + ConstrainDouble sharpness; + + ConstrainDouble focusDistance; + (boolean or ConstrainDouble) pan; + (boolean or ConstrainDouble) tilt; + (boolean or ConstrainDouble) zoom; + + ConstrainBoolean torch; }; partial dictionary MediaTrackSettings { diff --git a/tests/wpt/web-platform-tests/interfaces/video-raf.idl b/tests/wpt/web-platform-tests/interfaces/video-raf.idl index 4584050093f..df4aa4c33de 100644 --- a/tests/wpt/web-platform-tests/interfaces/video-raf.idl +++ b/tests/wpt/web-platform-tests/interfaces/video-raf.idl @@ -4,15 +4,16 @@ // Source: HTMLVideoElement.requestAnimationFrame() (https://wicg.github.io/video-raf/) dictionary VideoFrameMetadata { - required DOMHighResTimeStamp presentedTime; + required DOMHighResTimeStamp presentationTime; required DOMHighResTimeStamp expectedDisplayTime; required unsigned long width; required unsigned long height; + required double mediaTime; - double presentationTimestamp; + required unsigned long presentedFrames; double processingDuration; - unsigned long presentedFrames; + DOMHighResTimeStamp captureTime; DOMHighResTimeStamp receiveTime; unsigned long rtpTimestamp; diff --git a/tests/wpt/web-platform-tests/interfaces/webxr-ar-module.idl b/tests/wpt/web-platform-tests/interfaces/webxr-ar-module.idl index c5899d657b2..2a525d2da89 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxr-ar-module.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxr-ar-module.idl @@ -13,3 +13,13 @@ partial interface XRSession { // Attributes readonly attribute XREnvironmentBlendMode environmentBlendMode; }; + +enum XRInteractionMode { + "screen-space", + "world-space", +}; + +partial interface XRSession { + // Attributes + readonly attribute XRInteractionMode interactionMode; +}; diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist index 7c282eefeab..bd5a5d5c172 100644 --- a/tests/wpt/web-platform-tests/lint.whitelist +++ b/tests/wpt/web-platform-tests/lint.whitelist @@ -606,6 +606,13 @@ CSS-COLLIDING-SUPPORT-NAME: css/css-display/support/util.js CSS-COLLIDING-SUPPORT-NAME: css/CSS2/normal-flow/support/replaced-min-max-1.png CSS-COLLIDING-SUPPORT-NAME: css/vendor-imports/mozilla/mozilla-central-reftests/ui3/support/replaced-min-max-1.png +CSS-COLLIDING-TEST-NAME: css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-invalid.html +CSS-COLLIDING-TEST-NAME: css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-invalid.html +CSS-COLLIDING-TEST-NAME: css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-computed.html +CSS-COLLIDING-TEST-NAME: css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-computed.html +CSS-COLLIDING-TEST-NAME: css/css-sizing/contain-intrinsic-size/parsing/contain-intrinsic-size-valid.html +CSS-COLLIDING-TEST-NAME: css/css-sizing/aspect-ratio/parsing/contain-intrinsic-size-valid.html + # CSS tests that used to be at the top level and weren't subject to lints MISSING-LINK: css/css-fonts/matching/fixed-stretch-style-over-weight.html SUPPORT-WRONG-DIR: css/css-fonts/matching/font-matching.css 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 index 6cb1b8b4351..0a1d7efef6c 100644 --- 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 @@ -56,6 +56,12 @@ assert_approx_equals(LineThickness("namedspace"), defaultRuleThickness, epsilon); }, "Named space"); + test(function() { + assert_true(MathMLFeatureDetection.has_mspace()); + /* Calc() expressions are invalid in MathML Core. */ + assert_approx_equals(LineThickness("calc"), defaultRuleThickness, epsilon); + }, "Calc() expression"); + done(); } </script> @@ -85,5 +91,11 @@ <mspace width="20px" height="10px" style="background: cyan"></mspace> </mfrac> </math> + <math> + <mfrac id="calc" linethickness="calc(20px)"> + <mspace width="20px" height="10px" 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/paint-timing/fcp-only/fcp-text-input.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-text-input.html new file mode 100644 index 00000000000..6a0cd86881f --- /dev/null +++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-text-input.html @@ -0,0 +1,23 @@ +<!DOCTYPE html> +<head> +<title>Performance Paint Timing Test: FCP due for non-empty text input</title> +</head> +<body> +<script src="../resources/utils.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<input id="input" type="text" /> +<script> + promise_test(async t => { + assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported."); + await new Promise(r => window.addEventListener('load', r)); + await assertNoFirstContentfulPaint(); + const input = document.getElementById('input'); + input.setAttribute('value', ' '); + await assertNoFirstContentfulPaint(); + input.setAttribute('value', 'value'); + await assertFirstContentfulPaint(); + }, 'Text input should become contentful when its value is non-empty'); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html new file mode 100644 index 00000000000..5ec62b7d59d --- /dev/null +++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<head> +<title>Performance Paint Timing Test: FCP should not fire when all text is hidden due to typographic pseudo-elements</title> +<style> + #main { + position: relative; + width: 100px; + height: 100px; + } + + #main *::first-letter { + opacity: 0; + } + + /* contentful class is defined in test_fcp script. */ + #main.contentful *::first-letter { + opacity: 1; + } +</style> +</head> +<body> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="../resources/utils.js"></script> +<div id="main"> + <div>A</div> +</div> +<script> + test_fcp("First contentful paint fires only when some of the text is visible, considering ::first-letter.") +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html new file mode 100644 index 00000000000..0915b0083da --- /dev/null +++ b/tests/wpt/web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html @@ -0,0 +1,30 @@ +<!DOCTYPE html> +<head> +<title>Performance Paint Timing Test: FCP due to direction change</title> +<style> + #text { + right: -100px; + position: absolute; + } + + body { + direction: rtl; + } +</style> +</head> +<body direction="RTL"> +<script src="../resources/utils.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id="text">TEXT</div> +<script> + promise_test(async t => { + assert_precondition(window.PerformancePaintTiming, "Paint Timing isn't supported."); + await new Promise(r => window.addEventListener('load', r)); + await assertNoFirstContentfulPaint(); + document.body.style.direction = 'ltr' + await assertFirstContentfulPaint(); + }, 'FCP should fire when coordinates are negative, if within document scrollable area'); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/idlharness.any.js b/tests/wpt/web-platform-tests/resource-timing/idlharness.any.js index a7542f191c1..aa860d3dd16 100644 --- a/tests/wpt/web-platform-tests/resource-timing/idlharness.any.js +++ b/tests/wpt/web-platform-tests/resource-timing/idlharness.any.js @@ -1,5 +1,6 @@ // META: script=/resources/WebIDLParser.js // META: script=/resources/idlharness.js +// META: timeout=long 'use strict'; diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html b/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html index 67addc05476..9bcc042a8fe 100644 --- a/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html +++ b/tests/wpt/web-platform-tests/web-animations/interfaces/DocumentOrShadowRoot/getAnimations.html @@ -68,7 +68,7 @@ test(t => { promise_test(async t => { const iframe = document.createElement('iframe'); - insertFrameAndAwaitLoad(t, iframe, document) + await insertFrameAndAwaitLoad(t, iframe, document) const div = createDiv(t, iframe.contentDocument) const effect = new KeyframeEffect(div, null, 100 * MS_PER_SEC); @@ -88,8 +88,8 @@ promise_test(async t => { const iframe1 = document.createElement('iframe'); const iframe2 = document.createElement('iframe'); - insertFrameAndAwaitLoad(t, iframe1, document); - insertFrameAndAwaitLoad(t, iframe2, document); + await insertFrameAndAwaitLoad(t, iframe1, document); + await insertFrameAndAwaitLoad(t, iframe2, document); const div_frame1 = createDiv(t, iframe1.contentDocument) const div_main_frame = createDiv(t) diff --git a/tests/wpt/web-platform-tests/web-animations/testcommon.js b/tests/wpt/web-platform-tests/web-animations/testcommon.js index 811fe784c26..1eb24f658c2 100644 --- a/tests/wpt/web-platform-tests/web-animations/testcommon.js +++ b/tests/wpt/web-platform-tests/web-animations/testcommon.js @@ -180,12 +180,12 @@ function waitForNextFrame() { }); } -async function insertFrameAndAwaitLoad(test, iframe, document) { +async function insertFrameAndAwaitLoad(test, iframe, doc) { const eventWatcher = new EventWatcher(test, iframe, ['load']); const event_promise = eventWatcher.wait_for('load'); - document.body.appendChild(iframe); - test.add_cleanup(() => { document.body.removeChild(iframe); }); + doc.body.appendChild(iframe); + test.add_cleanup(() => { doc.body.removeChild(iframe); }); await event_promise; } diff --git a/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html b/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html index fced6ead657..04389a9e270 100644 --- a/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html +++ b/tests/wpt/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html @@ -989,14 +989,14 @@ promise_test(async t => { promise_test(async t => { const outerIframe = document.createElement('iframe'); - insertFrameAndAwaitLoad(t, outerIframe, document); outerIframe.width = 10; outerIframe.height = 10; + await insertFrameAndAwaitLoad(t, outerIframe, document); const innerIframe = document.createElement('iframe'); - insertFrameAndAwaitLoad(t, innerIframe, outerIframe.contentDocument); innerIframe.width = 10; innerIframe.height = 10; + await insertFrameAndAwaitLoad(t, innerIframe, outerIframe.contentDocument); const div = createDiv(t, innerIframe.contentDocument); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html new file mode 100644 index 00000000000..0174922fe8a --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/cancel-scheduled-values.html @@ -0,0 +1,123 @@ +<!doctype html> +<html> + <head> + <title> + cancelScheduledValues + </title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/webaudio/resources/audit-util.js"></script> + <script src="/webaudio/resources/audit.js"></script> + </head> + <body> + <script> + let sampleRate = 8000; + let renderFrames = 8000; + + let audit = Audit.createTaskRunner(); + + audit.define( + {label: 'cancel1', description: 'cancel setValueCurve'}, + (task, should) => { + let context = new OfflineAudioContext({ + numberOfChannels: 1, + length: renderFrames, + sampleRate: sampleRate + }); + + let src = new ConstantSourceNode(context); + let gain = new GainNode(context); + src.connect(gain).connect(context.destination); + + // Initial time and value for first automation (setValue) + let time0 = 0; + let value0 = 0.5; + + // Time and duration of the setValueCurve. We'll also schedule a + // setValue at the same time. + let value1 = 1.5; + let curveStartTime = 0.25; + let curveDuration = 0.25; + + // Time at which to cancel events + let cancelTime = 0.3; + + // Time and value for event added after cancelScheduledValues has + // been called. + let time2 = curveStartTime + curveDuration / 2; + let value2 = 3; + + // Self-consistency checks for the test. + should(cancelTime, 'cancelTime is after curve start') + .beGreaterThan(curveStartTime); + should(cancelTime, 'cancelTime is before curve ends') + .beLessThan(curveStartTime + curveDuration); + + // These assertions are just to show what's happening + should( + () => gain.gain.setValueAtTime(value0, time0), + `gain.gain.setValueAtTime(${value0}, ${time0})`) + .notThrow(); + // setValue at the sime time as the curve, to test that this event + // wasn't rmeoved. + should( + () => gain.gain.setValueAtTime(value1, curveStartTime), + `gain.gain.setValueAtTime(${value1}, ${curveStartTime})`) + .notThrow(); + + should( + () => gain.gain.setValueCurveAtTime( + [1, -1], curveStartTime, curveDuration), + `gain.gain.setValueCurveAtTime(..., ${curveStartTime}, ${ + curveDuration})`) + .notThrow(); + + // An event after the curve to verify this is removed. + should( + () => gain.gain.setValueAtTime( + 99, curveStartTime + curveDuration), + `gain.gain.setValueAtTime(99, ${ + curveStartTime + curveDuration})`) + .notThrow(); + + // Cancel events now. + should( + () => gain.gain.cancelScheduledValues(cancelTime), + `gain.gain.cancelScheduledValues(${cancelTime})`) + .notThrow(); + + // Simple check that the setValueCurve is gone, by scheduling + // something in the middle of the (now deleted) event + should( + () => gain.gain.setValueAtTime(value2, time2), + `gain.gain.setValueAtTime(${value2}, ${time2})`) + .notThrow(); + + src.start(); + context.startRendering() + .then(buffer => { + let audio = buffer.getChannelData(0); + + // After canceling events, verify that the outputs have the + // desired values. + let curveFrame = curveStartTime * context.sampleRate; + should( + audio.slice(0, curveFrame), `output[0:${curveFrame - 1}]`) + .beConstantValueOf(value0); + + let time2Frame = time2 * context.sampleRate; + should( + audio.slice(curveFrame, time2Frame), + `output[${curveFrame}:${time2Frame - 1}]`) + .beConstantValueOf(value1); + + should(audio.slice(time2Frame), `output[${time2Frame}:]`) + .beConstantValueOf(value2); + }) + .then(() => task.done()); + }); + + audit.run(); + </script> + </body> +</html> diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html new file mode 100644 index 00000000000..84d9f181389 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-delaynode-interface/maxdelay-rounding.html @@ -0,0 +1,78 @@ +<!DOCTYPE html> +<html> + <head> + <title> + Test DelayNode when maxDelayTime requires rounding + </title> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/webaudio/resources/audit-util.js"></script> + <script src="/webaudio/resources/audit.js"></script> + </head> + <body> + <script id="layout-test-code"> + let sampleRate = 44100; + let inputLengthSeconds = 1; + let renderLengthSeconds = 2; + + // Delay for one second plus 0.4 of a sample frame, to test that + // DelayNode is properly rounding up when calculating its buffer + // size (crbug.com/1065110). + let delayTimeSeconds = 1 + 0.4 / sampleRate; + + let audit = Audit.createTaskRunner(); + + audit.define( + { + label: 'maxdelay-rounding', + description: 'Test DelayNode when maxDelayTime requires rounding', + }, + (task, should) => { + let context = new OfflineAudioContext({ + numberOfChannels: 1, + length: sampleRate * renderLengthSeconds, + sampleRate: sampleRate, + }); + + // Create a constant source to use as input. + let src = new ConstantSourceNode(context); + + // Create a DelayNode to delay for delayTimeSeconds. + let delay = new DelayNode(context, { + maxDelayTime: delayTimeSeconds, + delayTime: delayTimeSeconds, + }); + + src.connect(delay).connect(context.destination); + + src.start(); + context.startRendering() + .then(renderedBuffer => { + let renderedData = renderedBuffer.getChannelData(0); + + // The first delayTimeSeconds of output should be silent. + let expectedSilentFrames = Math.floor( + delayTimeSeconds * sampleRate); + + should( + renderedData.slice(0, expectedSilentFrames), + `output[0:${expectedSilentFrames - 1}]`) + .beConstantValueOf(0); + + // The rest should be non-silent: that is, there should + // be at least one non-zero sample. (Any reasonable + // interpolation algorithm will make all these samples + // non-zero, but I don't think that's guaranteed by the + // spec, so we use a conservative test for now.) + should( + renderedData.slice(expectedSilentFrames), + `output[${expectedSilentFrames}:]`) + .notBeConstantValueOf(0); + }) + .then(() => task.done()); + }); + + audit.run(); + </script> + </body> +</html> |