aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Cargo.lock316
-rw-r--r--components/canvas/Cargo.toml4
-rw-r--r--components/canvas/canvas_data.rs3
-rw-r--r--components/canvas/webgl_limits.rs8
-rw-r--r--components/canvas/webgl_thread.rs24
-rw-r--r--components/canvas_traits/webgl.rs4
-rw-r--r--components/compositing/Cargo.toml6
-rw-r--r--components/compositing/compositor.rs6
-rw-r--r--components/config/prefs.rs1
-rw-r--r--components/embedder_traits/Cargo.toml2
-rw-r--r--components/layout/display_list/items.rs1
-rw-r--r--components/layout/display_list/webrender_helpers.rs1
-rw-r--r--components/layout_2020/Cargo.toml1
-rw-r--r--components/layout_2020/dom_traversal.rs24
-rw-r--r--components/layout_2020/replaced.rs106
-rw-r--r--components/layout_thread/lib.rs10
-rw-r--r--components/layout_thread_2020/lib.rs2
-rw-r--r--components/net/image_cache.rs6
-rw-r--r--components/net_traits/Cargo.toml2
-rw-r--r--components/net_traits/image/base.rs10
-rw-r--r--components/script/Cargo.toml4
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py171
-rw-r--r--components/script/dom/bindings/error.rs3
-rw-r--r--components/script/dom/bindings/interface.rs16
-rw-r--r--components/script/dom/bindings/namespace.rs5
-rw-r--r--components/script/dom/bindings/proxyhandler.rs6
-rw-r--r--components/script/dom/bindings/record.rs4
-rw-r--r--components/script/dom/bindings/root.rs27
-rw-r--r--components/script/dom/bindings/structuredclone.rs3
-rw-r--r--components/script/dom/bindings/trace.rs6
-rw-r--r--components/script/dom/bindings/utils.rs12
-rw-r--r--components/script/dom/document.rs5
-rw-r--r--components/script/dom/eventtarget.rs25
-rw-r--r--components/script/dom/globalscope.rs19
-rw-r--r--components/script/dom/htmlcanvaselement.rs2
-rw-r--r--components/script/dom/htmlmediaelement.rs6
-rw-r--r--components/script/dom/promise.rs6
-rw-r--r--components/script/dom/webgl2renderingcontext.rs37
-rw-r--r--components/script/dom/webglframebuffer.rs57
-rw-r--r--components/script/dom/webglprogram.rs24
-rw-r--r--components/script/dom/webidls/WebGL2RenderingContext.webidl6
-rw-r--r--components/script/dom/window.rs8
-rw-r--r--components/script/lib.rs1
-rw-r--r--components/script/script_module.rs57
-rw-r--r--components/script/script_runtime.rs39
-rw-r--r--components/script/webdriver_handlers.rs6
-rw-r--r--components/servo/Cargo.toml4
-rw-r--r--components/style/Cargo.toml4
-rw-r--r--components/webdriver_server/Cargo.toml2
-rw-r--r--components/webdriver_server/lib.rs2
-rw-r--r--components/webvr/Cargo.toml2
-rw-r--r--etc/taskcluster/decision_task.py6
-rw-r--r--ports/glutin/Cargo.toml6
-rw-r--r--ports/gstplugin/Cargo.toml2
-rw-r--r--ports/libmlservo/Cargo.toml2
-rw-r--r--ports/libsimpleservo/capi/Cargo.toml2
-rw-r--r--python/servo/package_commands.py81
-rw-r--r--resources/prefs.json1
-rw-r--r--servo-tidy.toml4
-rw-r--r--support/hololens/ServoApp/Package.appxmanifest2
-rw-r--r--support/hololens/ServoApp/ServoApp.vcxproj3
-rw-r--r--support/hololens/ServoApp/ServoApp.vcxproj.filters1
-rw-r--r--support/hololens/ServoApp/ServoApp_TemporaryKey.pfxbin2568 -> 0 bytes
-rw-r--r--support/hololens/ServoApp/ServoControl/Servo.cpp2
-rw-r--r--support/hololens/package.msbuild4
-rw-r--r--tests/wpt/include-layout-2020.ini14
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/conformance-requirements/2d.voidreturn.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/context-attributes/getContextAttributes.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html.ini34
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.advances.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.baselines.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.emHeights.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nosrc.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/hit-regions/hitregions-members-exist.html.ini10
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-resize.html.ini16
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-blob-invalidtype.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-bounds.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage-closed.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage.html.ini167
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-flipY.html.ini68
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-invalid-args.html.ini149
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-origin.sub.html.ini64
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-serializable.html.ini38
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html.ini16
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-transfer.html.ini38
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/line-styles/2d.line.cap.closed.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/line-styles/lineto_a.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/line-styles/setLineDash.html.ini7
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.scale.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.4.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.scale2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.skew.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.path.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalLR.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalRL.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.4.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.5.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.3.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.blur.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.x.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.y.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.alpha.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.scale.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.outside.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.1.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.2.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_001.htm.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_002.htm.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/shadows/shadowBlur_gaussian_tolerance.1.html.ini10
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.default.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.invalid.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.default.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.invalid.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.alphabetic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.default.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.basic.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.complex.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.system.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.relative_size.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.measure.width.space.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.scale.large.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.setTransform.multiple.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/transformations/canvas_transformations_reset_001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/transformations/transform_a.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html.ini8
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html.ini8
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorspace-arguments.html.ini19
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html.ini35
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html.ini31
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html.ini121
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-e_srgb.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-getImageData-e_srgb.html.ini13
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorManagedBehavior.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorSpace.html.ini19
-rw-r--r--tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/transferFromImageBitmap.html.ini25
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004e.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004f.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-009a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/between-float-and-text.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-is-containing-block-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-passes-abspos-up-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-shorthand-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-105.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-106.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-047.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-049.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-057.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-058.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-059.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-060.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-061.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-063.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-064.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-065.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-066.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-070.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-072.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-073.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-074.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-075.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-076.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-077.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-078.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-081.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-082.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-085.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-086.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-087.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-088.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-093.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-094.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-096.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-097.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-098.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-099.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-100.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-105.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-106.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-107.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-108.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-109.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-111.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-112.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-114.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-115.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-116.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-117.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-118.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-119.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-120.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-122.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-123.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-125.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-126.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-127.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-128.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-129.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-130.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-131.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-132.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-133.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-134.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-135.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-136.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-137.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-138.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-139.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-140.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-141.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-142.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-143.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-144.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-145.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-175.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-basic.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-ib.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only-ib.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-basic.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-ib.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-linebreak.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only-ib.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/cascade/inherit-computed-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c25-pseudo-elmnt-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-blockw-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-hz-box-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-wrap-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-ht-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-pad-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c45-bg-canvas-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c526-font-sz-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c542-letter-sp-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c544-valgn-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-leadin-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-imrgn-t-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-mrgn-t-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-mrgn-r-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-imrgn-b-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-mrgn-b-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-imrgn-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-padn-t-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-padn-r-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-padn-l-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5510-ipadn-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5512-brdr-rw-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltblck-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltinln-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmrgn-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmult-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltwidth-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c5526-fltclr-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c561-list-displ-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c563-list-type-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-ex-len-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-rel-len-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c62-percent-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-004.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-005.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-006.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-007.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-008.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-009.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-non-replaced-width-margin-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-replaced-width-margin-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/anonymous-boxes-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjacent-floats-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-before-clearance.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-new-fc.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-after-top-margin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-default-inheritance-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-initial-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-inline-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-and-child.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins-no-clearance.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clearance-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-height-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-114.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-119.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-120.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-122.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-123.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-124.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-125.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-133.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-134.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-135.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-136.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-141.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-142.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-143.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-144.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-145.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-146.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-147.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-149.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-150.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-152.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-153.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-154.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-bfc-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-122.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-123.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-125.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-134.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-142.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-157.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-158.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-165.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-166.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/nested-clearance-new-formatting-context.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/adjoining-floats-dynamic.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/computed-float-position-absolute.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-1.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3-ref.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-5.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-7.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-8.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-9.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floated-table-wider-than-specified.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-line-wrap-shifted-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref2.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-left-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-right-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-overflow.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-overflow.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-table.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-overflow.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-table.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-overflow.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-overflow.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-outside-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002r.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003l.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003r.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001l.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001r.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002r.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003l.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini (renamed from tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini)0
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini (renamed from tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini)0
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini (renamed from tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini)0
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/intrinsic-size-float-and-line.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/negative-margin-float-positioning.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin-rtl.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-relayout.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-3.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/remove-block-between-inline-and-float.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-003.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-004.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats-positioning.tentative.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-122.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-124.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-variant-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-weight-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/fonts/fonts-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-100-percent-in-body.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-1.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-margin-padding-border.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/animations/line-height-interpolation.html.ini334
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini40
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/leading-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-breaking-font-size-zero-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-049.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-057.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-059.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-060.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-070.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-081.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-082.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-093.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-125.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-127.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-128.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-117a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-118a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-004a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-005a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-negative-leading-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-padding.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-047.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-visibility-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-047.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-increment-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-visibility-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/increment-counter-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-image-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/lists/reset-counter-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-106.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-111.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-112.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-114.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-115.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-116.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-131.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-155.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-156.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-159.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-min-height-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-em-inherit-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-percentage-inherit-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-064.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-065.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-066.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-076.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-077.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-078.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-088.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-100.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-109.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-111.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-112.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-em-inherit-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-058.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-061.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-072.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-073.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-094.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-049.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-057.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-058.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-059.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-060.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-061.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-070.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-072.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-073.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-078.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-081.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-082.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-093.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-094.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-100.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/auto-margins-root-element.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-float-between-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-nosplit-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-height-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-bottom.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-left.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-right.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-top.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-bottom.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-left.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-right.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-top.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/dynamic-percentage-height.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/float-percentage-resolution-quirks-mode.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-percentage-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-zorder-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-valign-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-width-002a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/intrinsic-size-with-negative-margins.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-height-block.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-zero-height-block.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-separates-margin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-105.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-106.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-107.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-separates-margin.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/negative-margin-shrinking-container-size-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/root-box-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-max-height.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-min-height.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-057.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-064.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-065.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-066.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-076.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-block-level-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-float-with-inline-container.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-negative-margin-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-offset-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/inline-static-position-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/line-break-after-leading-float.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/toogle-abspos-on-relpos-inline-child.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/sec5/first-line-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selector/lang-pseudoclass-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/before-first-letter-selector-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-047.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-049.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-057.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-058.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-059.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-060.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-061.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-063.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-064.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-065.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-066.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-070.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-072.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-073.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-074.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-075.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-076.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-077.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-078.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-081.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-082.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-085.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-086.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-087.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-088.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-093.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-094.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-096.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-097.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-098.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-099.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-100.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-105.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-106.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-107.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-108.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-109.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-111.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-112.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-115.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-116.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-117.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-118.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-119.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-120.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-122.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-123.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-124.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-125.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-126.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-127.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-128.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-129.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-130.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-131.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-132.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-133.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-134.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-135.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-136.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-137.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-138.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-139.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-140.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-141.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-142.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-143.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-144.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-145.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-146.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-147.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-148.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-149.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-150.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-151.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-152.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-153.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-154.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-155.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-156.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-157.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-158.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-159.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-160.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-161.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-162.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-163.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-164.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-165.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-166.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-167.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-168.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-169.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-170.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-171.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-172.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-173.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-174.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-175.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-176.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-177.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-178.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-179.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-180.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-181.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-182.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-183.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-185.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-186.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-187.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-188.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-189.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-190.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-191.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-192.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-193.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-194.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-195.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-196.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-197.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-198.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-199.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-200.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-201.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-202.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-203.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-204.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-205.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-206.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-207.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-208.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-211.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-212.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-213.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-214.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-215.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-216.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-217.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-218.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-219.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-220.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-221.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-222.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-223.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-224.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-225.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-226.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-227.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-228.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-229.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-230.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-231.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-232.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-233.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-234.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-235.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-236.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-237.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-238.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-239.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-240.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-241.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-242.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-243.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-244.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-245.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-246.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-247.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-248.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-249.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-250.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-251.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-252.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-253.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-254.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-255.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-256.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-257.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-258.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-259.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-260.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-262.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-263.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-264.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-265.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-266.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-267.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-268.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-269.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-270.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-271.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-272.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-273.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-274.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-275.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-276.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-277.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-278.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-279.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-280.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-281.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-282.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-283.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-284.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-285.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-286.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-287.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-288.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-289.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-290.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-291.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-292.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-293.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-294.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-295.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-296.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-297.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-298.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-299.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-300.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-301.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-302.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-303.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-304.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-305.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-306.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-307.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-308.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-309.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-310.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-311.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-312.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-313.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-314.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-315.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-316.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-317.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-318.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-319.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-320.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-321.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-322.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-323.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-324.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-325.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-326.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-327.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-328.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-329.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-330.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-331.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-332.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-333.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-334.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-335.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-336.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-337.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-338.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-339.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-340.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-341.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-342.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-343.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-344.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-345.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-346.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-347.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-348.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-349.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-350.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-351.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-352.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-353.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-354.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-355.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-356.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-357.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-359.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-360.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-361.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-362.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-363.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-364.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-365.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-366.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-367.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-368.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-369.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-370.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-371.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-372.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-373.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-374.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-375.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-376.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-377.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-378.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-379.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-380.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-381.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-382.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-383.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-384.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-385.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-386.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-387.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-388.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-389.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-390.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-391.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-392.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-393.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-394.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-395.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-396.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-397.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-398.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-399.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-400.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-401.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-402.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-403.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-404.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-405.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-406.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-407.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-408.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-409.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-410.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-411.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-412.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-000.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-floats-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-selector-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/characters-0080-009F-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/charset-attr-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/declarations-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/syntax/uri-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/anonymous-table-box-width-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001e.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/border-spacing-percentage-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-position-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/column-visibility-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-002a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a01.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a02.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a03.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a04.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a05.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a06.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b01.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b02.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b03.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b04.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b05.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b06.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b07.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b08.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b09.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b10.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b11.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b12.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c01.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c02.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c03.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c04.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c05.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c06.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c07.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c08.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d01.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d02.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d03.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d04.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d05.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d06.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e01.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e02.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e03.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e04.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e05.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e06.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e07.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e08.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e09.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e10.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e11.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e12.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f01.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f02.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f03.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f04.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f05.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f06.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f07.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f08.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-table-cell-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001e.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001e.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/padding-applies-to-013a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004e.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-059.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-060.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-061.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-063.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-064.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-065.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-066.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-070.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-072.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-073.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-074.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-075.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-076.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-077.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-078.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-081.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-082.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-083.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-084.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-085.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-086.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-087.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-088.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-093.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-094.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-096.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-097.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-098.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-099.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-100.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-103.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-104.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-105.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-106.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-107.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-108.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-109.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-111.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-112.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-114.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-123.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-124.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-125.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-126.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-127.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-128.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-129.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-130.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-131.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-132.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-133.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-134.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-135.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-136.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-137.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-138.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-139.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-140.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-141.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-142.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-143.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-144.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-145.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-146.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-147.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-148.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-149.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-150.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-151.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-152.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-153.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-154.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-155.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-156.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-157.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-158.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-159.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-160.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-161.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-162.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-163.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-164.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-165.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-166.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-167.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-168.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-179.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-180.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-183.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-184.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-187.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-188.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-191.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-192.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-195.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-196.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-cell-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-colgroup-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-column-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-row-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-rowgroup-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-table-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-cell-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-colgroup-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-column-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-row-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-rowgroup-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-cell-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-margin-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026c.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026d.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/bidi-span-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-bidi-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-113-ref-margin.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-114-ref.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-block-margin.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-inline-margin.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-on-blank-line-rtl-left-align.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001-ref-inline-margin.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-lowercase-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-014.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-015.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-bidirectionality-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-attribute-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-011.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-022.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-026.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-027.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-033.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-034.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-035.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-037.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-038.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-039.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-045.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-013.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-023.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-024.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-025.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-036.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-046.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-047.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-048.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-049.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-050.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-051.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-058.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-059.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-061.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-062.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-069.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-070.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-071.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-072.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-073.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-074.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-075.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-081.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-082.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-093.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-094.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-095.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-099.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-101.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-109.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-110.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-111.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-112.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-113.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-114.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-115.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-119.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-121.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-122.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-130.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-009.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-010.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-012.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-021.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/units-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/units-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/units-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/units-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/values/units-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-005.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-applies-to-010a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-percentage-003a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-003.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-203.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-205.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/animation/visibility-interpolation.html.ini361
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-004.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-006.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-007.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-008.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-018.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-019.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-020.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-028.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-029.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-030.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-031.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-032.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-040.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-041.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-042.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-043.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-044.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-052.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-053.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-054.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-055.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-056.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-064.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-065.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-066.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-067.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-068.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-076.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-077.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-078.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-079.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-080.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-088.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-089.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-090.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-091.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-092.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-097.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-098.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-099.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-102.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-applies-to-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001a.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001b.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001c.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-005.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-block-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001a.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/box-offsets-rel-pos-002.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-016.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-017.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/inline-formatting-context-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/left-offset-position-fixed-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/visuren/position-absolute-percentage-inherit-001.xht.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-017.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-018.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini6
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini2
-rw-r--r--tests/wpt/metadata/MANIFEST.json1175
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini3
-rw-r--r--tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini3
-rw-r--r--tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html.ini3
-rw-r--r--tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini2
-rw-r--r--tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-3D-transform.html.ini2
-rw-r--r--tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini3
-rw-r--r--tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-animations/AnimationEffect-updateTiming.tentative.html.ini16
-rw-r--r--tests/wpt/metadata/css/css-animations/CSSAnimation-effect.tentative.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-animations/CSSAnimation-pausing.tentative.html.ini18
-rw-r--r--tests/wpt/metadata/css/css-animations/KeyframeEffect-getKeyframes.tentative.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-animations/KeyframeEffect-setKeyframes.tentative.html.ini10
-rw-r--r--tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.ini5
-rw-r--r--tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.ini5
-rw-r--r--tests/wpt/metadata/css/css-paint-api/geometry-border-image-001.https.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-paint-api/geometry-border-image-004.https.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini4
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini3
-rw-r--r--tests/wpt/metadata/css/css-transitions/CSSTransition-effect.tentative.html.ini6
-rw-r--r--tests/wpt/metadata/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html.ini16
-rw-r--r--tests/wpt/metadata/css/css-ui/outline-with-padding-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini96
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-angle-serialize.html.ini114
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini30
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini237
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini150
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-length-percent-serialize.html.ini153
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-length-serialize.html.ini66
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini42
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-number-serialize.html.ini120
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini39
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-percentage-serialize.html.ini69
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini63
-rw-r--r--tests/wpt/metadata/css/css-values/minmax-time-serialize.html.ini66
-rw-r--r--tests/wpt/metadata/css/css-values/round-function.html.ini60
-rw-r--r--tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/CaretPosition-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementsFromPoint-invalid-cases.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html.ini10
-rw-r--r--tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-duplicate.html.ini12
-rw-r--r--tests/wpt/metadata/dom/events/Event-dispatch-detached-input-and-change.html.ini25
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini14
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini6
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini3
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini3
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint.html.ini5
-rw-r--r--tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini7
-rw-r--r--tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-transform-translatez.html.ini3
-rw-r--r--tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html.ini5
-rw-r--r--tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/inactive-context-import.html.ini5
-rw-r--r--tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini18
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-multi-channels.html.ini18
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini36
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini10
-rw-r--r--tests/wpt/metadata/webmessaging/with-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini1
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/css/canvas_as_block_element_a.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/css/canvas_over_area.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/css/max_inline_block_size_canvas.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/css/pixel_snapping_glyphs.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/fetch_cannot_overwhelm_system.window.js.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/localeCompare.html.ini5
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/clearcolor.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/draw_arrays_simple.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_abv.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_canvas2d.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_mipmap.html.ini2
-rw-r--r--tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_simple.html.ini2
-rw-r--r--tests/wpt/mozilla/meta/MANIFEST.json2
-rw-r--r--tests/wpt/mozilla/meta/mozilla/localeCompare.html.ini5
-rw-r--r--tests/wpt/mozilla/tests/mozilla/interfaces.js3
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/support.js20
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-connections.any.js72
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-databases.any.js72
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-mixed-scopes.any.js63
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ordering.any.js40
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ro-waits-for-rw.any.js26
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-rw-scopes.any.js63
-rw-r--r--tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-within-database.any.js55
-rw-r--r--tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py2
-rw-r--r--tests/wpt/web-platform-tests/common/security-features/README.md10
-rwxr-xr-xtests/wpt/web-platform-tests/common/security-features/tools/generate.py11
-rw-r--r--tests/wpt/web-platform-tests/common/security-features/tools/spec.src.json468
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html15
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html15
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html15
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html41
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html15
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html15
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/messages.json15
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-address-novalid.html20
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-empty-novalid.html20
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-isvalid.html180
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-section-novalid.html20
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-token-novalid.html20
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-work-novalid.html20
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-address-novalid.html16
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-empty-novalid.html16
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-isvalid.html80
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-section-novalid.html16
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-token-novalid.html16
-rw-r--r--tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-work-novalid.html16
-rw-r--r--tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonces.html84
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative.html174
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html77
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html243
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html221
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative.html122
-rw-r--r--tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js49
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative-ref.html30
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html46
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html72
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-004.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-005.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-006.html27
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001-ref.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001.html45
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-002.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004-ref.html39
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004.html42
-rw-r--r--tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-000.html66
-rw-r--r--tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-001.html38
-rw-r--r--tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-002.html16
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html49
-rw-r--r--tests/wpt/web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html117
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/outline-with-padding-001.html30
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/reference/outline-with-padding-001-ref.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/max-length-percent-001.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/min-length-percent-001.html8
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/min-max-percentage-length-interpolation.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html10
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-angle-serialize.html122
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-integer-computed.html14
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-length-computed.html11
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-computed.html112
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-serialize.html168
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-length-serialize.html108
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-number-computed.html45
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-number-serialize.html64
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-percentage-computed.html40
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-percentage-serialize.html73
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-time-computed.html15
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/minmax-time-serialize.html76
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/round-function.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-values/update-subpixel-rem-unit.html21
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html66
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-duplicate.html76
-rw-r--r--tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html26
-rw-r--r--tests/wpt/web-platform-tests/css/support/numeric-testcommon.js187
-rw-r--r--tests/wpt/web-platform-tests/css/support/serialize-testcommon.js94
-rw-r--r--tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html72
-rw-r--r--tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html72
-rw-r--r--tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html18
-rw-r--r--tests/wpt/web-platform-tests/dom/events/Event-dispatch-detached-input-and-change.html190
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html21
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-with-frames.html44
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html28
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/resources/feature-parameters-frame.html50
-rw-r--r--tests/wpt/web-platform-tests/feature-policy/parameters/resources/sample-1.pngbin428 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woffbin1336 -> 1344 bytes
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https.html7
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html86
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/reporting.https.html68
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw.https.html16
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/report.py19
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js23
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/stash-take.py9
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html35
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html.sub.headers4
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/universal-worker.js (renamed from tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/dedicated-worker.js)0
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/service-worker-cache-storage.https.html117
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html15
-rw-r--r--tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html4
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html26
-rw-r--r--tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html28
-rw-r--r--tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html21
-rw-r--r--tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/assumptions/allowed-to-play.html.ini4
-rw-r--r--tests/wpt/web-platform-tests/interfaces/construct-stylesheets.idl2
-rw-r--r--tests/wpt/web-platform-tests/interfaces/origin-policy.idl8
-rw-r--r--tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl22
-rw-r--r--tests/wpt/web-platform-tests/interfaces/trusted-types.tentative.idl41
-rw-r--r--tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl98
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/META.yml3
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/backingstore.https.html33
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/cause-errors-via-idb.https.html116
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/entries.https.html291
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/helpers/equality-asserters.js91
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/helpers/expose-as-global.html8
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/helpers/iter-assert.js42
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/helpers/kvs-tests.js82
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/interface.https.html176
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/key-types.https.html67
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/keys-values-entries.https.html78
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/keys.https.html237
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/README.md5
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/dynamic-import.html18
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/import-maps.html31
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/import-statement.html26
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/resources/dummy-module.js1
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/resources/test-side-effects.js1
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/script-element.html21
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/secure-context/side-effects.html28
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/storage-smoke-test.https.html15
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/undefined-value.https.html39
-rw-r--r--tests/wpt/web-platform-tests/kv-storage/values.https.html232
-rw-r--r--tests/wpt/web-platform-tests/lint.whitelist4
-rw-r--r--tests/wpt/web-platform-tests/mathml/tools/axisheight.py4
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/README.md2
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/measure-memory-cross-origin-iframe.tentative.window.js9
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/measure-memory-same-origin-iframe.tentative.window.js9
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js17
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.window.js17
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/resources/child.sub.html8
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/resources/common.js24
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/resources/grandchild.sub.html7
-rw-r--r--tests/wpt/web-platform-tests/measure-memory/resources/iframe.sub.html7
-rw-r--r--tests/wpt/web-platform-tests/mixed-content/generic/spec_json.js2
-rw-r--r--tests/wpt/web-platform-tests/mixed-content/spec.src.json281
-rw-r--r--tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemBaseHandle-IndexedDB.js24
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html225
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/generic/spec_json.js2
-rw-r--r--tests/wpt/web-platform-tests/referrer-policy/spec.src.json421
-rw-r--r--tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js15
-rw-r--r--tests/wpt/web-platform-tests/shadow-dom/resources/shadow-dom.js10
-rw-r--r--tests/wpt/web-platform-tests/shadow-dom/slots-imperative-slot-api.tentative.html229
-rw-r--r--tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js50
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb8
-rw-r--r--tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py8
-rw-r--r--tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py25
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/revlist.py3
-rw-r--r--tests/wpt/web-platform-tests/tools/wpt/virtualenv.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py6
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py5
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html111
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html111
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-getPolicyNames.tentative.html24
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html48
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html40
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html121
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html85
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html31
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html31
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html29
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html29
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.https.window.js (renamed from tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.window.js)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.https.html (renamed from tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html)0
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/generic/spec_json.js2
-rw-r--r--tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json273
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html21
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html17
-rw-r--r--tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html25
-rw-r--r--tests/wpt/web-platform-tests/wasm/webapi/contenttype.any.js11
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html4
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html36
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html23
-rw-r--r--tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html7
-rw-r--r--tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js3
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html51
-rw-r--r--tests/wpt/web-platform-tests/webauthn/createcredential-badargs-authnrselection.https.html6
-rw-r--r--tests/wpt/web-platform-tests/webauthn/createcredential-badargs-rp.https.html16
-rw-r--r--tests/wpt/web-platform-tests/webauthn/createcredential-excludecredentials.https.html2
-rw-r--r--tests/wpt/web-platform-tests/webauthn/createcredential-extensions.https.html9
-rw-r--r--tests/wpt/web-platform-tests/webauthn/createcredential-passing.https.html1
-rw-r--r--tests/wpt/web-platform-tests/webauthn/createcredential-pubkeycredparams.https.html4
-rw-r--r--tests/wpt/web-platform-tests/webauthn/getcredential-badargs-rpid.https.html8
-rw-r--r--tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html3
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-failure.html6
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/dedicated-worker-parse-error-failure.html35
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/static-import-syntax-error.js1
-rw-r--r--tests/wpt/web-platform-tests/workers/modules/resources/syntax-error.js1
-rw-r--r--tests/wpt/webgl/meta/conformance2/context/methods-2.html.ini54
-rw-r--r--tests/wpt/webgl/meta/conformance2/programs/gl-get-frag-data-location.html.ini4
-rw-r--r--tests/wpt/webgl/meta/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html.ini7
-rw-r--r--tests/wpt/webgl/meta/conformance2/rendering/framebuffer-texture-changing-base-level.html.ini15
3368 files changed, 16904 insertions, 5274 deletions
diff --git a/Cargo.lock b/Cargo.lock
index a0f9377b3c2..b0b1a6fd461 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -17,9 +17,9 @@ checksum = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
[[package]]
name = "aho-corasick"
-version = "0.7.3"
+version = "0.7.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6f484ae0c99fec2e858eb6134949117399f222608d84cadb3f58c1f97c2364c"
+checksum = "d5e63fd144e18ba274ae7095c0197a870a7b9468abc801dd62f190d80817d2ec"
dependencies = [
"memchr",
]
@@ -257,9 +257,9 @@ dependencies = [
[[package]]
name = "bindgen"
-version = "0.51.1"
+version = "0.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebd71393f1ec0509b553aa012b9b58e81dadbdff7130bd3b8cba576e69b32f75"
+checksum = "99de13bb6361e01e493b3db7928085dcc474b7ba4f5481818e53a89d76b8393f"
dependencies = [
"bitflags",
"cexpr",
@@ -268,6 +268,7 @@ dependencies = [
"clap",
"env_logger",
"lazy_static",
+ "lazycell",
"log",
"peeking_take_while",
"proc-macro2 1.0.1",
@@ -409,12 +410,6 @@ dependencies = [
]
[[package]]
-name = "build_const"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
-
-[[package]]
name = "byte-slice-cast"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -427,10 +422,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "980479e6fde23246dfb54d47580d66b4e99202e7579c5eaa9fe10ecb5ebd2182"
[[package]]
+name = "bytemuck"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37fa13df2292ecb479ec23aa06f4507928bef07839be9ef15281411076629431"
+
+[[package]]
name = "byteorder"
-version = "1.2.7"
+version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
[[package]]
name = "bytes"
@@ -485,7 +486,7 @@ dependencies = [
"embedder_traits",
"euclid",
"fnv",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"half",
"ipc-channel",
"log",
@@ -549,7 +550,7 @@ dependencies = [
"quote 1.0.2",
"serde",
"serde_json",
- "syn 1.0.3",
+ "syn",
"tempfile",
"toml",
]
@@ -572,9 +573,9 @@ checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
[[package]]
name = "cexpr"
-version = "0.3.3"
+version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc0086be9ca82f7fc89fc873435531cb898b86e850005850de1f820e2db6e9b"
+checksum = "fce5b5fb86b0c57c20c834c1b412fd09c77c8a59b9473f86272709e78874cd1d"
dependencies = [
"nom",
]
@@ -745,7 +746,7 @@ dependencies = [
"embedder_traits",
"euclid",
"gfx_traits",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"image",
"ipc-channel",
"keyboard-types",
@@ -928,15 +929,6 @@ dependencies = [
]
[[package]]
-name = "crc"
-version = "1.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
-dependencies = [
- "build_const",
-]
-
-[[package]]
name = "crc32fast"
version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1014,7 +1006,7 @@ dependencies = [
"quote 1.0.2",
"serde",
"smallvec 0.6.10",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1024,7 +1016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfae75de57f2b2e85e8768c3ea840fd159c8f33e2b6522c7835b7abac81be16e"
dependencies = [
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1044,7 +1036,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cd670e5ff58768ef624207fb95709ce63b8d05573fb9a05165f0eef471ea6a3a"
dependencies = [
"procedural-masquerade",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1078,7 +1070,7 @@ dependencies = [
"ident_case",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1089,7 +1081,7 @@ checksum = "0cd3e432e52c0810b72898296a69d66b1d78d1517dff6cde7a130557a55a62c1"
dependencies = [
"darling_core",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1134,7 +1126,7 @@ dependencies = [
name = "deny_public_fields"
version = "0.0.1"
dependencies = [
- "syn 1.0.3",
+ "syn",
"synstructure",
]
@@ -1152,31 +1144,19 @@ dependencies = [
"darling",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
"synstructure",
]
[[package]]
name = "derive_more"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f57d78cf3bd45270dad4e70c21ec77a960b36c7a841ff9db76aaa775a8fb871"
-dependencies = [
- "proc-macro2 0.4.26",
- "quote 0.6.12",
- "rustc_version",
- "syn 0.15.39",
-]
-
-[[package]]
-name = "derive_more"
version = "0.99.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1292,7 +1272,7 @@ name = "dom_struct"
version = "0.0.1"
dependencies = [
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1301,7 +1281,7 @@ version = "0.0.1"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1363,10 +1343,28 @@ dependencies = [
]
[[package]]
+name = "encoding_c"
+version = "0.9.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1891d977f814fd638c3b964987778665b5d1dc8690f46c4c7adc91466ad1c78a"
+dependencies = [
+ "encoding_rs",
+]
+
+[[package]]
+name = "encoding_c_mem"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d32d28c32ff61236b8ea2678c6e43e63bf9690122cb53e9eca7dcefcc4ccb0c"
+dependencies = [
+ "encoding_rs",
+]
+
+[[package]]
name = "encoding_rs"
-version = "0.8.12"
+version = "0.8.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb"
+checksum = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28"
dependencies = [
"cfg-if",
]
@@ -1431,14 +1429,14 @@ checksum = "1df9d0cef4b051baf3ef7f9b1674273dc78cd56e02cba60fa187f9c0ff4ff5e0"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
name = "env_logger"
-version = "0.6.0"
+version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "afb070faf94c85d17d50ca44f6ad076bce18ae92f0037d350947240a36e9d42e"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
dependencies = [
"atty",
"humantime",
@@ -1498,13 +1496,14 @@ checksum = "86d4de0081402f5e88cdac65c8dcdcc73118c1a7a465e2a05f0da05843a8ea33"
[[package]]
name = "flate2"
-version = "1.0.1"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9fac2277e84e5e858483756647a9d0aa8d9a2b7cba517fd84325a0aaa69a0909"
+checksum = "ad3c5233c9a940c8719031b423d7e6c16af66e031cb0420b0896f5245bf181d3"
dependencies = [
+ "cfg-if",
+ "crc32fast",
"libc",
- "miniz-sys",
- "miniz_oxide_c_api",
+ "miniz_oxide",
]
[[package]]
@@ -1661,7 +1660,7 @@ dependencies = [
"proc-macro-hack",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -1959,6 +1958,17 @@ dependencies = [
]
[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log",
+ "xml-rs",
+]
+
+[[package]]
name = "gleam"
version = "0.6.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1977,6 +1987,15 @@ dependencies = [
]
[[package]]
+name = "gleam"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332d1f4e6c6181ed07178f84a552b2387d43ecf6821a86c22cfb3883ea3fb1b9"
+dependencies = [
+ "gl_generator 0.14.0",
+]
+
+[[package]]
name = "glib"
version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2522,7 +2541,7 @@ dependencies = [
"markup5ever",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -2556,9 +2575,9 @@ checksum = "7b6288d7db100340ca12873fd4d08ad1b8f206a9457798dfb17c018a33fee540"
[[package]]
name = "humantime"
-version = "1.1.1"
+version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
dependencies = [
"quick-error",
]
@@ -2646,14 +2665,14 @@ dependencies = [
[[package]]
name = "image"
-version = "0.22.1"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "663a975007e0b49903e2e8ac0db2c432c465855f2d65f17883ba1476e85f0b42"
+checksum = "ef4e336ec01a678e7ab692914c641181528e8656451e6252f8f9e33728882eaf"
dependencies = [
+ "bytemuck",
"byteorder",
"gif",
"jpeg-decoder",
- "lzw",
"num-iter",
"num-rational",
"num-traits",
@@ -2815,7 +2834,7 @@ name = "jstraceable_derive"
version = "0.0.1"
dependencies = [
"proc-macro2 1.0.1",
- "syn 1.0.3",
+ "syn",
"synstructure",
]
@@ -2889,6 +2908,7 @@ version = "0.0.1"
dependencies = [
"app_units",
"atomic_refcell",
+ "canvas_traits",
"cssparser",
"embedder_traits",
"euclid",
@@ -3138,7 +3158,7 @@ dependencies = [
"euclid",
"gaol",
"gfx",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"gstreamer",
"ipc-channel",
"keyboard-types",
@@ -3237,9 +3257,9 @@ dependencies = [
[[package]]
name = "log"
-version = "0.4.6"
+version = "0.4.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
dependencies = [
"cfg-if",
]
@@ -3342,7 +3362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e37c5d4cd9473c5f4c9c111f033f15d4df9bd378fdf615944e360a4f55a05f0b"
dependencies = [
"proc-macro2 1.0.1",
- "syn 1.0.3",
+ "syn",
"synstructure",
]
@@ -3395,9 +3415,9 @@ dependencies = [
[[package]]
name = "memchr"
-version = "2.2.0"
+version = "2.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
[[package]]
name = "memmap"
@@ -3491,24 +3511,11 @@ dependencies = [
[[package]]
name = "miniz_oxide"
-version = "0.1.3"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba430291c9d6cedae28bcd2d49d1c32fc57d60cd49086646c5dd5673a870eb5"
+checksum = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
dependencies = [
"adler32",
- "libc",
-]
-
-[[package]]
-name = "miniz_oxide_c_api"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a5b8234d6103ebfba71e29786da4608540f862de5ce980a1c94f86a40ca0d51"
-dependencies = [
- "cc",
- "crc",
- "libc",
- "miniz_oxide",
]
[[package]]
@@ -3586,8 +3593,8 @@ dependencies = [
[[package]]
name = "mozjs"
-version = "0.12.1"
-source = "git+https://github.com/servo/rust-mozjs#9b0d063ba062f4cc60c3bab9250218d6935d647b"
+version = "0.13.0"
+source = "git+https://github.com/servo/rust-mozjs?branch=smup#a09ebb19ee0f1b7d20716b60b19c590fa28a9e1b"
dependencies = [
"cc",
"lazy_static",
@@ -3599,11 +3606,13 @@ dependencies = [
[[package]]
name = "mozjs_sys"
-version = "0.67.1"
-source = "git+https://github.com/servo/mozjs?rev=59065889ec7726b767d70b8702b43b4e4776cbfe#59065889ec7726b767d70b8702b43b4e4776cbfe"
+version = "0.68.0"
+source = "git+https://github.com/servo/mozjs?rev=aabcc9ba889b2755f1e4e83f28323a60415a790f#aabcc9ba889b2755f1e4e83f28323a60415a790f"
dependencies = [
"bindgen",
"cc",
+ "encoding_c",
+ "encoding_c_mem",
"libc",
"libz-sys",
"walkdir",
@@ -3775,14 +3784,13 @@ dependencies = [
[[package]]
name = "num-derive"
-version = "0.2.3"
+version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8af1847c907c2f04d7bfd572fb25bbb4385c637fe5be163cf2f8c5d778fe1e7d"
+checksum = "0c8b15b261814f992e33760b1fca9fe8b693d8a65299f20c9901688636cfb746"
dependencies = [
- "num-traits",
- "proc-macro2 0.4.26",
- "quote 0.6.12",
- "syn 0.15.39",
+ "proc-macro2 1.0.1",
+ "quote 1.0.2",
+ "syn",
]
[[package]]
@@ -4019,13 +4027,13 @@ dependencies = [
"proc-macro-hack",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
name = "peek-poke"
version = "0.2.0"
-source = "git+https://github.com/servo/webrender#edac864107cf43732ec66a9d3288e869a70ce1de"
+source = "git+https://github.com/servo/webrender#4ba17a61580a03b68881ffba7ee22bcf8e1aac72"
dependencies = [
"euclid",
"peek-poke-derive 0.2.1",
@@ -4046,17 +4054,17 @@ source = "git+https://github.com/kvark/peek-poke?rev=969bd7fe2be1a83f87916dc8b38
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
name = "peek-poke-derive"
version = "0.2.1"
-source = "git+https://github.com/servo/webrender#edac864107cf43732ec66a9d3288e869a70ce1de"
+source = "git+https://github.com/servo/webrender#4ba17a61580a03b68881ffba7ee22bcf8e1aac72"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
"synstructure",
"unicode-xid 0.2.0",
]
@@ -4125,7 +4133,7 @@ dependencies = [
"proc-macro-hack",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -4173,9 +4181,9 @@ dependencies = [
[[package]]
name = "png"
-version = "0.15.0"
+version = "0.15.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8422b27bb2c013dd97b9aef69e161ce262236f49aaf46a0489011c8ff0264602"
+checksum = "ef859a23054bbfee7811284275ae522f0434a3c8e7f4b74bd4a35ae7e1c4a283"
dependencies = [
"bitflags",
"crc32fast",
@@ -4209,7 +4217,7 @@ checksum = "e688f31d92ffd7c1ddc57a1b4e6d773c0f2a14ee437a4b0a4f5a69c80eb221c8"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -4484,25 +4492,21 @@ checksum = "825740057197b7d43025e7faf6477eaabc03434e153233da02d1f44602f71527"
[[package]]
name = "regex"
-version = "1.1.6"
+version = "1.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f0a0bcab2fd7d1d7c54fa9eae6f43eddeb9ce2e7352f8518a814a4f65d60c58"
+checksum = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8"
dependencies = [
"aho-corasick",
"memchr",
"regex-syntax",
"thread_local",
- "utf8-ranges",
]
[[package]]
name = "regex-syntax"
-version = "0.6.6"
+version = "0.6.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcfd8681eebe297b81d98498869d4aae052137651ad7b96822f09ceb690d0a96"
-dependencies = [
- "ucd-util",
-]
+checksum = "1132f845907680735a84409c3bebc64d1364a5683ffbce899550cd09d5eaefc1"
[[package]]
name = "relevant"
@@ -4579,14 +4583,14 @@ dependencies = [
[[package]]
name = "rust-webvr"
-version = "0.17.0"
+version = "0.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feaf62b8a5271e024d426548d61d26b588e476b1b631af31f960f9995cdb8257"
+checksum = "a965d7b934fef625349e5f21774046da180000911140898235576a91dfbbe633"
dependencies = [
"bindgen",
"euclid",
"gl_generator 0.13.1",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"glutin",
"gvr-sys",
"libc",
@@ -4870,7 +4874,7 @@ version = "0.22.0"
dependencies = [
"bitflags",
"cssparser",
- "derive_more 0.99.2",
+ "derive_more",
"fxhash",
"log",
"phf",
@@ -4924,7 +4928,7 @@ checksum = "a8c6faef9a2e64b0064f48570289b4bf8823b7581f1d6157c1b52152306651d0"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -4960,7 +4964,7 @@ dependencies = [
"clipboard",
"euclid",
"getopts",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"glutin",
"image",
"keyboard-types",
@@ -5027,7 +5031,7 @@ version = "0.0.1"
dependencies = [
"crossbeam-channel",
"euclid",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"glib",
"gst-plugin-version-helper",
"gstreamer",
@@ -5252,7 +5256,7 @@ dependencies = [
"itertools",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -5273,7 +5277,7 @@ source = "git+https://github.com/servo/media#03c7420794b7d1bb80e50e03eaf3ae6e55f
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
]
[[package]]
@@ -5486,9 +5490,9 @@ dependencies = [
[[package]]
name = "sparkle"
-version = "0.1.19"
+version = "0.1.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f334407d95c9450dc10f8ca90ba2555f3739052848feedb4c60cb83e1dc94b29"
+checksum = "34a99c8f866b15ebf845b1957a244e033f434346f648620c645d95a05b00c0af"
dependencies = [
"gl_generator 0.13.1",
]
@@ -5590,7 +5594,7 @@ dependencies = [
"byteorder",
"crossbeam-channel",
"cssparser",
- "derive_more 0.99.2",
+ "derive_more",
"encoding_rs",
"euclid",
"fallible",
@@ -5645,7 +5649,7 @@ dependencies = [
"derive_common",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
"synstructure",
]
@@ -5799,17 +5803,6 @@ checksum = "e454d048db5527d000bfddb77bd072bbf3a1e2ae785f16d9bd116e07c2ab45eb"
[[package]]
name = "syn"
-version = "0.15.39"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4d960b829a55e56db167e861ddb43602c003c7be0bee1d345021703fac2fb7c"
-dependencies = [
- "proc-macro2 0.4.26",
- "quote 0.6.12",
- "unicode-xid 0.1.0",
-]
-
-[[package]]
-name = "syn"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "158521e6f544e7e3dcfc370ac180794aa38cb34a1b1e07609376d4adcf429b93"
@@ -5827,7 +5820,7 @@ checksum = "3f085a5855930c0441ca1288cf044ea4aecf4f43a91668abdb870b4ba546a203"
dependencies = [
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
"unicode-xid 0.2.0",
]
@@ -5907,9 +5900,9 @@ checksum = "8eaa81235c7058867fa8c0e7314f33dcce9c215f535d1913822a2b3f5e289f3c"
[[package]]
name = "thread_local"
-version = "0.3.6"
+version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
dependencies = [
"lazy_static",
]
@@ -5922,14 +5915,13 @@ checksum = "5920e77802b177479ab5795767fa48e68f61b2f516c2ac0041e2978dd8efe483"
[[package]]
name = "tiff"
-version = "0.3.1"
+version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7b7c2cfc4742bd8a32f2e614339dd8ce30dbcf676bb262bd63a2327bc5df57d"
+checksum = "002351e428db1eb1d8656d4ca61947c3519ac3191e1c804d4600cd32093b77ad"
dependencies = [
"byteorder",
"lzw",
- "num-derive",
- "num-traits",
+ "miniz_oxide",
]
[[package]]
@@ -5979,7 +5971,7 @@ dependencies = [
"derive_common",
"proc-macro2 1.0.1",
"quote 1.0.2",
- "syn 1.0.3",
+ "syn",
"synstructure",
]
@@ -6222,12 +6214,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe4fa6e588762366f1eb4991ce59ad1b93651d0b769dfb4e4d1c5c4b943d1159"
[[package]]
-name = "ucd-util"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd2be2d6639d0f8fe6cdda291ad456e23629558d466e2789d2c3e9892bda285d"
-
-[[package]]
name = "uluru"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6338,12 +6324,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
[[package]]
-name = "utf8-ranges"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
-
-[[package]]
name = "uuid"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -6562,8 +6542,8 @@ dependencies = [
[[package]]
name = "webrender"
-version = "0.60.0"
-source = "git+https://github.com/servo/webrender#edac864107cf43732ec66a9d3288e869a70ce1de"
+version = "0.61.0"
+source = "git+https://github.com/servo/webrender#4ba17a61580a03b68881ffba7ee22bcf8e1aac72"
dependencies = [
"base64 0.10.1",
"bincode",
@@ -6578,7 +6558,7 @@ dependencies = [
"euclid",
"freetype",
"fxhash",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"image",
"lazy_static",
"libc",
@@ -6603,15 +6583,15 @@ dependencies = [
[[package]]
name = "webrender_api"
-version = "0.60.0"
-source = "git+https://github.com/servo/webrender#edac864107cf43732ec66a9d3288e869a70ce1de"
+version = "0.61.0"
+source = "git+https://github.com/servo/webrender#4ba17a61580a03b68881ffba7ee22bcf8e1aac72"
dependencies = [
"app_units",
"bitflags",
"byteorder",
"core-foundation 0.6.4",
"core-graphics 0.17.3",
- "derive_more 0.13.0",
+ "derive_more",
"euclid",
"malloc_size_of_derive",
"peek-poke 0.2.0 (git+https://github.com/servo/webrender)",
@@ -6625,7 +6605,7 @@ dependencies = [
[[package]]
name = "webrender_build"
version = "0.0.1"
-source = "git+https://github.com/servo/webrender#edac864107cf43732ec66a9d3288e869a70ce1de"
+source = "git+https://github.com/servo/webrender#4ba17a61580a03b68881ffba7ee22bcf8e1aac72"
dependencies = [
"sha2",
]
@@ -6669,12 +6649,12 @@ dependencies = [
[[package]]
name = "webxr"
version = "0.0.1"
-source = "git+https://github.com/servo/webxr#68b024221b8c72b5b33a63441d63803a13eadf03"
+source = "git+https://github.com/servo/webxr#a1afba096c9797c3663727de58f54eae898f3050"
dependencies = [
"bindgen",
"euclid",
"gl_generator 0.13.1",
- "gleam 0.6.18",
+ "gleam 0.9.2",
"glutin",
"log",
"openxr",
@@ -6690,7 +6670,7 @@ dependencies = [
[[package]]
name = "webxr-api"
version = "0.0.1"
-source = "git+https://github.com/servo/webxr#68b024221b8c72b5b33a63441d63803a13eadf03"
+source = "git+https://github.com/servo/webxr#a1afba096c9797c3663727de58f54eae898f3050"
dependencies = [
"euclid",
"ipc-channel",
@@ -6818,7 +6798,7 @@ dependencies = [
[[package]]
name = "wr_malloc_size_of"
version = "0.0.1"
-source = "git+https://github.com/servo/webrender#edac864107cf43732ec66a9d3288e869a70ce1de"
+source = "git+https://github.com/servo/webrender#4ba17a61580a03b68881ffba7ee22bcf8e1aac72"
dependencies = [
"app_units",
"euclid",
diff --git a/components/canvas/Cargo.toml b/components/canvas/Cargo.toml
index 941eca52df2..c32b020838e 100644
--- a/components/canvas/Cargo.toml
+++ b/components/canvas/Cargo.toml
@@ -25,7 +25,7 @@ cssparser = "0.27"
embedder_traits = {path = "../embedder_traits"}
euclid = "0.20"
fnv = "1.0"
-gleam = "0.6.7"
+gleam = "0.9"
half = "1"
ipc-channel = "0.14"
log = "0.4"
@@ -35,7 +35,7 @@ raqote = {git = "https://github.com/jrmuizel/raqote"}
time = { version = "0.1.0", optional = true }
pixels = {path = "../pixels"}
servo_config = {path = "../config"}
-sparkle = "0.1.19"
+sparkle = "0.1.22"
webrender = {git = "https://github.com/servo/webrender"}
webrender_api = {git = "https://github.com/servo/webrender"}
webrender_traits = {path = "../webrender_traits"}
diff --git a/components/canvas/canvas_data.rs b/components/canvas/canvas_data.rs
index f31b375222f..f291ce416e9 100644
--- a/components/canvas/canvas_data.rs
+++ b/components/canvas/canvas_data.rs
@@ -971,8 +971,7 @@ impl<'a> CanvasData<'a> {
stride: None,
format: webrender_api::ImageFormat::BGRA8,
offset: 0,
- is_opaque: false,
- allow_mipmaps: false,
+ flags: webrender_api::ImageDescriptorFlags::empty(),
};
let data = self.drawtarget.snapshot_data_owned();
let data = webrender_api::ImageData::Raw(Arc::new(data));
diff --git a/components/canvas/webgl_limits.rs b/components/canvas/webgl_limits.rs
index 1a08dfea945..27a5b0e56dc 100644
--- a/components/canvas/webgl_limits.rs
+++ b/components/canvas/webgl_limits.rs
@@ -79,6 +79,8 @@ impl GLLimitsDetect for GLLimits {
max_vertex_uniform_components,
max_fragment_uniform_blocks,
max_fragment_uniform_components,
+ max_3d_texture_size,
+ max_array_texture_layers,
uniform_buffer_offset_alignment,
);
if webgl_version == WebGLVersion::WebGL2 {
@@ -102,6 +104,8 @@ impl GLLimitsDetect for GLLimits {
max_fragment_uniform_blocks = gl.get_integer(gl::MAX_FRAGMENT_UNIFORM_BLOCKS);
max_fragment_uniform_components = gl.get_integer(gl::MAX_FRAGMENT_UNIFORM_COMPONENTS);
uniform_buffer_offset_alignment = gl.get_integer(gl::UNIFORM_BUFFER_OFFSET_ALIGNMENT);
+ max_3d_texture_size = gl.get_integer(gl::MAX_3D_TEXTURE_SIZE);
+ max_array_texture_layers = gl.get_integer(gl::MAX_ARRAY_TEXTURE_LAYERS)
} else {
max_uniform_block_size = 0;
max_uniform_buffer_bindings = 0;
@@ -118,6 +122,8 @@ impl GLLimitsDetect for GLLimits {
max_fragment_uniform_blocks = 0;
max_fragment_uniform_components = 0;
uniform_buffer_offset_alignment = 0;
+ max_3d_texture_size = 0;
+ max_array_texture_layers = 0;
}
GLLimits {
@@ -148,6 +154,8 @@ impl GLLimitsDetect for GLLimits {
max_vertex_uniform_components,
max_fragment_uniform_blocks,
max_fragment_uniform_components,
+ max_3d_texture_size,
+ max_array_texture_layers,
uniform_buffer_offset_alignment,
}
}
diff --git a/components/canvas/webgl_thread.rs b/components/canvas/webgl_thread.rs
index 1c0d7ed498f..ddd138105a4 100644
--- a/components/canvas/webgl_thread.rs
+++ b/components/canvas/webgl_thread.rs
@@ -945,13 +945,14 @@ impl WebGLThread {
/// Helper function to create a `webrender_api::ImageDescriptor`.
fn image_descriptor(size: Size2D<i32>, alpha: bool) -> webrender_api::ImageDescriptor {
+ let mut flags = webrender_api::ImageDescriptorFlags::empty();
+ flags.set(webrender_api::ImageDescriptorFlags::IS_OPAQUE, !alpha);
webrender_api::ImageDescriptor {
size: webrender_api::units::DeviceIntSize::new(size.width, size.height),
stride: None,
format: webrender_api::ImageFormat::BGRA8,
offset: 0,
- is_opaque: !alpha,
- allow_mipmaps: false,
+ flags,
}
}
@@ -1286,6 +1287,12 @@ impl WebGLImpl {
Self::shader_precision_format(gl, shader_type, precision_type, chan)
},
WebGLCommand::GetExtensions(ref chan) => Self::get_extensions(gl, chan),
+ WebGLCommand::GetFragDataLocation(program_id, ref name, ref sender) => {
+ let location =
+ gl.get_frag_data_location(program_id.get(), &to_name_in_compiled_shader(name));
+ assert!(location >= 0);
+ sender.send(location).unwrap();
+ },
WebGLCommand::GetUniformLocation(program_id, ref name, ref chan) => {
Self::uniform_location(gl, program_id, &name, chan)
},
@@ -1974,6 +1981,19 @@ impl WebGLImpl {
WebGLCommand::InvalidateSubFramebuffer(target, ref attachments, x, y, w, h) => {
gl.invalidate_sub_framebuffer(target, attachments, x, y, w, h)
},
+ WebGLCommand::FramebufferTextureLayer(target, attachment, tex_id, level, layer) => {
+ let tex_id = tex_id.map_or(0, WebGLTextureId::get);
+ let attach = |attachment| {
+ gl.framebuffer_texture_layer(target, attachment, tex_id, level, layer)
+ };
+
+ if attachment == gl::DEPTH_STENCIL_ATTACHMENT {
+ attach(gl::DEPTH_ATTACHMENT);
+ attach(gl::STENCIL_ATTACHMENT);
+ } else {
+ attach(attachment)
+ }
+ },
}
// If debug asertions are enabled, then check the error state.
diff --git a/components/canvas_traits/webgl.rs b/components/canvas_traits/webgl.rs
index 8b689f6da10..56e43b9ab7b 100644
--- a/components/canvas_traits/webgl.rs
+++ b/components/canvas_traits/webgl.rs
@@ -305,6 +305,7 @@ pub enum WebGLCommand {
FramebufferTexture2D(u32, u32, u32, Option<WebGLTextureId>, i32),
GetExtensions(WebGLSender<String>),
GetShaderPrecisionFormat(u32, u32, WebGLSender<(i32, i32, i32)>),
+ GetFragDataLocation(WebGLProgramId, String, WebGLSender<i32>),
GetUniformLocation(WebGLProgramId, String, WebGLSender<i32>),
GetShaderInfoLog(WebGLShaderId, WebGLSender<String>),
GetProgramInfoLog(WebGLProgramId, WebGLSender<String>),
@@ -535,6 +536,7 @@ pub enum WebGLCommand {
ClearBufferfi(u32, i32, f32, i32),
InvalidateFramebuffer(u32, Vec<u32>),
InvalidateSubFramebuffer(u32, Vec<u32>, i32, i32, i32, i32),
+ FramebufferTextureLayer(u32, u32, Option<WebGLTextureId>, i32, i32),
}
macro_rules! nonzero_type {
@@ -1074,5 +1076,7 @@ pub struct GLLimits {
pub max_vertex_uniform_components: u32,
pub max_fragment_uniform_blocks: u32,
pub max_fragment_uniform_components: u32,
+ pub max_3d_texture_size: u32,
+ pub max_array_texture_layers: u32,
pub uniform_buffer_offset_alignment: u32,
}
diff --git a/components/compositing/Cargo.toml b/components/compositing/Cargo.toml
index 057090d3dda..e8ec781bcfd 100644
--- a/components/compositing/Cargo.toml
+++ b/components/compositing/Cargo.toml
@@ -20,8 +20,8 @@ crossbeam-channel = "0.4"
embedder_traits = {path = "../embedder_traits"}
euclid = "0.20"
gfx_traits = {path = "../gfx_traits"}
-gleam = {version = "0.6", optional = true}
-image = "0.22"
+gleam = {version = "0.9", optional = true}
+image = "0.23"
ipc-channel = "0.14"
libc = "0.2"
keyboard-types = "0.4.3"
@@ -31,7 +31,7 @@ net_traits = {path = "../net_traits"}
num-traits = "0.2"
pixels = {path = "../pixels", optional = true}
profile_traits = {path = "../profile_traits"}
-rust-webvr = {version = "0.17", features = ["mock", "openvr", "vrexternal"]}
+rust-webvr = {version = "0.19", features = ["mock", "openvr", "vrexternal"]}
script_traits = {path = "../script_traits"}
servo_geometry = {path = "../geometry"}
servo-media = {git = "https://github.com/servo/media"}
diff --git a/components/compositing/compositor.rs b/components/compositing/compositor.rs
index aa58e10b05f..af2775c0893 100644
--- a/components/compositing/compositor.rs
+++ b/components/compositing/compositor.rs
@@ -483,9 +483,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
ShutdownState::NotShuttingDown,
) => {
self.pipeline_details(pipeline_id).visible = visible;
- if visible {
- self.process_animations();
- }
+ self.process_animations();
},
(Msg::PipelineExited(pipeline_id, sender), _) => {
@@ -1396,7 +1394,7 @@ impl<Window: WindowMethods + ?Sized> IOCompositor<Window> {
FramebufferUintLength::new(height),
);
let dynamic_image = DynamicImage::ImageRgb8(img);
- if let Err(e) = dynamic_image.write_to(&mut file, ImageFormat::PNG)
+ if let Err(e) = dynamic_image.write_to(&mut file, ImageFormat::Png)
{
error!("Failed to save {} ({}).", path, e);
}
diff --git a/components/config/prefs.rs b/components/config/prefs.rs
index b4cc22a705b..12891c40313 100644
--- a/components/config/prefs.rs
+++ b/components/config/prefs.rs
@@ -388,7 +388,6 @@ mod gen {
level: i64,
},
},
- high_water_mark: i64,
max: i64,
},
native_regex: {
diff --git a/components/embedder_traits/Cargo.toml b/components/embedder_traits/Cargo.toml
index c7febfb7c5b..8095771d28d 100644
--- a/components/embedder_traits/Cargo.toml
+++ b/components/embedder_traits/Cargo.toml
@@ -18,7 +18,7 @@ lazy_static = "1"
log = "0.4"
msg = {path = "../msg"}
num-traits = "0.2"
-num-derive = "0.2"
+num-derive = "0.3"
serde = "1.0"
servo_url = {path = "../url"}
webrender_api = {git = "https://github.com/servo/webrender"}
diff --git a/components/layout/display_list/items.rs b/components/layout/display_list/items.rs
index d7afa8423c0..ff276b674e4 100644
--- a/components/layout/display_list/items.rs
+++ b/components/layout/display_list/items.rs
@@ -454,6 +454,7 @@ pub fn empty_common_item_properties() -> CommonItemProperties {
spatial_id: SpatialId::root_scroll_node(wr::PipelineId::dummy()),
hit_info: None,
flags: PrimitiveFlags::empty(),
+ item_key: None,
}
}
diff --git a/components/layout/display_list/webrender_helpers.rs b/components/layout/display_list/webrender_helpers.rs
index 51972fed316..973ef623d5a 100644
--- a/components/layout/display_list/webrender_helpers.rs
+++ b/components/layout/display_list/webrender_helpers.rs
@@ -338,5 +338,6 @@ fn build_common_item_properties(
// TODO(gw): Make use of the WR backface visibility functionality.
flags: PrimitiveFlags::default(),
hit_info: tag,
+ item_key: None,
}
}
diff --git a/components/layout_2020/Cargo.toml b/components/layout_2020/Cargo.toml
index 51c08c19e34..7d2f9e3311e 100644
--- a/components/layout_2020/Cargo.toml
+++ b/components/layout_2020/Cargo.toml
@@ -15,6 +15,7 @@ doctest = false
[dependencies]
app_units = "0.7"
atomic_refcell = "0.1"
+canvas_traits = {path = "../canvas_traits"}
cssparser = "0.27"
embedder_traits = {path = "../embedder_traits"}
euclid = "0.20"
diff --git a/components/layout_2020/dom_traversal.rs b/components/layout_2020/dom_traversal.rs
index e67f06eb7f9..1a3a969919c 100644
--- a/components/layout_2020/dom_traversal.rs
+++ b/components/layout_2020/dom_traversal.rs
@@ -5,7 +5,7 @@
use crate::context::LayoutContext;
use crate::element_data::{LayoutBox, LayoutDataForElement};
use crate::geom::PhysicalSize;
-use crate::replaced::ReplacedContent;
+use crate::replaced::{CanvasInfo, CanvasSource, ReplacedContent};
use crate::style_ext::{Display, DisplayGeneratingBox, DisplayInside, DisplayOutside};
use crate::wrapper::GetRawData;
use atomic_refcell::{AtomicRefCell, AtomicRefMut};
@@ -14,9 +14,10 @@ use net_traits::image::base::Image as NetImage;
use script_layout_interface::wrapper_traits::{
LayoutNode, ThreadSafeLayoutElement, ThreadSafeLayoutNode,
};
+use script_layout_interface::HTMLCanvasDataSource;
use servo_arc::Arc as ServoArc;
use std::marker::PhantomData as marker;
-use std::sync::Arc;
+use std::sync::{Arc, Mutex};
use style::dom::{OpaqueNode, TNode};
use style::properties::ComputedValues;
use style::selector_parser::PseudoElement;
@@ -354,6 +355,7 @@ pub(crate) trait NodeExt<'dom>: 'dom + Copy + LayoutNode + Send + Sync {
/// Returns the image if it’s loaded, and its size in image pixels
/// adjusted for `image_density`.
fn as_image(self) -> Option<(Option<Arc<NetImage>>, PhysicalSize<f64>)>;
+ fn as_canvas(self) -> Option<(CanvasInfo, PhysicalSize<f64>)>;
fn first_child(self) -> Option<Self>;
fn next_sibling(self) -> Option<Self>;
fn parent_node(self) -> Option<Self>;
@@ -399,6 +401,24 @@ where
Some((resource, PhysicalSize::new(width, height)))
}
+ fn as_canvas(self) -> Option<(CanvasInfo, PhysicalSize<f64>)> {
+ let node = self.to_threadsafe();
+ let canvas_data = node.canvas_data()?;
+ let source = match canvas_data.source {
+ HTMLCanvasDataSource::WebGL(texture_id) => CanvasSource::WebGL(texture_id),
+ HTMLCanvasDataSource::Image(ipc_sender) => {
+ CanvasSource::Image(ipc_sender.map(|renderer| Arc::new(Mutex::new(renderer))))
+ },
+ };
+ Some((
+ CanvasInfo {
+ source,
+ canvas_id: canvas_data.canvas_id,
+ },
+ PhysicalSize::new(canvas_data.width.into(), canvas_data.height.into()),
+ ))
+ }
+
fn first_child(self) -> Option<Self> {
TNode::first_child(&self)
}
diff --git a/components/layout_2020/replaced.rs b/components/layout_2020/replaced.rs
index b9e53bec772..1d7557b0641 100644
--- a/components/layout_2020/replaced.rs
+++ b/components/layout_2020/replaced.rs
@@ -10,15 +10,19 @@ use crate::geom::PhysicalSize;
use crate::sizing::ContentSizes;
use crate::style_ext::ComputedValuesExt;
use crate::ContainingBlock;
+use canvas_traits::canvas::{CanvasId, CanvasMsg, FromLayoutMsg};
+use ipc_channel::ipc::{self, IpcSender};
use net_traits::image::base::Image;
use net_traits::image_cache::{ImageOrMetadataAvailable, UsePlaceholder};
use servo_arc::Arc as ServoArc;
-use std::sync::Arc;
+use std::fmt;
+use std::sync::{Arc, Mutex};
use style::properties::ComputedValues;
use style::servo::url::ComputedUrl;
use style::values::computed::{Length, LengthOrAuto};
use style::values::CSSFloat;
use style::Zero;
+use webrender_api::ImageKey;
#[derive(Debug, Serialize)]
pub(crate) struct ReplacedContent {
@@ -44,33 +48,69 @@ pub(crate) struct IntrinsicSizes {
pub ratio: Option<CSSFloat>,
}
+#[derive(Serialize)]
+pub(crate) enum CanvasSource {
+ WebGL(ImageKey),
+ Image(Option<Arc<Mutex<IpcSender<CanvasMsg>>>>),
+}
+
+impl fmt::Debug for CanvasSource {
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
+ write!(
+ f,
+ "{}",
+ match *self {
+ CanvasSource::WebGL(_) => "WebGL",
+ CanvasSource::Image(_) => "Image",
+ }
+ )
+ }
+}
+
+#[derive(Debug, Serialize)]
+pub(crate) struct CanvasInfo {
+ pub source: CanvasSource,
+ pub canvas_id: CanvasId,
+}
+
#[derive(Debug, Serialize)]
pub(crate) enum ReplacedContentKind {
Image(Option<Arc<Image>>),
+ Canvas(CanvasInfo),
}
impl ReplacedContent {
pub fn for_element<'dom>(element: impl NodeExt<'dom>) -> Option<Self> {
- if let Some((image, intrinsic_size_in_dots)) = element.as_image() {
- // FIXME: should 'image-resolution' (when implemented) be used *instead* of
- // `script::dom::htmlimageelement::ImageRequest::current_pixel_density`?
+ let (kind, intrinsic_size_in_dots) = {
+ if let Some((image, intrinsic_size_in_dots)) = element.as_image() {
+ (ReplacedContentKind::Image(image), intrinsic_size_in_dots)
+ } else if let Some((canvas_info, intrinsic_size_in_dots)) = element.as_canvas() {
+ (
+ ReplacedContentKind::Canvas(canvas_info),
+ intrinsic_size_in_dots,
+ )
+ } else {
+ return None;
+ }
+ };
- // https://drafts.csswg.org/css-images-4/#the-image-resolution
- let dppx = 1.0;
+ // FIXME: should 'image-resolution' (when implemented) be used *instead* of
+ // `script::dom::htmlimageelement::ImageRequest::current_pixel_density`?
- let width = (intrinsic_size_in_dots.width as CSSFloat) / dppx;
- let height = (intrinsic_size_in_dots.height as CSSFloat) / dppx;
- return Some(Self {
- kind: ReplacedContentKind::Image(image),
- intrinsic: IntrinsicSizes {
- width: Some(Length::new(width)),
- height: Some(Length::new(height)),
- // FIXME https://github.com/w3c/csswg-drafts/issues/4572
- ratio: Some(width / height),
- },
- });
- }
- None
+ // https://drafts.csswg.org/css-images-4/#the-image-resolution
+ let dppx = 1.0;
+
+ let width = (intrinsic_size_in_dots.width as CSSFloat) / dppx;
+ let height = (intrinsic_size_in_dots.height as CSSFloat) / dppx;
+ return Some(Self {
+ kind,
+ intrinsic: IntrinsicSizes {
+ width: Some(Length::new(width)),
+ height: Some(Length::new(height)),
+ // FIXME https://github.com/w3c/csswg-drafts/issues/4572
+ ratio: Some(width / height),
+ },
+ });
}
pub fn from_image_url<'dom>(
@@ -160,6 +200,34 @@ impl ReplacedContent {
})
.into_iter()
.collect(),
+ ReplacedContentKind::Canvas(canvas_info) => {
+ let image_key = match canvas_info.source {
+ CanvasSource::WebGL(image_key) => image_key,
+ CanvasSource::Image(ref ipc_renderer) => match *ipc_renderer {
+ Some(ref ipc_renderer) => {
+ let ipc_renderer = ipc_renderer.lock().unwrap();
+ let (sender, receiver) = ipc::channel().unwrap();
+ ipc_renderer
+ .send(CanvasMsg::FromLayout(
+ FromLayoutMsg::SendData(sender),
+ canvas_info.canvas_id,
+ ))
+ .unwrap();
+ receiver.recv().unwrap().image_key
+ },
+ None => return vec![],
+ },
+ };
+ vec![Fragment::Image(ImageFragment {
+ debug_id: DebugId::new(),
+ style: style.clone(),
+ rect: Rect {
+ start_corner: Vec2::zero(),
+ size,
+ },
+ image_key,
+ })]
+ },
}
}
diff --git a/components/layout_thread/lib.rs b/components/layout_thread/lib.rs
index 127eab08914..60710009ff5 100644
--- a/components/layout_thread/lib.rs
+++ b/components/layout_thread/lib.rs
@@ -344,7 +344,7 @@ impl LayoutThreadFactory for LayoutThread {
background_hang_monitor,
constellation_chan,
script_chan,
- image_cache.clone(),
+ image_cache,
font_cache_thread,
time_profiler_chan,
mem_profiler_chan.clone(),
@@ -560,13 +560,13 @@ impl LayoutThread {
is_iframe: is_iframe,
port: port,
pipeline_port: pipeline_receiver,
- script_chan: script_chan.clone(),
+ script_chan: script_chan,
background_hang_monitor,
constellation_chan: constellation_chan.clone(),
time_profiler_chan: time_profiler_chan,
mem_profiler_chan: mem_profiler_chan,
registered_painters: RegisteredPaintersImpl(Default::default()),
- image_cache: image_cache.clone(),
+ image_cache: image_cache,
font_cache_thread: font_cache_thread,
first_reflow: Cell::new(true),
font_cache_receiver: font_cache_receiver,
@@ -939,8 +939,8 @@ impl LayoutThread {
info.pipeline_port,
info.background_hang_monitor_register,
info.constellation_chan,
- info.script_chan.clone(),
- info.image_cache.clone(),
+ info.script_chan,
+ info.image_cache,
self.font_cache_thread.clone(),
self.time_profiler_chan.clone(),
self.mem_profiler_chan.clone(),
diff --git a/components/layout_thread_2020/lib.rs b/components/layout_thread_2020/lib.rs
index 1a150401296..5a76997b2ad 100644
--- a/components/layout_thread_2020/lib.rs
+++ b/components/layout_thread_2020/lib.rs
@@ -1420,7 +1420,7 @@ impl LayoutThread {
fragment_tree.print();
}
if self.dump_display_list {
- display_list.wr.print_display_list();
+ display_list.wr.dump_serialized_display_list();
}
debug!("Layout done!");
diff --git a/components/net/image_cache.rs b/components/net/image_cache.rs
index 57b6338dafb..b5f0c98d49d 100644
--- a/components/net/image_cache.rs
+++ b/components/net/image_cache.rs
@@ -21,6 +21,7 @@ use std::mem;
use std::sync::{Arc, Mutex};
use std::thread;
use webrender_api::units::DeviceIntSize;
+use webrender_api::ImageDescriptorFlags;
///
/// TODO(gw): Remaining work on image cache:
@@ -75,13 +76,14 @@ fn set_webrender_image_key(webrender_api: &WebrenderIpcSender, image: &mut Image
panic!("Not support by webrender yet");
},
};
+ let mut flags = ImageDescriptorFlags::ALLOW_MIPMAPS;
+ flags.set(ImageDescriptorFlags::IS_OPAQUE, is_opaque);
let descriptor = webrender_api::ImageDescriptor {
size: DeviceIntSize::new(image.width as i32, image.height as i32),
stride: None,
format: webrender_api::ImageFormat::BGRA8,
offset: 0,
- is_opaque,
- allow_mipmaps: true,
+ flags,
};
let data = webrender_api::ImageData::new(bytes);
let image_key = webrender_api.generate_image_key();
diff --git a/components/net_traits/Cargo.toml b/components/net_traits/Cargo.toml
index e749467a594..46def57c7ad 100644
--- a/components/net_traits/Cargo.toml
+++ b/components/net_traits/Cargo.toml
@@ -20,7 +20,7 @@ headers = "0.2"
http = "0.1"
hyper = "0.12"
hyper_serde = "0.11"
-piston_image = {package = "image", version = "0.22"}
+piston_image = {package = "image", version = "0.23"}
ipc-channel = "0.14"
lazy_static = "1"
log = "0.4"
diff --git a/components/net_traits/image/base.rs b/components/net_traits/image/base.rs
index 262eaf476a7..6f090f12fe1 100644
--- a/components/net_traits/image/base.rs
+++ b/components/net_traits/image/base.rs
@@ -77,15 +77,15 @@ pub fn load_from_memory(buffer: &[u8], cors_status: CorsStatus) -> Option<Image>
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img
pub fn detect_image_format(buffer: &[u8]) -> Result<ImageFormat, &str> {
if is_gif(buffer) {
- Ok(ImageFormat::GIF)
+ Ok(ImageFormat::Gif)
} else if is_jpeg(buffer) {
- Ok(ImageFormat::JPEG)
+ Ok(ImageFormat::Jpeg)
} else if is_png(buffer) {
- Ok(ImageFormat::PNG)
+ Ok(ImageFormat::Png)
} else if is_bmp(buffer) {
- Ok(ImageFormat::BMP)
+ Ok(ImageFormat::Bmp)
} else if is_ico(buffer) {
- Ok(ImageFormat::ICO)
+ Ok(ImageFormat::Ico)
} else {
Err("Image Format Not Supported")
}
diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml
index 9c5995c1c89..48c3adb6c65 100644
--- a/components/script/Cargo.toml
+++ b/components/script/Cargo.toml
@@ -58,12 +58,12 @@ html5ever = "0.25"
http = "0.1"
hyper = "0.12"
hyper_serde = "0.11"
-image = "0.22"
+image = "0.23"
indexmap = "1.0.2"
ipc-channel = "0.14"
itertools = "0.8"
jstraceable_derive = {path = "../jstraceable_derive"}
-js = {package = "mozjs", git = "https://github.com/servo/rust-mozjs"}
+js = {package = "mozjs", git = "https://github.com/servo/rust-mozjs", branch = "smup"}
keyboard-types = "0.4.4"
lazy_static = "1"
libc = "0.2"
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 7f56c3b2f15..f7ce60cc80c 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -1654,7 +1654,7 @@ class MethodDefiner(PropertyDefiner):
if any(m.isGetter() and m.isIndexed() for m in methods):
self.regular.append({"name": '@@iterator',
"methodInfo": False,
- "selfHostedName": "ArrayValues",
+ "selfHostedName": "$ArrayValues",
"length": 0,
"flags": "0", # Not enumerable, per spec.
"condition": "Condition::Satisfied"})
@@ -1678,7 +1678,7 @@ class MethodDefiner(PropertyDefiner):
self.regular.append({
"name": "values",
"methodInfo": False,
- "selfHostedName": "ArrayValues",
+ "selfHostedName": "$ArrayValues",
"length": 0,
"flags": "JSPROP_ENUMERATE",
"condition": PropertyDefiner.getControllingCondition(m,
@@ -1731,7 +1731,7 @@ class MethodDefiner(PropertyDefiner):
selfHostedName = '%s as *const u8 as *const libc::c_char' % str_to_const_array(m["selfHostedName"])
assert not m.get("methodInfo", True)
accessor = "None"
- jitinfo = "0 as *const JSJitInfo"
+ jitinfo = "ptr::null()"
else:
selfHostedName = "0 as *const libc::c_char"
if m.get("methodInfo", True):
@@ -1743,28 +1743,30 @@ class MethodDefiner(PropertyDefiner):
jitinfo = "&%s_methodinfo as *const _ as *const JSJitInfo" % identifier
accessor = "Some(generic_method)"
else:
- jitinfo = "0 as *const JSJitInfo"
+ jitinfo = "ptr::null()"
accessor = 'Some(%s)' % m.get("nativeName", m["name"])
if m["name"].startswith("@@"):
- return ('(SymbolCode::%s as i32 + 1)'
- % m["name"][2:], accessor, jitinfo, m["length"], flags, selfHostedName)
- return (str_to_const_array(m["name"]), accessor, jitinfo, m["length"], flags, selfHostedName)
+ name = 'JSPropertySpec_Name { symbol_: SymbolCode::%s as usize + 1 }' % m["name"][2:]
+ else:
+ name = ('JSPropertySpec_Name { string_: %s as *const u8 as *const libc::c_char }'
+ % str_to_const_array(m["name"]))
+ return (name, accessor, jitinfo, m["length"], flags, selfHostedName)
return self.generateGuardedArray(
array, name,
' JSFunctionSpec {\n'
- ' name: %s as *const u8 as *const libc::c_char,\n'
+ ' name: %s,\n'
' call: JSNativeWrapper { op: %s, info: %s },\n'
' nargs: %s,\n'
' flags: (%s) as u16,\n'
' selfHostedName: %s\n'
' }',
' JSFunctionSpec {\n'
- ' name: 0 as *const libc::c_char,\n'
- ' call: JSNativeWrapper { op: None, info: 0 as *const JSJitInfo },\n'
+ ' name: JSPropertySpec_Name { string_: ptr::null() },\n'
+ ' call: JSNativeWrapper { op: None, info: ptr::null() },\n'
' nargs: 0,\n'
' flags: 0,\n'
- ' selfHostedName: 0 as *const libc::c_char\n'
+ ' selfHostedName: ptr::null()\n'
' }',
'JSFunctionSpec',
condition, specData)
@@ -1834,14 +1836,14 @@ class AttrDefiner(PropertyDefiner):
return self.generateGuardedArray(
array, name,
' JSPropertySpec {\n'
- ' name: %s as *const u8 as *const libc::c_char,\n'
+ ' name: JSPropertySpec_Name { string_: %s as *const u8 as *const libc::c_char },\n'
' flags: (%s) as u8,\n'
- ' __bindgen_anon_1: JSPropertySpec__bindgen_ty_1 {\n'
- ' accessors: JSPropertySpec__bindgen_ty_1__bindgen_ty_1 {\n'
- ' getter: JSPropertySpec__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1 {\n'
+ ' u: JSPropertySpec_AccessorsOrValue {\n'
+ ' accessors: JSPropertySpec_AccessorsOrValue_Accessors {\n'
+ ' getter: JSPropertySpec_Accessor {\n'
' native: %s,\n'
' },\n'
- ' setter: JSPropertySpec__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2 {\n'
+ ' setter: JSPropertySpec_Accessor {\n'
' native: %s,\n'
' }\n'
' }\n'
@@ -2203,7 +2205,9 @@ static Class: DOMJSClass = DOMJSClass {
(((%(slots)s) & JSCLASS_RESERVED_SLOTS_MASK) << JSCLASS_RESERVED_SLOTS_SHIFT)
/* JSCLASS_HAS_RESERVED_SLOTS(%(slots)s) */,
cOps: &CLASS_OPS,
- reserved: [0 as *mut _; 3],
+ spec: ptr::null(),
+ ext: ptr::null(),
+ oOps: ptr::null(),
},
dom_class: %(domClass)s
};
@@ -2274,7 +2278,9 @@ static PrototypeClass: JSClass = JSClass {
// JSCLASS_HAS_RESERVED_SLOTS(%(slotCount)s)
(%(slotCount)s & JSCLASS_RESERVED_SLOTS_MASK) << JSCLASS_RESERVED_SLOTS_SHIFT,
cOps: 0 as *const _,
- reserved: [0 as *mut os::raw::c_void; 3]
+ spec: ptr::null(),
+ ext: ptr::null(),
+ oOps: ptr::null(),
};
""" % {'name': name, 'slotCount': slotCount}
@@ -2722,7 +2728,7 @@ assert!(!obj.is_null());
SetProxyReservedSlot(
obj.get(),
0,
- &PrivateValue(&*raw as *const %(concreteType)s as *const libc::c_void),
+ &PrivateValue(raw.as_ptr() as *const %(concreteType)s as *const libc::c_void),
);
"""
else:
@@ -2736,7 +2742,7 @@ assert!(!obj.is_null());
JS_SetReservedSlot(
obj.get(),
DOM_OBJECT_SLOT,
- &PrivateValue(&*raw as *const %(concreteType)s as *const libc::c_void),
+ &PrivateValue(raw.as_ptr() as *const %(concreteType)s as *const libc::c_void),
);
"""
create = create % {"concreteType": self.descriptor.concreteType}
@@ -2759,11 +2765,11 @@ GetProtoObject(cx, scope, proto.handle_mut());
assert!(!proto.is_null());
%(createObject)s
-raw.init_reflector(obj.get());
+let root = raw.reflect_with(obj.get());
%(copyUnforgeable)s
-DomRoot::from_ref(&*raw)\
+DomRoot::from_ref(&*root)\
""" % {'copyUnforgeable': unforgeable, 'createObject': create})
@@ -2803,12 +2809,12 @@ rooted!(in(*cx) let mut obj = ptr::null_mut::<JSObject>());
create_global_object(
cx,
&Class.base,
- &*raw as *const %(concreteType)s as *const libc::c_void,
+ raw.as_ptr() as *const %(concreteType)s as *const libc::c_void,
_trace,
obj.handle_mut());
assert!(!obj.is_null());
-raw.init_reflector(obj.get());
+let root = raw.reflect_with(obj.get());
let _ac = JSAutoRealm::new(*cx, obj.get());
rooted!(in(*cx) let mut proto = ptr::null_mut::<JSObject>());
@@ -2822,7 +2828,7 @@ assert!(immutable);
%(unforgeable)s
-DomRoot::from_ref(&*raw)\
+DomRoot::from_ref(&*root)\
""" % values)
@@ -2916,9 +2922,9 @@ class CGCollectJSONAttributesMethod(CGAbstractMethod):
Generate the CollectJSONAttributes method for an interface descriptor
"""
def __init__(self, descriptor, toJSONMethod):
- args = [Argument('SafeJSContext', 'cx'),
- Argument('HandleObject', 'obj'),
- Argument('*const %s' % descriptor.concreteType, 'this'),
+ args = [Argument('*mut JSContext', 'cx'),
+ Argument('RawHandleObject', 'obj'),
+ Argument('*mut libc::c_void', 'this'),
Argument('&RootedGuard<*mut JSObject>', 'result')]
CGAbstractMethod.__init__(self, descriptor, 'CollectJSONAttributes',
'bool', args, pub=True, unsafe=True)
@@ -2932,11 +2938,11 @@ class CGCollectJSONAttributesMethod(CGAbstractMethod):
name = m.identifier.name
ret += fill(
"""
- rooted!(in(*cx) let mut temp = UndefinedValue());
+ rooted!(in(cx) let mut temp = UndefinedValue());
if !get_${name}(cx, obj, this, JSJitGetterCallArgs { _base: temp.handle_mut().into() }) {
return false;
}
- if !JS_DefineProperty(*cx, result.handle().into(),
+ if !JS_DefineProperty(cx, result.handle().into(),
${nameAsArray} as *const u8 as *const libc::c_char,
temp.handle(), JSPROP_ENUMERATE as u32) {
return false;
@@ -3668,8 +3674,9 @@ class CGSpecializedMethod(CGAbstractExternMethod):
def __init__(self, descriptor, method):
self.method = method
name = method.identifier.name
- args = [Argument('SafeJSContext', 'cx'), Argument('HandleObject', '_obj'),
- Argument('*const %s' % descriptor.concreteType, 'this'),
+ args = [Argument('*mut JSContext', 'cx'),
+ Argument('RawHandleObject', '_obj'),
+ Argument('*mut libc::c_void', 'this'),
Argument('*const JSJitMethodCallArgs', 'args')]
CGAbstractExternMethod.__init__(self, descriptor, name, 'bool', args)
@@ -3678,7 +3685,8 @@ class CGSpecializedMethod(CGAbstractExternMethod):
self.method)
return CGWrapper(CGMethodCall([], nativeName, self.method.isStatic(),
self.descriptor, self.method),
- pre="let this = &*this;\n"
+ pre="let cx = SafeJSContext::from_ptr(cx);\n" +
+ ("let this = &*(this as *const %s);\n" % self.descriptor.concreteType) +
"let args = &*args;\n"
"let argc = args.argc_;\n")
@@ -3701,7 +3709,7 @@ class CGDefaultToJSONMethod(CGSpecializedMethod):
def definition_body(self):
ret = dedent("""
use crate::dom::bindings::inheritance::HasParent;
- rooted!(in(*cx) let result = JS_NewPlainObject(*cx));
+ rooted!(in(cx) let result = JS_NewPlainObject(cx));
if result.is_null() {
return false;
}
@@ -3717,17 +3725,16 @@ class CGDefaultToJSONMethod(CGSpecializedMethod):
parents = len(jsonDescriptors) - 1
form = """
- if !${parentclass}CollectJSONAttributes(cx, _obj, this${asparent}, &result) {
+ if !${parentclass}CollectJSONAttributes(cx, _obj, this, &result) {
return false;
}
"""
# Iterate the array in reverse: oldest ancestor first
for descriptor in jsonDescriptors[:0:-1]:
- ret += fill(form, parentclass=toBindingNamespace(descriptor.name) + "::",
- asparent=".as_ref().unwrap()" + ".as_parent()" * parents)
+ ret += fill(form, parentclass=toBindingNamespace(descriptor.name) + "::")
parents -= 1
- ret += fill(form, parentclass="", asparent="")
+ ret += fill(form, parentclass="")
ret += ('(*args).rval().set(ObjectValue(*result));\n'
'return true;\n')
return CGGeneric(ret)
@@ -3759,9 +3766,9 @@ class CGSpecializedGetter(CGAbstractExternMethod):
def __init__(self, descriptor, attr):
self.attr = attr
name = 'get_' + descriptor.internalNameFor(attr.identifier.name)
- args = [Argument('SafeJSContext', 'cx'),
- Argument('HandleObject', '_obj'),
- Argument('*const %s' % descriptor.concreteType, 'this'),
+ args = [Argument('*mut JSContext', 'cx'),
+ Argument('RawHandleObject', '_obj'),
+ Argument('*mut libc::c_void', 'this'),
Argument('JSJitGetterCallArgs', 'args')]
CGAbstractExternMethod.__init__(self, descriptor, name, "bool", args)
@@ -3771,7 +3778,8 @@ class CGSpecializedGetter(CGAbstractExternMethod):
return CGWrapper(CGGetterCall([], self.attr.type, nativeName,
self.descriptor, self.attr),
- pre="let this = &*this;\n")
+ pre="let cx = SafeJSContext::from_ptr(cx);\n" +
+ ("let this = &*(this as *const %s);\n" % self.descriptor.concreteType))
@staticmethod
def makeNativeName(descriptor, attr):
@@ -3815,9 +3823,9 @@ class CGSpecializedSetter(CGAbstractExternMethod):
def __init__(self, descriptor, attr):
self.attr = attr
name = 'set_' + descriptor.internalNameFor(attr.identifier.name)
- args = [Argument('SafeJSContext', 'cx'),
- Argument('HandleObject', 'obj'),
- Argument('*const %s' % descriptor.concreteType, 'this'),
+ args = [Argument('*mut JSContext', 'cx'),
+ Argument('RawHandleObject', 'obj'),
+ Argument('*mut libc::c_void', 'this'),
Argument('JSJitSetterCallArgs', 'args')]
CGAbstractExternMethod.__init__(self, descriptor, name, "bool", args)
@@ -3826,7 +3834,8 @@ class CGSpecializedSetter(CGAbstractExternMethod):
self.attr)
return CGWrapper(CGSetterCall([], self.attr.type, nativeName,
self.descriptor, self.attr),
- pre="let this = &*this;\n")
+ pre="let cx = SafeJSContext::from_ptr(cx);\n" +
+ ("let this = &*(this as *const %s);\n" % self.descriptor.concreteType))
@staticmethod
def makeNativeName(descriptor, attr):
@@ -3875,8 +3884,9 @@ class CGSpecializedForwardingSetter(CGSpecializedSetter):
assert all(ord(c) < 128 for c in attrName)
assert all(ord(c) < 128 for c in forwardToAttrName)
return CGGeneric("""\
+let cx = SafeJSContext::from_ptr(cx);
rooted!(in(*cx) let mut v = UndefinedValue());
-if !JS_GetProperty(*cx, obj, %s as *const u8 as *const libc::c_char, v.handle_mut()) {
+if !JS_GetProperty(*cx, HandleObject::from_raw(obj), %s as *const u8 as *const libc::c_char, v.handle_mut()) {
return false;
}
if !v.is_object() {
@@ -3901,7 +3911,7 @@ class CGSpecializedReplaceableSetter(CGSpecializedSetter):
# JS_DefineProperty can only deal with ASCII.
assert all(ord(c) < 128 for c in name)
return CGGeneric("""\
-JS_DefineProperty(*cx, obj, %s as *const u8 as *const libc::c_char,
+JS_DefineProperty(cx, HandleObject::from_raw(obj), %s as *const u8 as *const libc::c_char,
HandleValue::from_raw(args.get(0)), JSPROP_ENUMERATE as u32)""" % name)
@@ -3931,27 +3941,34 @@ class CGMemberJITInfo(CGThing):
initializer = fill(
"""
JSJitInfo {
- call: ${opName} as *const os::raw::c_void,
- protoID: PrototypeList::ID::${name} as u16,
- depth: ${depth},
- _bitfield_1: new_jsjitinfo_bitfield_1!(
- JSJitInfo_OpType::${opType} as u8,
- JSJitInfo_AliasSet::${aliasSet} as u8,
- JSValueType::${returnType} as u8,
- ${isInfallible},
- ${isMovable},
- ${isEliminatable},
- ${isAlwaysInSlot},
- ${isLazilyCachedInSlot},
- ${isTypedMethod},
- ${slotIndex},
- ),
+ __bindgen_anon_1: JSJitInfo__bindgen_ty_1 {
+ ${opKind}: Some(${opName})
+ },
+ __bindgen_anon_2: JSJitInfo__bindgen_ty_2 {
+ protoID: PrototypeList::ID::${name} as u16,
+ },
+ __bindgen_anon_3: JSJitInfo__bindgen_ty_3 { depth: ${depth} },
+ _bitfield_1: unsafe {
+ mem::transmute(new_jsjitinfo_bitfield_1!(
+ JSJitInfo_OpType::${opType} as u8,
+ JSJitInfo_AliasSet::${aliasSet} as u8,
+ JSValueType::${returnType} as u8,
+ ${isInfallible},
+ ${isMovable},
+ ${isEliminatable},
+ ${isAlwaysInSlot},
+ ${isLazilyCachedInSlot},
+ ${isTypedMethod},
+ ${slotIndex},
+ ))
+ },
}
""",
opName=opName,
name=self.descriptor.name,
depth=self.descriptor.interface.inheritanceDepth(),
opType=opType,
+ opKind=opType.lower(),
aliasSet=aliasSet,
returnType=functools.reduce(CGMemberJITInfo.getSingleReturnType, returnTypes,
""),
@@ -4211,7 +4228,7 @@ class CGMemberJITInfo(CGThing):
return "JSJitInfo_ArgType::Object as i32"
if t.isUnion():
u = t.unroll()
- type = "JSJitInfo::Null as i32" if u.hasNullableType else ""
+ type = "JSJitInfo_ArgType::Null as i32" if u.hasNullableType else ""
return functools.reduce(CGMemberJITInfo.getSingleArgType,
u.flatMemberTypes, type)
if t.isDictionary():
@@ -5311,7 +5328,7 @@ class CGDOMJSProxyHandler_ownPropertyKeys(CGAbstractExternMethod):
def __init__(self, descriptor):
args = [Argument('*mut JSContext', 'cx'),
Argument('RawHandleObject', 'proxy'),
- Argument('*mut AutoIdVector', 'props')]
+ Argument('RawMutableHandleIdVector', 'props')]
CGAbstractExternMethod.__init__(self, descriptor, "own_property_keys", "bool", args)
self.descriptor = descriptor
@@ -5328,7 +5345,7 @@ class CGDOMJSProxyHandler_ownPropertyKeys(CGAbstractExternMethod):
for i in 0..(*unwrapped_proxy).Length() {
rooted!(in(*cx) let mut rooted_jsid: jsid);
int_to_jsid(i as i32, rooted_jsid.handle_mut());
- AppendToAutoIdVector(props, rooted_jsid.handle());
+ AppendToIdVector(props, rooted_jsid.handle());
}
""")
@@ -5341,7 +5358,7 @@ class CGDOMJSProxyHandler_ownPropertyKeys(CGAbstractExternMethod):
rooted!(in(*cx) let rooted = jsstring);
rooted!(in(*cx) let mut rooted_jsid: jsid);
RUST_INTERNED_STRING_TO_JSID(*cx, rooted.handle().get(), rooted_jsid.handle_mut());
- AppendToAutoIdVector(props, rooted_jsid.handle());
+ AppendToIdVector(props, rooted_jsid.handle());
}
""")
@@ -5369,7 +5386,7 @@ class CGDOMJSProxyHandler_getOwnEnumerablePropertyKeys(CGAbstractExternMethod):
descriptor.interface.getExtendedAttribute("LegacyUnenumerableNamedProperties"))
args = [Argument('*mut JSContext', 'cx'),
Argument('RawHandleObject', 'proxy'),
- Argument('*mut AutoIdVector', 'props')]
+ Argument('RawMutableHandleIdVector', 'props')]
CGAbstractExternMethod.__init__(self, descriptor,
"getOwnEnumerablePropertyKeys", "bool", args)
self.descriptor = descriptor
@@ -5387,7 +5404,7 @@ class CGDOMJSProxyHandler_getOwnEnumerablePropertyKeys(CGAbstractExternMethod):
for i in 0..(*unwrapped_proxy).Length() {
rooted!(in(*cx) let mut rooted_jsid: jsid);
int_to_jsid(i as i32, rooted_jsid.handle_mut());
- AppendToAutoIdVector(props, rooted_jsid.handle());
+ AppendToIdVector(props, rooted_jsid.handle());
}
""")
@@ -5917,11 +5934,9 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'js::JS_CALLEE',
'js::error::throw_type_error',
'js::error::throw_internal_error',
- 'js::jsapi::AutoIdVector',
'js::rust::wrappers::Call',
'js::jsapi::CallArgs',
'js::jsapi::CurrentGlobalOrNull',
- 'js::jsapi::FreeOp',
'js::rust::wrappers::GetPropertyKeys',
'js::jsapi::GetWellKnownSymbol',
'js::rust::Handle',
@@ -5948,6 +5963,9 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'js::jsapi::JSITER_SYMBOLS',
'js::jsapi::JSJitGetterCallArgs',
'js::jsapi::JSJitInfo',
+ 'js::jsapi::JSJitInfo__bindgen_ty_1',
+ 'js::jsapi::JSJitInfo__bindgen_ty_2',
+ 'js::jsapi::JSJitInfo__bindgen_ty_3',
'js::jsapi::JSJitInfo_AliasSet',
'js::jsapi::JSJitInfo_ArgType',
'js::jsapi::JSJitInfo_OpType',
@@ -5960,10 +5978,10 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'js::jsapi::JSPROP_PERMANENT',
'js::jsapi::JSPROP_READONLY',
'js::jsapi::JSPropertySpec',
- 'js::jsapi::JSPropertySpec__bindgen_ty_1',
- 'js::jsapi::JSPropertySpec__bindgen_ty_1__bindgen_ty_1',
- 'js::jsapi::JSPropertySpec__bindgen_ty_1__bindgen_ty_1__bindgen_ty_1',
- 'js::jsapi::JSPropertySpec__bindgen_ty_1__bindgen_ty_1__bindgen_ty_2',
+ 'js::jsapi::JSPropertySpec_Accessor',
+ 'js::jsapi::JSPropertySpec_AccessorsOrValue',
+ 'js::jsapi::JSPropertySpec_AccessorsOrValue_Accessors',
+ 'js::jsapi::JSPropertySpec_Name',
'js::jsapi::JSString',
'js::jsapi::JSTracer',
'js::jsapi::JSType',
@@ -6005,6 +6023,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'js::jsapi::MutableHandleObject as RawMutableHandleObject',
'js::rust::MutableHandleValue',
'js::jsapi::MutableHandleValue as RawMutableHandleValue',
+ 'js::jsapi::MutableHandleIdVector as RawMutableHandleIdVector',
'js::jsapi::ObjectOpResult',
'js::jsapi::PropertyDescriptor',
'js::jsapi::Rooted',
@@ -6020,7 +6039,7 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries
'js::jsval::PrivateValue',
'js::jsval::UndefinedValue',
'js::jsapi::UndefinedHandleValue',
- 'js::rust::wrappers::AppendToAutoIdVector',
+ 'js::rust::wrappers::AppendToIdVector',
'js::glue::CallJitGetterOp',
'js::glue::CallJitMethodOp',
'js::glue::CallJitSetterOp',
diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs
index b88a6cabed3..f678611423b 100644
--- a/components/script/dom/bindings/error.rs
+++ b/components/script/dom/bindings/error.rs
@@ -19,6 +19,7 @@ use crate::script_runtime::JSContext as SafeJSContext;
#[cfg(feature = "js_backtrace")]
use backtrace::Backtrace;
use js::error::{throw_range_error, throw_type_error};
+use js::jsapi::ExceptionStackBehavior;
use js::jsapi::JSContext;
use js::jsapi::JS_ClearPendingException;
use js::jsapi::JS_IsExceptionPending;
@@ -161,7 +162,7 @@ pub fn throw_dom_exception(cx: SafeJSContext, global: &GlobalScope, result: Erro
let exception = DOMException::new(global, code);
rooted!(in(*cx) let mut thrown = UndefinedValue());
exception.to_jsval(*cx, thrown.handle_mut());
- JS_SetPendingException(*cx, thrown.handle());
+ JS_SetPendingException(*cx, thrown.handle(), ExceptionStackBehavior::Capture);
}
}
diff --git a/components/script/dom/bindings/interface.rs b/components/script/dom/bindings/interface.rs
index 2097769cb31..d0b3771890e 100644
--- a/components/script/dom/bindings/interface.rs
+++ b/components/script/dom/bindings/interface.rs
@@ -15,8 +15,8 @@ use js::error::throw_type_error;
use js::glue::UncheckedUnwrapObject;
use js::jsapi::GetWellKnownSymbol;
use js::jsapi::HandleObject as RawHandleObject;
-use js::jsapi::{jsid, Class, ClassOps};
-use js::jsapi::{JSAutoRealm, JSClass, JSContext, JSFunctionSpec, JSObject, JSFUN_CONSTRUCTOR};
+use js::jsapi::{jsid, JSClass, JSClassOps};
+use js::jsapi::{JSAutoRealm, JSContext, JSFunctionSpec, JSObject, JSFUN_CONSTRUCTOR};
use js::jsapi::{JSPropertySpec, JSString, JSTracer, JS_AtomizeAndPinString};
use js::jsapi::{JS_GetFunctionObject, JS_NewFunction, JS_NewGlobalObject};
use js::jsapi::{JS_NewObject, JS_NewPlainObject};
@@ -38,8 +38,8 @@ use std::ptr;
/// The class of a non-callback interface object.
#[derive(Clone, Copy)]
pub struct NonCallbackInterfaceObjectClass {
- /// The SpiderMonkey Class structure.
- pub class: Class,
+ /// The SpiderMonkey class structure.
+ pub class: JSClass,
/// The prototype id of that interface, used in the hasInstance hook.
pub proto_id: PrototypeList::ID,
/// The prototype depth of that interface, used in the hasInstance hook.
@@ -59,7 +59,7 @@ impl NonCallbackInterfaceObjectClass {
proto_depth: u16,
) -> NonCallbackInterfaceObjectClass {
NonCallbackInterfaceObjectClass {
- class: Class {
+ class: JSClass {
name: b"Function\0" as *const _ as *const libc::c_char,
flags: 0,
cOps: &constructor_behavior.0,
@@ -84,12 +84,12 @@ pub type ConstructorClassHook =
unsafe extern "C" fn(cx: *mut JSContext, argc: u32, vp: *mut Value) -> bool;
/// The constructor behavior of a non-callback interface object.
-pub struct InterfaceConstructorBehavior(ClassOps);
+pub struct InterfaceConstructorBehavior(JSClassOps);
impl InterfaceConstructorBehavior {
/// An interface constructor that unconditionally throws a type error.
pub const fn throw() -> Self {
- InterfaceConstructorBehavior(ClassOps {
+ InterfaceConstructorBehavior(JSClassOps {
addProperty: None,
delProperty: None,
enumerate: None,
@@ -106,7 +106,7 @@ impl InterfaceConstructorBehavior {
/// An interface constructor that calls a native Rust function.
pub const fn call(hook: ConstructorClassHook) -> Self {
- InterfaceConstructorBehavior(ClassOps {
+ InterfaceConstructorBehavior(JSClassOps {
addProperty: None,
delProperty: None,
enumerate: None,
diff --git a/components/script/dom/bindings/namespace.rs b/components/script/dom/bindings/namespace.rs
index 82b7bd8834e..64b7b0b2626 100644
--- a/components/script/dom/bindings/namespace.rs
+++ b/components/script/dom/bindings/namespace.rs
@@ -9,6 +9,7 @@ use crate::dom::bindings::interface::{create_object, define_on_global_object};
use crate::script_runtime::JSContext;
use js::jsapi::{JSClass, JSFunctionSpec};
use js::rust::{HandleObject, MutableHandleObject};
+use std::ptr;
/// The class of a namespace object.
#[derive(Clone, Copy)]
@@ -23,7 +24,9 @@ impl NamespaceObjectClass {
name: name as *const _ as *const libc::c_char,
flags: 0,
cOps: 0 as *mut _,
- reserved: [0 as *mut _; 3],
+ spec: ptr::null(),
+ ext: ptr::null(),
+ oOps: ptr::null(),
})
}
}
diff --git a/components/script/dom/bindings/proxyhandler.rs b/components/script/dom/bindings/proxyhandler.rs
index a4b5f418cd2..11913c03642 100644
--- a/components/script/dom/bindings/proxyhandler.rs
+++ b/components/script/dom/bindings/proxyhandler.rs
@@ -55,7 +55,11 @@ pub unsafe extern "C" fn shadow_check_callback(
/// Initialize the infrastructure for DOM proxy objects.
pub unsafe fn init() {
- SetDOMProxyInformation(GetProxyHandlerFamily(), Some(shadow_check_callback));
+ SetDOMProxyInformation(
+ GetProxyHandlerFamily(),
+ Some(shadow_check_callback),
+ ptr::null(),
+ );
}
/// Defines an expando on the given `proxy`.
diff --git a/components/script/dom/bindings/record.rs b/components/script/dom/bindings/record.rs
index 86453b59fc3..c54a2403d70 100644
--- a/components/script/dom/bindings/record.rs
+++ b/components/script/dom/bindings/record.rs
@@ -120,12 +120,12 @@ where
}
rooted!(in(cx) let object = value.to_object());
- let ids = IdVector::new(cx);
+ let mut ids = IdVector::new(cx);
if !GetPropertyKeys(
cx,
object.handle(),
JSITER_OWNONLY | JSITER_HIDDEN | JSITER_SYMBOLS,
- ids.get(),
+ ids.handle_mut(),
) {
return Err(());
}
diff --git a/components/script/dom/bindings/root.rs b/components/script/dom/bindings/root.rs
index 1fea453e35a..0ba69687dba 100644
--- a/components/script/dom/bindings/root.rs
+++ b/components/script/dom/bindings/root.rs
@@ -26,7 +26,7 @@
use crate::dom::bindings::conversions::DerivedFrom;
use crate::dom::bindings::inheritance::Castable;
-use crate::dom::bindings::reflector::{DomObject, Reflector};
+use crate::dom::bindings::reflector::{DomObject, MutDomObject, Reflector};
use crate::dom::bindings::trace::trace_reflector;
use crate::dom::bindings::trace::JSTraceable;
use crate::dom::node::Node;
@@ -262,7 +262,10 @@ impl RootCollection {
unsafe fn unroot(&self, object: *const dyn JSTraceable) {
debug_assert!(thread_state::get().is_script());
let roots = &mut *self.roots.get();
- match roots.iter().rposition(|r| *r == object) {
+ match roots
+ .iter()
+ .rposition(|r| *r as *const () == object as *const ())
+ {
Some(idx) => {
roots.remove(idx);
},
@@ -385,15 +388,25 @@ where
}
}
-impl<T> Deref for MaybeUnreflectedDom<T>
+impl<T> Root<MaybeUnreflectedDom<T>>
where
T: DomObject,
{
- type Target = T;
+ pub fn as_ptr(&self) -> *const T {
+ self.value.ptr.as_ptr()
+ }
+}
- fn deref(&self) -> &T {
- debug_assert!(thread_state::get().is_script());
- unsafe { &*self.ptr.as_ptr() }
+impl<T> Root<MaybeUnreflectedDom<T>>
+where
+ T: MutDomObject,
+{
+ pub unsafe fn reflect_with(self, obj: *mut JSObject) -> DomRoot<T> {
+ let ptr = self.as_ptr();
+ drop(self);
+ let root = DomRoot::from_ref(&*ptr);
+ root.init_reflector(obj);
+ root
}
}
diff --git a/components/script/dom/bindings/structuredclone.rs b/components/script/dom/bindings/structuredclone.rs
index dbf852907a8..511b8d1650e 100644
--- a/components/script/dom/bindings/structuredclone.rs
+++ b/components/script/dom/bindings/structuredclone.rs
@@ -361,6 +361,9 @@ pub fn read(
JS_STRUCTURED_CLONE_VERSION,
StructuredCloneScope::DifferentProcess,
rval,
+ CloneDataPolicy {
+ sharedArrayBuffer_: false,
+ },
&STRUCTURED_CLONE_CALLBACKS,
sc_holder_ptr as *mut raw::c_void,
);
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index 631731e39a6..2d6b6c04379 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -891,7 +891,11 @@ impl RootedTraceableSet {
unsafe fn remove(traceable: *const dyn JSTraceable) {
ROOTED_TRACEABLES.with(|ref traceables| {
let mut traceables = traceables.borrow_mut();
- let idx = match traceables.set.iter().rposition(|x| *x == traceable) {
+ let idx = match traceables
+ .set
+ .iter()
+ .rposition(|x| *x as *const () == traceable as *const ())
+ {
Some(idx) => idx,
None => unreachable!(),
};
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index 56b2112e498..21f82be9cee 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -23,8 +23,9 @@ use js::glue::{
};
use js::jsapi::HandleId as RawHandleId;
use js::jsapi::HandleObject as RawHandleObject;
+use js::jsapi::MutableHandleIdVector as RawMutableHandleIdVector;
use js::jsapi::MutableHandleObject as RawMutableHandleObject;
-use js::jsapi::{AutoIdVector, CallArgs, DOMCallbacks, GetNonCCWObjectGlobal};
+use js::jsapi::{CallArgs, DOMCallbacks, GetNonCCWObjectGlobal};
use js::jsapi::{Heap, JSAutoRealm, JSContext, JS_FreezeObject};
use js::jsapi::{JSJitInfo, JSObject, JSTracer, JSWrapObjectCallbacks};
use js::jsapi::{JS_EnumerateStandardClasses, JS_GetLatin1StringCharsAndLength};
@@ -375,7 +376,7 @@ pub unsafe fn trace_global(tracer: *mut JSTracer, obj: *mut JSObject) {
pub unsafe extern "C" fn enumerate_global(
cx: *mut JSContext,
obj: RawHandleObject,
- _props: *mut AutoIdVector,
+ _props: RawMutableHandleIdVector,
_enumerable_only: bool,
) -> bool {
assert!(JS_IsGlobalObject(obj.get()));
@@ -439,6 +440,7 @@ unsafe extern "C" fn wrap(
unsafe extern "C" fn pre_wrap(
cx: *mut JSContext,
_scope: RawHandleObject,
+ _orig_obj: RawHandleObject,
obj: RawHandleObject,
_object_passed_to_wrap: RawHandleObject,
rval: RawMutableHandleObject,
@@ -482,7 +484,7 @@ unsafe fn generic_call(
let args = CallArgs::from_vp(vp, argc);
let info = RUST_FUNCTION_VALUE_TO_JITINFO(JS_CALLEE(cx, vp));
- let proto_id = (*info).protoID;
+ let proto_id = (*info).__bindgen_anon_2.protoID;
let thisobj = args.thisv();
if !thisobj.get().is_null_or_undefined() && !thisobj.get().is_object() {
@@ -495,7 +497,7 @@ unsafe fn generic_call(
} else {
GetNonCCWObjectGlobal(JS_CALLEE(cx, vp).to_object_or_null())
});
- let depth = (*info).depth;
+ let depth = (*info).__bindgen_anon_3.depth;
let proto_check =
|class: &'static DOMClass| class.interface_chain[depth as usize] as u16 == proto_id;
let this = match private_from_proto_check(obj.get(), cx, proto_check) {
@@ -582,7 +584,7 @@ pub unsafe extern "C" fn generic_lenient_setter(
}
unsafe extern "C" fn instance_class_has_proto_at_depth(
- clasp: *const js::jsapi::Class,
+ clasp: *const js::jsapi::JSClass,
proto_id: u32,
depth: u32,
) -> bool {
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 1253202ed8b..303c51660f0 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -1636,11 +1636,10 @@ impl Document {
.borrow_mut()
.push((ident, Some(callback)));
- // TODO: Should tick animation only when document is visible
-
// If we are running 'fake' animation frames, we unconditionally
// set up a one-shot timer for script to execute the rAF callbacks.
- if self.is_faking_animation_frames() {
+ if self.is_faking_animation_frames() && self.window().visible() {
+ warn!("Scheduling fake animation frame. Animation frames tick too fast.");
let callback = FakeRequestAnimationFrameCallback {
document: Trusted::new(self),
};
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 4020f938b24..90e533c8cc3 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -37,9 +37,9 @@ use crate::dom::workerglobalscope::WorkerGlobalScope;
use crate::realms::{enter_realm, InRealm};
use dom_struct::dom_struct;
use fnv::FnvHasher;
-use js::jsapi::{JSFunction, JS_GetFunctionObject, SourceText};
+use js::jsapi::{JS_GetFunctionObject, SourceText};
use js::rust::wrappers::CompileFunction;
-use js::rust::{AutoObjectVectorWrapper, CompileOptionsWrapper};
+use js::rust::{CompileOptionsWrapper, RootedObjectVectorWrapper};
use libc::c_char;
use servo_atoms::Atom;
use servo_url::ServoUrl;
@@ -51,7 +51,6 @@ use std::hash::BuildHasherDefault;
use std::marker::PhantomData;
use std::mem;
use std::ops::{Deref, DerefMut};
-use std::ptr;
use std::rc::Rc;
#[derive(Clone, JSTraceable, MallocSizeOf, PartialEq)]
@@ -491,9 +490,10 @@ impl EventTarget {
// source text, we handle parse errors later
// Step 3.8 TODO: settings objects not implemented
+ let window = document.window();
+ let _ac = enter_realm(&*window);
// Step 3.9
- let window = document.window();
let url_serialized = CString::new(handler.url.to_string()).unwrap();
let name = CString::new(&**ty).unwrap();
@@ -517,10 +517,12 @@ impl EventTarget {
};
let cx = window.get_cx();
- let options = CompileOptionsWrapper::new(*cx, url_serialized.as_ptr(), handler.line as u32);
+ let options = unsafe {
+ CompileOptionsWrapper::new(*cx, url_serialized.as_ptr(), handler.line as u32)
+ };
// Step 3.9, subsection Scope steps 1-6
- let scopechain = AutoObjectVectorWrapper::new(*cx);
+ let scopechain = RootedObjectVectorWrapper::new(*cx);
if let Some(element) = element {
scopechain.append(document.reflector().get_jsobject().get());
@@ -530,12 +532,10 @@ impl EventTarget {
scopechain.append(element.reflector().get_jsobject().get());
}
- let _ac = enter_realm(&*window); // TODO 3.8 should replace this
- rooted!(in(*cx) let mut handler = ptr::null_mut::<JSFunction>());
- let rv = unsafe {
+ rooted!(in(*cx) let mut handler = unsafe {
CompileFunction(
*cx,
- scopechain.ptr,
+ scopechain.handle(),
options.ptr,
name.as_ptr(),
args.len() as u32,
@@ -546,10 +546,9 @@ impl EventTarget {
ownsUnits_: false,
_phantom_0: PhantomData,
},
- handler.handle_mut().into(),
)
- };
- if !rv || handler.get().is_null() {
+ });
+ if handler.get().is_null() {
// Step 3.7
unsafe {
let ar = enter_realm(&*self);
diff --git a/components/script/dom/globalscope.rs b/components/script/dom/globalscope.rs
index 8eed617d0fa..9e55f593f59 100644
--- a/components/script/dom/globalscope.rs
+++ b/components/script/dom/globalscope.rs
@@ -65,13 +65,12 @@ use embedder_traits::EmbedderMsg;
use ipc_channel::ipc::{self, IpcSender};
use ipc_channel::router::ROUTER;
use js::glue::{IsWrapper, UnwrapObjectDynamic};
-use js::jsapi::JSContext;
-use js::jsapi::JSObject;
use js::jsapi::{CurrentGlobalOrNull, GetNonCCWObjectGlobal};
use js::jsapi::{HandleObject, Heap};
+use js::jsapi::{JSContext, JSObject, SourceText};
use js::jsval::{JSVal, UndefinedValue};
use js::panic::maybe_resume_unwind;
-use js::rust::wrappers::EvaluateUtf8;
+use js::rust::wrappers::Evaluate2;
use js::rust::{get_object_class, CompileOptionsWrapper, ParentRuntime, Runtime};
use js::rust::{HandleValue, MutableHandleValue};
use js::{JSCLASS_IS_DOMJSCLASS, JSCLASS_IS_GLOBAL};
@@ -98,6 +97,7 @@ use std::cell::{Cell, RefCell, RefMut};
use std::collections::hash_map::Entry;
use std::collections::{HashMap, VecDeque};
use std::ffi::CString;
+use std::marker::PhantomData;
use std::mem;
use std::ops::Index;
use std::rc::Rc;
@@ -2158,15 +2158,20 @@ impl GlobalScope {
let ar = enter_realm(&*self);
let _aes = AutoEntryScript::new(self);
- let options = CompileOptionsWrapper::new(*cx, filename.as_ptr(), line_number);
+ let options =
+ unsafe { CompileOptionsWrapper::new(*cx, filename.as_ptr(), line_number) };
debug!("evaluating Dom string");
let result = unsafe {
- EvaluateUtf8(
+ Evaluate2(
*cx,
options.ptr,
- code.as_ptr() as *const _,
- code.len() as libc::size_t,
+ &mut SourceText {
+ units_: code.as_ptr() as *const _,
+ length_: code.len() as u32,
+ ownsUnits_: false,
+ _phantom_0: PhantomData,
+ },
rval,
)
};
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index e800a89bdf1..e56ca4a8266 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -392,7 +392,7 @@ impl HTMLCanvasElementMethods for HTMLCanvasElement {
// FIXME(nox): https://github.com/PistonDevelopers/image-png/issues/86
// FIXME(nox): https://github.com/PistonDevelopers/image-png/issues/87
PNGEncoder::new(&mut png)
- .encode(&file, self.Width(), self.Height(), ColorType::RGBA(8))
+ .encode(&file, self.Width(), self.Height(), ColorType::Rgba8)
.unwrap();
let mut url = "data:image/png;base64,".to_owned();
// FIXME(nox): Should this use base64::URL_SAFE?
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 6cbb25157ff..f8c686d34f2 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -96,7 +96,8 @@ use std::rc::Rc;
use std::sync::{Arc, Mutex};
use time::{self, Duration, Timespec};
use webrender_api::{ExternalImageData, ExternalImageId, ExternalImageType, TextureTarget};
-use webrender_api::{ImageData, ImageDescriptor, ImageFormat, ImageKey, Transaction};
+use webrender_api::{ImageData, ImageDescriptor, ImageDescriptorFlags, ImageFormat};
+use webrender_api::{ImageKey, Transaction};
#[derive(PartialEq)]
enum FrameStatus {
@@ -186,8 +187,7 @@ impl VideoFrameRenderer for MediaFrameRenderer {
frame.get_width(),
frame.get_height(),
ImageFormat::BGRA8,
- false,
- false,
+ ImageDescriptorFlags::empty(),
);
match self.current_frame {
diff --git a/components/script/dom/promise.rs b/components/script/dom/promise.rs
index 37baedcc663..5e60507f8fc 100644
--- a/components/script/dom/promise.rs
+++ b/components/script/dom/promise.rs
@@ -91,7 +91,7 @@ impl Promise {
pub fn new_in_current_realm(global: &GlobalScope, _comp: InRealm) -> Rc<Promise> {
let cx = global.get_cx();
rooted!(in(*cx) let mut obj = ptr::null_mut::<JSObject>());
- Promise::create_js_promise(cx, HandleObject::null(), obj.handle_mut());
+ Promise::create_js_promise(cx, obj.handle_mut());
Promise::new_with_js_promise(obj.handle(), cx)
}
@@ -117,7 +117,7 @@ impl Promise {
}
#[allow(unsafe_code)]
- fn create_js_promise(cx: SafeJSContext, proto: HandleObject, mut obj: MutableHandleObject) {
+ fn create_js_promise(cx: SafeJSContext, mut obj: MutableHandleObject) {
unsafe {
let do_nothing_func = JS_NewFunction(
*cx,
@@ -129,7 +129,7 @@ impl Promise {
assert!(!do_nothing_func.is_null());
rooted!(in(*cx) let do_nothing_obj = JS_GetFunctionObject(do_nothing_func));
assert!(!do_nothing_obj.is_null());
- obj.set(NewPromiseObject(*cx, do_nothing_obj.handle(), proto));
+ obj.set(NewPromiseObject(*cx, do_nothing_obj.handle()));
assert!(!obj.is_null());
}
}
diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs
index f3c88cbb7c8..d6452a88043 100644
--- a/components/script/dom/webgl2renderingcontext.rs
+++ b/components/script/dom/webgl2renderingcontext.rs
@@ -82,6 +82,7 @@ fn typedarray_elem_size(typeid: Type) -> usize {
Type::Int16 | Type::Uint16 => 2,
Type::Int32 | Type::Uint32 | Type::Float32 => 4,
Type::Int64 | Type::Float64 => 8,
+ Type::BigInt64 | Type::BigUint64 => 8,
Type::MaxTypedArrayViewType => unreachable!(),
}
}
@@ -1466,6 +1467,12 @@ impl WebGL2RenderingContextMethods for WebGL2RenderingContext {
self.base.GetAttribLocation(program, name)
}
+ /// https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.7
+ fn GetFragDataLocation(&self, program: &WebGLProgram, name: DOMString) -> i32 {
+ handle_potential_webgl_error!(self.base, self.base.validate_ownership(program), return -1);
+ handle_potential_webgl_error!(self.base, program.get_frag_data_location(name), -1)
+ }
+
/// https://www.khronos.org/registry/webgl/specs/latest/1.0/#5.14.9
fn GetProgramInfoLog(&self, program: &WebGLProgram) -> Option<DOMString> {
self.base.GetProgramInfoLog(program)
@@ -3581,6 +3588,36 @@ impl WebGL2RenderingContextMethods for WebGL2RenderingContext {
height,
))
}
+
+ /// https://www.khronos.org/registry/webgl/specs/latest/2.0/#3.7.4
+ fn FramebufferTextureLayer(
+ &self,
+ target: u32,
+ attachment: u32,
+ texture: Option<&WebGLTexture>,
+ level: i32,
+ layer: i32,
+ ) {
+ if let Some(tex) = texture {
+ handle_potential_webgl_error!(self.base, self.base.validate_ownership(tex), return);
+ }
+
+ let fb_slot = match target {
+ constants::FRAMEBUFFER | constants::DRAW_FRAMEBUFFER => {
+ self.base.get_draw_framebuffer_slot()
+ },
+ constants::READ_FRAMEBUFFER => self.base.get_read_framebuffer_slot(),
+ _ => return self.base.webgl_error(InvalidEnum),
+ };
+
+ match fb_slot.get() {
+ Some(fb) => handle_potential_webgl_error!(
+ self.base,
+ fb.texture_layer(attachment, texture, level, layer)
+ ),
+ None => self.base.webgl_error(InvalidOperation),
+ }
+ }
}
impl LayoutCanvasWebGLRenderingContextHelpers for LayoutDom<WebGL2RenderingContext> {
diff --git a/components/script/dom/webglframebuffer.rs b/components/script/dom/webglframebuffer.rs
index 8f5f499072a..c285145d994 100644
--- a/components/script/dom/webglframebuffer.rs
+++ b/components/script/dom/webglframebuffer.rs
@@ -468,7 +468,7 @@ impl WebGLFramebuffer {
return CompleteForRendering::Complete;
}
- if self.colors.iter().any(|att| att.borrow().is_none()) {
+ if self.colors.iter().all(|att| att.borrow().is_none()) {
return CompleteForRendering::MissingColorAttachment;
}
@@ -727,6 +727,61 @@ impl WebGLFramebuffer {
Ok(())
}
+ pub fn texture_layer(
+ &self,
+ attachment: u32,
+ texture: Option<&WebGLTexture>,
+ level: i32,
+ layer: i32,
+ ) -> WebGLResult<()> {
+ let binding = self
+ .attachment_binding(attachment)
+ .ok_or(WebGLError::InvalidEnum)?;
+
+ let context = self.upcast::<WebGLObject>().context();
+
+ let tex_id = match texture {
+ Some(texture) => {
+ let (max_level, max_layer) = match texture.target() {
+ Some(constants::TEXTURE_3D) => (
+ log2(context.limits().max_3d_texture_size),
+ context.limits().max_3d_texture_size - 1,
+ ),
+ Some(constants::TEXTURE_2D) => (
+ log2(context.limits().max_tex_size),
+ context.limits().max_array_texture_layers - 1,
+ ),
+ _ => return Err(WebGLError::InvalidOperation),
+ };
+
+ if level < 0 || level as u32 >= max_level {
+ return Err(WebGLError::InvalidValue);
+ }
+ if layer < 0 || layer as u32 >= max_layer {
+ return Err(WebGLError::InvalidValue);
+ }
+
+ *binding.borrow_mut() = Some(WebGLFramebufferAttachment::Texture {
+ texture: Dom::from_ref(texture),
+ level: level,
+ });
+ texture.attach_to_framebuffer(self);
+
+ Some(texture.id())
+ },
+ _ => None,
+ };
+
+ context.send_command(WebGLCommand::FramebufferTextureLayer(
+ self.target.get().unwrap(),
+ attachment,
+ tex_id,
+ level,
+ layer,
+ ));
+ Ok(())
+ }
+
fn with_matching_renderbuffers<F>(&self, rb: &WebGLRenderbuffer, mut closure: F)
where
F: FnMut(&DomRefCell<Option<WebGLFramebufferAttachment>>, u32),
diff --git a/components/script/dom/webglprogram.rs b/components/script/dom/webglprogram.rs
index 556573aae2e..4bb59fb1428 100644
--- a/components/script/dom/webglprogram.rs
+++ b/components/script/dom/webglprogram.rs
@@ -365,6 +365,30 @@ impl WebGLProgram {
Ok(location)
}
+ /// glGetFragDataLocation
+ pub fn get_frag_data_location(&self, name: DOMString) -> WebGLResult<i32> {
+ if !self.is_linked() || self.is_deleted() {
+ return Err(WebGLError::InvalidOperation);
+ }
+
+ if !validate_glsl_name(&name)? {
+ return Ok(-1);
+ }
+ if name.starts_with("gl_") {
+ return Ok(-1);
+ }
+
+ let (sender, receiver) = webgl_channel().unwrap();
+ self.upcast::<WebGLObject>()
+ .context()
+ .send_command(WebGLCommand::GetFragDataLocation(
+ self.id,
+ name.into(),
+ sender,
+ ));
+ Ok(receiver.recv().unwrap())
+ }
+
/// glGetUniformLocation
pub fn get_uniform_location(
&self,
diff --git a/components/script/dom/webidls/WebGL2RenderingContext.webidl b/components/script/dom/webidls/WebGL2RenderingContext.webidl
index 6043c49cec3..157fe38f892 100644
--- a/components/script/dom/webidls/WebGL2RenderingContext.webidl
+++ b/components/script/dom/webidls/WebGL2RenderingContext.webidl
@@ -312,8 +312,8 @@ interface mixin WebGL2RenderingContextBase
/* Framebuffer objects */
// void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0,
// GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
- // void framebufferTextureLayer(GLenum target, GLenum attachment, WebGLTexture? texture, GLint level,
- // GLint layer);
+ void framebufferTextureLayer(GLenum target, GLenum attachment, WebGLTexture? texture, GLint level,
+ GLint layer);
void invalidateFramebuffer(GLenum target, sequence<GLenum> attachments);
void invalidateSubFramebuffer(GLenum target, sequence<GLenum> attachments,
GLint x, GLint y, GLsizei width, GLsizei height);
@@ -422,7 +422,7 @@ interface mixin WebGL2RenderingContextBase
// optional GLuint srcLengthOverride = 0);
/* Programs and shaders */
- // [WebGLHandlesContextLoss] GLint getFragDataLocation(WebGLProgram program, DOMString name);
+ [WebGLHandlesContextLoss] GLint getFragDataLocation(WebGLProgram program, DOMString name);
/* Uniforms */
void uniform1ui(WebGLUniformLocation? location, GLuint v0);
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index e06eb243856..6b3b51f9a79 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -332,6 +332,8 @@ pub struct Window {
/// A mechanism to force the compositor to process events.
#[ignore_malloc_size_of = "traits are cumbersome"]
event_loop_waker: Option<Box<dyn EventLoopWaker>>,
+
+ visible: Cell<bool>,
}
impl Window {
@@ -2185,6 +2187,7 @@ impl Window {
/// Slow down/speed up timers based on visibility.
pub fn alter_resource_utilization(&self, visible: bool) {
+ self.visible.set(visible);
if visible {
self.upcast::<GlobalScope>().speed_up_timers();
} else {
@@ -2192,6 +2195,10 @@ impl Window {
}
}
+ pub fn visible(&self) -> bool {
+ self.visible.get()
+ }
+
pub fn unminified_js_dir(&self) -> Option<String> {
self.unminified_js_dir.borrow().clone()
}
@@ -2339,6 +2346,7 @@ impl Window {
replace_surrogates,
player_context,
event_loop_waker,
+ visible: Cell::new(true),
});
unsafe { WindowBinding::Wrap(JSContext::from_ptr(runtime.cx()), win) }
diff --git a/components/script/lib.rs b/components/script/lib.rs
index 1a3ba6a2557..1962e9602d6 100644
--- a/components/script/lib.rs
+++ b/components/script/lib.rs
@@ -4,6 +4,7 @@
#![feature(box_into_raw_non_null)]
#![feature(const_fn)]
+#![feature(const_transmute)]
#![feature(core_intrinsics)]
#![feature(drain_filter)]
#![feature(inner_deref)]
diff --git a/components/script/script_module.rs b/components/script/script_module.rs
index b9eda4c2ee6..61f6405062b 100644
--- a/components/script/script_module.rs
+++ b/components/script/script_module.rs
@@ -39,22 +39,24 @@ use encoding_rs::UTF_8;
use hyper_serde::Serde;
use ipc_channel::ipc;
use ipc_channel::router::ROUTER;
-use js::glue::{AppendToAutoObjectVector, CreateAutoObjectVector};
use js::jsapi::Handle as RawHandle;
use js::jsapi::HandleObject;
use js::jsapi::HandleValue as RawHandleValue;
-use js::jsapi::{AutoObjectVector, JSAutoRealm, JSObject, JSString};
-use js::jsapi::{GetModuleResolveHook, JSRuntime, SetModuleResolveHook};
+use js::jsapi::{
+ CompileModule, ExceptionStackBehavior, GetModuleResolveHook, JSRuntime, SetModuleResolveHook,
+};
use js::jsapi::{GetRequestedModules, SetModuleMetadataHook};
use js::jsapi::{GetWaitForAllPromise, ModuleEvaluate, ModuleInstantiate, SourceText};
use js::jsapi::{Heap, JSContext, JS_ClearPendingException, SetModulePrivate};
+use js::jsapi::{JSAutoRealm, JSObject, JSString};
use js::jsapi::{SetModuleDynamicImportHook, SetScriptPrivateReferenceHooks};
use js::jsval::{JSVal, PrivateValue, UndefinedValue};
-use js::rust::jsapi_wrapped::{CompileModule, JS_GetArrayLength, JS_GetElement};
use js::rust::jsapi_wrapped::{GetRequestedModuleSpecifier, JS_GetPendingException};
+use js::rust::jsapi_wrapped::{JS_GetArrayLength, JS_GetElement};
use js::rust::wrappers::JS_SetPendingException;
use js::rust::CompileOptionsWrapper;
use js::rust::IntoHandle;
+use js::rust::RootedObjectVectorWrapper;
use js::rust::{Handle, HandleValue};
use mime::Mime;
use net_traits::request::{CredentialsMode, Destination, ParserMetadata};
@@ -67,7 +69,6 @@ use std::cmp::Ordering;
use std::collections::{HashMap, HashSet};
use std::ffi;
use std::marker::PhantomData;
-use std::ptr;
use std::rc::Rc;
use std::str::FromStr;
use std::sync::{Arc, Mutex};
@@ -364,19 +365,19 @@ impl ModuleTree {
let _ac = JSAutoRealm::new(*global.get_cx(), *global.reflector().get_jsobject());
- let compile_options = CompileOptionsWrapper::new(*global.get_cx(), url_cstr.as_ptr(), 1);
-
- rooted!(in(*global.get_cx()) let mut module_script = ptr::null_mut::<JSObject>());
+ let compile_options =
+ unsafe { CompileOptionsWrapper::new(*global.get_cx(), url_cstr.as_ptr(), 1) };
let mut source = get_source_text(&module);
unsafe {
- if !CompileModule(
+ rooted!(in(*global.get_cx()) let mut module_script = CompileModule(
*global.get_cx(),
compile_options.ptr,
&mut source,
- &mut module_script.handle_mut(),
- ) {
+ ));
+
+ if module_script.is_null() {
warn!("fail to compile module script of {}", url);
rooted!(in(*global.get_cx()) let mut exception = UndefinedValue());
@@ -399,16 +400,16 @@ impl ModuleTree {
module_script.get(),
&PrivateValue(Box::into_raw(module_script_data) as *const _),
);
- }
- debug!("module script of {} compile done", url);
+ debug!("module script of {} compile done", url);
- self.resolve_requested_module_specifiers(
- &global,
- module_script.handle().into_handle(),
- url.clone(),
- )
- .map(|_| ModuleObject(Heap::boxed(*module_script)))
+ self.resolve_requested_module_specifiers(
+ &global,
+ module_script.handle().into_handle(),
+ url.clone(),
+ )
+ .map(|_| ModuleObject(Heap::boxed(*module_script)))
+ }
}
#[allow(unsafe_code)]
@@ -477,7 +478,11 @@ impl ModuleTree {
if let Some(exception) = &*module_error {
unsafe {
let ar = enter_realm(&*global);
- JS_SetPendingException(*global.get_cx(), exception.handle());
+ JS_SetPendingException(
+ *global.get_cx(),
+ exception.handle(),
+ ExceptionStackBehavior::Capture,
+ );
report_pending_exception(*global.get_cx(), true, InRealm::Entered(&ar));
}
}
@@ -1338,16 +1343,16 @@ fn fetch_module_descendants_and_link(
AlreadyInRealm::assert(&*global);
let _ais = AutoIncumbentScript::new(&*global);
- let abv = CreateAutoObjectVector(*global.get_cx());
+ let abv = RootedObjectVectorWrapper::new(*global.get_cx());
for descendant in descendants {
- assert!(AppendToAutoObjectVector(
- abv as *mut AutoObjectVector,
- descendant.promise_obj().get()
- ));
+ assert!(abv.append(descendant.promise_obj().get()));
}
- rooted!(in(*global.get_cx()) let raw_promise_all = GetWaitForAllPromise(*global.get_cx(), abv));
+ rooted!(
+ in(*global.get_cx())
+ let raw_promise_all = GetWaitForAllPromise(*global.get_cx(), abv.handle())
+ );
let promise_all =
Promise::new_with_js_promise(raw_promise_all.handle(), global.get_cx());
diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs
index 3aa1d79c2d9..3cce6291d63 100644
--- a/components/script/script_runtime.rs
+++ b/components/script/script_runtime.rs
@@ -225,6 +225,7 @@ unsafe extern "C" fn enqueue_promise_job(
/// https://html.spec.whatwg.org/multipage/#the-hostpromiserejectiontracker-implementation
unsafe extern "C" fn promise_rejection_tracker(
cx: *mut RawJSContext,
+ _muted_errors: bool,
promise: HandleObject,
state: PromiseRejectionHandlingState,
_data: *mut c_void,
@@ -507,8 +508,16 @@ unsafe fn new_rt_and_cx_with_parent(
// Enable or disable the JITs.
let cx_opts = &mut *ContextOptionsRef(cx);
- cx_opts.set_baseline_(pref!(js.baseline.enabled));
- cx_opts.set_ion_(pref!(js.ion.enabled));
+ JS_SetGlobalJitCompilerOption(
+ cx,
+ JSJitCompilerOption::JSJITCOMPILER_BASELINE_ENABLE,
+ pref!(js.baseline.enabled) as u32,
+ );
+ JS_SetGlobalJitCompilerOption(
+ cx,
+ JSJitCompilerOption::JSJITCOMPILER_ION_ENABLE,
+ pref!(js.ion.enabled) as u32,
+ );
cx_opts.set_asmJS_(pref!(js.asmjs.enabled));
let wasm_enabled = pref!(js.wasm.enabled);
cx_opts.set_wasm_(wasm_enabled);
@@ -523,7 +532,11 @@ unsafe fn new_rt_and_cx_with_parent(
cx_opts.set_extraWarnings_(pref!(js.strict.enabled));
// TODO: handle js.strict.debug.enabled
// TODO: handle js.throw_on_asmjs_validation_failure (needs new Spidermonkey)
- cx_opts.set_nativeRegExp_(pref!(js.native_regex.enabled));
+ JS_SetGlobalJitCompilerOption(
+ cx,
+ JSJitCompilerOption::JSJITCOMPILER_NATIVE_REGEXP_ENABLE,
+ pref!(js.native_regex.enabled) as u32,
+ );
JS_SetParallelParsingEnabled(cx, pref!(js.parallel_parsing.enabled));
JS_SetOffthreadIonCompilationEnabled(cx, pref!(js.offthread_compilation.enabled));
JS_SetGlobalJitCompilerOption(
@@ -552,11 +565,6 @@ unsafe fn new_rt_and_cx_with_parent(
// TODO: handle js.shared_memory.enabled
JS_SetGCParameter(
cx,
- JSGCParamKey::JSGC_MAX_MALLOC_BYTES,
- (pref!(js.mem.high_water_mark) * 1024 * 1024) as u32,
- );
- JS_SetGCParameter(
- cx,
JSGCParamKey::JSGC_MAX_BYTES,
in_range(pref!(js.mem.max), 1, 0x100)
.map(|val| (val * 1024 * 1024) as u32)
@@ -572,7 +580,7 @@ unsafe fn new_rt_and_cx_with_parent(
};
JS_SetGCParameter(cx, JSGCParamKey::JSGC_MODE, js_gc_mode as u32);
if let Some(val) = in_range(pref!(js.mem.gc.incremental.slice_ms), 0, 100_000) {
- JS_SetGCParameter(cx, JSGCParamKey::JSGC_SLICE_TIME_BUDGET, val as u32);
+ JS_SetGCParameter(cx, JSGCParamKey::JSGC_SLICE_TIME_BUDGET_MS, val as u32);
}
JS_SetGCParameter(
cx,
@@ -617,22 +625,14 @@ unsafe fn new_rt_and_cx_with_parent(
JS_SetGCParameter(cx, JSGCParamKey::JSGC_HIGH_FREQUENCY_HIGH_LIMIT, val as u32);
}
if let Some(val) = in_range(pref!(js.mem.gc.allocation_threshold_factor), 0, 10_000) {
- JS_SetGCParameter(
- cx,
- JSGCParamKey::JSGC_ALLOCATION_THRESHOLD_FACTOR,
- val as u32,
- );
+ JS_SetGCParameter(cx, JSGCParamKey::JSGC_NON_INCREMENTAL_FACTOR, val as u32);
}
if let Some(val) = in_range(
pref!(js.mem.gc.allocation_threshold_avoid_interrupt_factor),
0,
10_000,
) {
- JS_SetGCParameter(
- cx,
- JSGCParamKey::JSGC_ALLOCATION_THRESHOLD_FACTOR_AVOID_INTERRUPT,
- val as u32,
- );
+ JS_SetGCParameter(cx, JSGCParamKey::JSGC_AVOID_INTERRUPT_FACTOR, val as u32);
}
if let Some(val) = in_range(pref!(js.mem.gc.empty_chunk_count_min), 0, 10_000) {
JS_SetGCParameter(cx, JSGCParamKey::JSGC_MIN_EMPTY_CHUNK_COUNT, val as u32);
@@ -836,6 +836,7 @@ unsafe fn set_gc_zeal_options(cx: *mut RawJSContext) {
unsafe fn set_gc_zeal_options(_: *mut RawJSContext) {}
#[derive(Clone, Copy)]
+#[repr(transparent)]
pub struct JSContext(*mut RawJSContext);
#[allow(unsafe_code)]
diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs
index f177f8e4c30..1e094ec086c 100644
--- a/components/script/webdriver_handlers.rs
+++ b/components/script/webdriver_handlers.rs
@@ -37,6 +37,7 @@ use crate::dom::node::{window_from_node, Node, ShadowIncluding};
use crate::dom::nodelist::NodeList;
use crate::dom::window::Window;
use crate::dom::xmlserializer::XMLSerializer;
+use crate::realms::enter_realm;
use crate::script_runtime::JSContext as SafeJSContext;
use crate::script_thread::{Documents, ScriptThread};
use cookie::Cookie;
@@ -160,6 +161,7 @@ pub unsafe fn jsval_to_webdriver(
global_scope: &GlobalScope,
val: HandleValue,
) -> WebDriverJSResult {
+ let _ac = enter_realm(global_scope);
if val.get().is_undefined() {
Ok(WebDriverJSValue::Undefined)
} else if val.get().is_null() {
@@ -996,7 +998,9 @@ pub fn handle_get_property(
reply
.send(
find_node_by_unique_id(documents, pipeline, node_id).and_then(|node| {
- let cx = documents.find_document(pipeline).unwrap().window().get_cx();
+ let document = documents.find_document(pipeline).unwrap();
+ let _ac = enter_realm(&*document);
+ let cx = document.window().get_cx();
rooted!(in(*cx) let mut property = UndefinedValue());
match unsafe {
diff --git a/components/servo/Cargo.toml b/components/servo/Cargo.toml
index 8c975d604a6..ffcb3b83f2c 100644
--- a/components/servo/Cargo.toml
+++ b/components/servo/Cargo.toml
@@ -52,10 +52,10 @@ debugger = {path = "../debugger"}
devtools = {path = "../devtools"}
devtools_traits = {path = "../devtools_traits"}
embedder_traits = {path = "../embedder_traits"}
-env_logger = "0.6"
+env_logger = "0.7"
euclid = "0.20"
gfx = {path = "../gfx"}
-gleam = "0.6"
+gleam = "0.9"
ipc-channel = "0.14"
keyboard-types = "0.4"
layout_thread_2013 = {path = "../layout_thread", optional = true}
diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml
index f580d55b084..59f231e11b3 100644
--- a/components/style/Cargo.toml
+++ b/components/style/Cargo.toml
@@ -53,7 +53,7 @@ malloc_size_of_derive = "0.1"
num_cpus = {version = "1.1.0"}
num-integer = "0.1"
num-traits = "0.2"
-num-derive = "0.2"
+num-derive = "0.3"
owning_ref = "0.4"
parking_lot = "0.9"
precomputed-hash = "0.1.1"
@@ -81,7 +81,7 @@ void = "1.0.2"
[build-dependencies]
lazy_static = "1"
log = "0.4"
-bindgen = {version = "0.51", optional = true, default-features = false}
+bindgen = {version = "0.53", optional = true, default-features = false}
regex = {version = "1.1", optional = true}
walkdir = "2.1.4"
toml = {version = "0.5", optional = true, default-features = false}
diff --git a/components/webdriver_server/Cargo.toml b/components/webdriver_server/Cargo.toml
index 44033207ece..1ea3a1254a7 100644
--- a/components/webdriver_server/Cargo.toml
+++ b/components/webdriver_server/Cargo.toml
@@ -17,7 +17,7 @@ cookie = "0.11"
crossbeam-channel = "0.4"
euclid = "0.20"
hyper = "0.12"
-image = "0.22"
+image = "0.23"
ipc-channel = "0.14"
keyboard-types = "0.4.3"
log = "0.4"
diff --git a/components/webdriver_server/lib.rs b/components/webdriver_server/lib.rs
index 6cf3db4bc18..6b63ebf0f6a 100644
--- a/components/webdriver_server/lib.rs
+++ b/components/webdriver_server/lib.rs
@@ -1583,7 +1583,7 @@ impl Handler {
let rgb = RgbImage::from_raw(img.width, img.height, img.bytes.to_vec()).unwrap();
let mut png_data = Vec::new();
DynamicImage::ImageRgb8(rgb)
- .write_to(&mut png_data, ImageFormat::PNG)
+ .write_to(&mut png_data, ImageFormat::Png)
.unwrap();
Ok(base64::encode(&png_data))
diff --git a/components/webvr/Cargo.toml b/components/webvr/Cargo.toml
index 9f713245519..fc5e81e6360 100644
--- a/components/webvr/Cargo.toml
+++ b/components/webvr/Cargo.toml
@@ -22,7 +22,7 @@ euclid = "0.20"
ipc-channel = "0.14"
log = "0.4"
msg = {path = "../msg"}
-rust-webvr = {version = "0.17", features = ["mock", "openvr", "vrexternal"]}
+rust-webvr = {version = "0.19", features = ["mock", "openvr", "vrexternal"]}
rust-webvr-api = "0.17"
servo_config = {path = "../config"}
sparkle = "0.1"
diff --git a/etc/taskcluster/decision_task.py b/etc/taskcluster/decision_task.py
index 01809fe6b97..38107fda1a2 100644
--- a/etc/taskcluster/decision_task.py
+++ b/etc/taskcluster/decision_task.py
@@ -311,6 +311,8 @@ def windows_arm64():
return (
windows_build_task("UWP dev build", arch="arm64", package=False)
.with_treeherder("Windows arm64", "UWP-Dev")
+ .with_features("taskclusterProxy")
+ .with_scopes("secrets:get:project/servo/windows-codesign-cert/latest")
.with_script(
"python mach build --dev --target=aarch64-uwp-windows-msvc",
"python mach package --dev --target aarch64-uwp-windows-msvc --uwp=arm64",
@@ -324,6 +326,8 @@ def windows_uwp_x64():
return (
windows_build_task("UWP dev build", package=False)
.with_treeherder("Windows x64", "UWP-Dev")
+ .with_features("taskclusterProxy")
+ .with_scopes("secrets:get:project/servo/windows-codesign-cert/latest")
.with_script(
"python mach build --dev --target=x86_64-uwp-windows-msvc",
"python mach package --dev --target=x86_64-uwp-windows-msvc --uwp=x64",
@@ -554,7 +558,7 @@ def linux_wpt():
def linux_wpt_layout_2020():
- linux_wpt_common(total_chunks=1, layout_2020=True)
+ linux_wpt_common(total_chunks=2, layout_2020=True)
def linux_wpt_common(total_chunks, layout_2020):
diff --git a/ports/glutin/Cargo.toml b/ports/glutin/Cargo.toml
index bfe5aadbd6c..80807b6f3f7 100644
--- a/ports/glutin/Cargo.toml
+++ b/ports/glutin/Cargo.toml
@@ -52,14 +52,14 @@ backtrace = "0.3"
clipboard = "0.5"
euclid = "0.20"
getopts = "0.2.11"
-gleam = "0.6"
+gleam = "0.9"
glutin = "0.21.0"
keyboard-types = "0.4.3"
lazy_static = "1"
libservo = {path = "../../components/servo"}
libc = "0.2"
log = "0.4"
-rust-webvr = { version = "0.17", features = ["glwindow"] }
+rust-webvr = { version = "0.19", features = ["glwindow"] }
servo-media = {git = "https://github.com/servo/media"}
shellwords = "1.0.0"
tinyfiledialogs = "3.0"
@@ -67,7 +67,7 @@ webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
webxr = { git = "https://github.com/servo/webxr", features = ["ipc", "glwindow", "headless"] }
[target.'cfg(any(target_os = "linux", target_os = "windows"))'.dependencies]
-image = "0.22"
+image = "0.23"
[target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies]
osmesa-sys = "0.1.2"
diff --git a/ports/gstplugin/Cargo.toml b/ports/gstplugin/Cargo.toml
index 5718f383f33..60d3e6efdb8 100644
--- a/ports/gstplugin/Cargo.toml
+++ b/ports/gstplugin/Cargo.toml
@@ -17,7 +17,7 @@ path = "lib.rs"
[dependencies]
crossbeam-channel = "0.4"
euclid = "0.20"
-gleam = "0.6"
+gleam = "0.9"
glib = "0.9"
gstreamer = "0.15"
gstreamer-base = "0.15"
diff --git a/ports/libmlservo/Cargo.toml b/ports/libmlservo/Cargo.toml
index 9d407883103..562eaad4c27 100644
--- a/ports/libmlservo/Cargo.toml
+++ b/ports/libmlservo/Cargo.toml
@@ -20,7 +20,7 @@ layout-2020 = ["simpleservo/layout-2020"]
[dependencies]
libservo = { path = "../../components/servo", features = ["no_static_freetype"] }
simpleservo = { path = "../libsimpleservo/api", features = ["no_static_freetype"] }
-rust-webvr = { version = "0.17", features = ["magicleap"] }
+rust-webvr = { version = "0.19", features = ["magicleap"] }
webxr-api = { git = "https://github.com/servo/webxr", features = ["ipc"] }
webxr = { git = "https://github.com/servo/webxr", features = ["ipc", "magicleap"] }
libc = "0.2"
diff --git a/ports/libsimpleservo/capi/Cargo.toml b/ports/libsimpleservo/capi/Cargo.toml
index 2973f1dcb04..a782d952351 100644
--- a/ports/libsimpleservo/capi/Cargo.toml
+++ b/ports/libsimpleservo/capi/Cargo.toml
@@ -16,7 +16,7 @@ bench = false
simpleservo = { path = "../api" }
log = "0.4"
lazy_static = "1"
-env_logger = "0.6"
+env_logger = "0.7"
backtrace = "0.3"
[target.'cfg(target_os = "windows")'.dependencies]
diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py
index a663763a398..a0aa3865b6f 100644
--- a/python/servo/package_commands.py
+++ b/python/servo/package_commands.py
@@ -10,6 +10,7 @@
from __future__ import absolute_import, print_function, unicode_literals
from datetime import datetime
+import base64
import hashlib
import json
import os
@@ -20,6 +21,7 @@ import subprocess
import sys
import tempfile
import six.moves.urllib as urllib
+import xml
from mach.decorators import (
CommandArgument,
@@ -91,6 +93,15 @@ else:
raise e
+def get_taskcluster_secret(name):
+ url = (
+ os.environ.get("TASKCLUSTER_PROXY_URL", "http://taskcluster") +
+ "/api/secrets/v1/secret/project/servo/" +
+ name
+ )
+ return json.load(urllib.request.urlopen(url))["secret"]
+
+
def otool(s):
o = subprocess.Popen(['/usr/bin/otool', '-L', s], stdout=subprocess.PIPE)
for l in o.stdout:
@@ -209,8 +220,9 @@ class PackageCommands(CommandBase):
default=None,
action='append',
help='Create an APPX package')
+ @CommandArgument('--ms-app-store', default=None, action='store_true')
def package(self, release=False, dev=False, android=None, magicleap=None, debug=False,
- debugger=None, target=None, flavor=None, maven=False, uwp=None):
+ debugger=None, target=None, flavor=None, maven=False, uwp=None, ms_app_store=False):
if android is None:
android = self.config["build"]["android"]
if target and android:
@@ -234,7 +246,7 @@ class PackageCommands(CommandBase):
target_dir = path.dirname(binary_path)
if uwp:
vs_info = self.vs_dirs()
- build_uwp(uwp, dev, vs_info['msbuild'])
+ build_uwp(uwp, dev, vs_info['msbuild'], ms_app_store)
elif magicleap:
if platform.system() not in ["Darwin"]:
raise Exception("Magic Leap builds are only supported on macOS.")
@@ -588,14 +600,6 @@ class PackageCommands(CommandBase):
def upload_nightly(self, platform, secret_from_taskcluster):
import boto3
- def get_taskcluster_secret(name):
- url = (
- os.environ.get("TASKCLUSTER_PROXY_URL", "http://taskcluster") +
- "/api/secrets/v1/secret/project/servo/" +
- name
- )
- return json.load(urllib.request.urlopen(url))["secret"]
-
def get_s3_secret():
aws_access_key = None
aws_secret_access_key = None
@@ -739,7 +743,59 @@ class PackageCommands(CommandBase):
return 0
-def build_uwp(platforms, dev, msbuild_dir):
+def setup_uwp_signing(ms_app_store):
+ # App package needs to be signed. If we find a certificate that has been installed
+ # already, we use it. Otherwise we create and install a temporary certificate.
+
+ if ms_app_store:
+ return ["/p:AppxPackageSigningEnabled=false"]
+
+ is_tc = "TASKCLUSTER_PROXY_URL" in os.environ
+
+ def run_powershell_cmd(cmd):
+ try:
+ return subprocess.check_output(['powershell.exe', '-NoProfile', '-Command', cmd])
+ except subprocess.CalledProcessError:
+ print("ERROR: PowerShell command failed: ", cmd)
+ exit(1)
+
+ if is_tc:
+ print("Packaging on TC. Using secret certificate")
+ pfx = get_taskcluster_secret("windows-codesign-cert/latest")["pfx"]
+ open("servo.pfx", "wb").write(base64.b64decode(pfx["base64"]))
+ run_powershell_cmd('Import-PfxCertificate -FilePath .\servo.pfx -CertStoreLocation Cert:\CurrentUser\My')
+ os.remove("servo.pfx")
+
+ # Parse appxmanifest to find the publisher name
+ manifest_file = path.join(os.getcwd(), 'support', 'hololens', 'ServoApp', 'Package.appxmanifest')
+ manifest = xml.etree.ElementTree.parse(manifest_file)
+ namespace = "{http://schemas.microsoft.com/appx/manifest/foundation/windows10}"
+ publisher = manifest.getroot().find(namespace + "Identity").attrib["Publisher"]
+ # Powershell command that lists all certificates for publisher
+ cmd = '(dir cert: -Recurse | Where-Object {$_.Issuer -eq "' + publisher + '"}).Thumbprint'
+ certs = list(set(run_powershell_cmd(cmd).splitlines()))
+ if not certs and is_tc:
+ print("Error: No certificate installed for publisher " + publisher)
+ exit(1)
+ if not certs and not is_tc:
+ print("No certificate installed for publisher " + publisher)
+ print("Creating and installing a temporary certificate")
+ # PowerShell command that creates and install signing certificate for publisher
+ cmd = '(New-SelfSignedCertificate -Type Custom -Subject ' + publisher + \
+ ' -FriendlyName "Allizom Signing Certificate (temporary)"' + \
+ ' -KeyUsage DigitalSignature -CertStoreLocation "Cert:\CurrentUser\My"' + \
+ ' -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}")).Thumbprint'
+ thumbprint = run_powershell_cmd(cmd)
+ elif len(certs) > 1:
+ print("Warning: multiple signing certificate are installed for " + publisher)
+ print("Warning: Using first one")
+ thumbprint = certs[0]
+ else:
+ thumbprint = certs[0]
+ return ["/p:AppxPackageSigningEnabled=true", "/p:PackageCertificateThumbprint=" + thumbprint]
+
+
+def build_uwp(platforms, dev, msbuild_dir, ms_app_store):
if any(map(lambda p: p not in ['x64', 'x86', 'arm64'], platforms)):
raise Exception("Unsupported appx platforms: " + str(platforms))
if dev and len(platforms) > 1:
@@ -764,7 +820,8 @@ def build_uwp(platforms, dev, msbuild_dir):
)
build_file.close()
# Generate an appxbundle.
- subprocess.check_call([msbuild, "/m", build_file.name])
+ msbuild_args = setup_uwp_signing(ms_app_store)
+ subprocess.check_call([msbuild, "/m", build_file.name] + msbuild_args)
os.unlink(build_file.name)
print("Creating ZIP")
diff --git a/resources/prefs.json b/resources/prefs.json
index 3bcf60d36df..985899e6554 100644
--- a/resources/prefs.json
+++ b/resources/prefs.json
@@ -66,7 +66,6 @@
"js.mem.gc.per_zone.enabled": false,
"js.mem.gc.zeal.frequency": 100,
"js.mem.gc.zeal.level": 0,
- "js.mem.high_water_mark": 128,
"js.mem.max": -1,
"js.native_regex.enabled": true,
"js.offthread_compilation.enabled": true,
diff --git a/servo-tidy.toml b/servo-tidy.toml
index 2de6bdc6a38..1a658e8429d 100644
--- a/servo-tidy.toml
+++ b/servo-tidy.toml
@@ -39,16 +39,12 @@ packages = [
# https://github.com/servo/servo/pull/23288#issuecomment-494687746
"gl_generator",
- # Just needs a WR update.
- "derive_more",
-
# Lots of crates to update.
"smallvec",
# https://github.com/servo/servo/issues/24421
"proc-macro2",
"quote",
- "syn",
"unicode-xid",
# These can be removed once servo is updated to surfman 0.2
diff --git a/support/hololens/ServoApp/Package.appxmanifest b/support/hololens/ServoApp/Package.appxmanifest
index 53255364338..5ada19983d7 100644
--- a/support/hololens/ServoApp/Package.appxmanifest
+++ b/support/hololens/ServoApp/Package.appxmanifest
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" IgnorableNamespaces="uap mp uap5">
- <Identity Name="MozillaFoundation.FirefoxReality" Publisher="CN=193FE5E7-EFE6-4FC4-9D96-D742E0265B78" Version="1.0.0.0" />
+ <Identity Name="MozillaFoundation.FirefoxReality" Publisher="CN=Allizom" Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="1d265729-8836-4bd3-9992-4cb111d1068b" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
<Properties>
<DisplayName>Firefox Reality</DisplayName>
diff --git a/support/hololens/ServoApp/ServoApp.vcxproj b/support/hololens/ServoApp/ServoApp.vcxproj
index 615d78c013a..6d729b3661b 100644
--- a/support/hololens/ServoApp/ServoApp.vcxproj
+++ b/support/hololens/ServoApp/ServoApp.vcxproj
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
+<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\OpenXR.Loader.1.0.3\build\native\OpenXR.Loader.props" Condition="Exists('..\packages\OpenXR.Loader.1.0.3\build\native\OpenXR.Loader.props')" />
<Import Project="..\packages\Microsoft.Windows.CppWinRT.2.0.190620.2\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\packages\Microsoft.Windows.CppWinRT.2.0.190620.2\build\native\Microsoft.Windows.CppWinRT.props')" />
@@ -870,7 +870,6 @@
<None Include="..\..\..\target\x86_64-uwp-windows-msvc\release\z-1.dll">
<DeploymentContent Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</DeploymentContent>
</None>
- <None Include="ServoApp_TemporaryKey.pfx" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\LargeTile.scale-100.png" />
diff --git a/support/hololens/ServoApp/ServoApp.vcxproj.filters b/support/hololens/ServoApp/ServoApp.vcxproj.filters
index 5f1a2c73ab3..0e78db725be 100644
--- a/support/hololens/ServoApp/ServoApp.vcxproj.filters
+++ b/support/hololens/ServoApp/ServoApp.vcxproj.filters
@@ -159,7 +159,6 @@
<AppxManifest Include="Package.appxmanifest" />
</ItemGroup>
<ItemGroup>
- <None Include="ServoApp_TemporaryKey.pfx" />
<None Include="packages.config" />
<None Include="..\..\..\target\x86_64-uwp-windows-msvc\release\simpleservo.dll">
<Filter>ReleaseServoDLLs</Filter>
diff --git a/support/hololens/ServoApp/ServoApp_TemporaryKey.pfx b/support/hololens/ServoApp/ServoApp_TemporaryKey.pfx
deleted file mode 100644
index 8917164b3bb..00000000000
--- a/support/hololens/ServoApp/ServoApp_TemporaryKey.pfx
+++ /dev/null
Binary files differ
diff --git a/support/hololens/ServoApp/ServoControl/Servo.cpp b/support/hololens/ServoApp/ServoControl/Servo.cpp
index 8cebc5b1379..0db1bb93032 100644
--- a/support/hololens/ServoApp/ServoControl/Servo.cpp
+++ b/support/hololens/ServoApp/ServoControl/Servo.cpp
@@ -92,7 +92,7 @@ Servo::Servo(hstring url, hstring args, GLsizei width, GLsizei height,
: mWindowHeight(height), mWindowWidth(width), mDelegate(aDelegate) {
capi::CInitOptions o;
- hstring defaultPrefs = L" --pref dom.webxr.enabled --devtools=6000";
+ hstring defaultPrefs = L" --pref dom.webxr.enabled";
o.args = *hstring2char(args + defaultPrefs);
o.url = *hstring2char(url);
o.width = mWindowWidth;
diff --git a/support/hololens/package.msbuild b/support/hololens/package.msbuild
index d673876c350..8d25a8d3fd6 100644
--- a/support/hololens/package.msbuild
+++ b/support/hololens/package.msbuild
@@ -9,6 +9,6 @@
</ConfigAndPlatform>
</ItemGroup>
<MSBuild Projects="%%SOLUTION%%" Targets="Build"
- Properties="Configuration=%(ConfigAndPlatform.Identity);Platform=%(ConfigAndPlatform.Platform);AppxBundle=Always;AppxBundlePlatforms=%%PACKAGE_PLATFORMS%%;UseSubFolderForOutputDirDuringMultiPlatformBuild=false;AppxPackageSigningEnabled=false"/>
+ Properties="Configuration=%(ConfigAndPlatform.Identity);Platform=%(ConfigAndPlatform.Platform);AppxBundle=Always;AppxBundlePlatforms=%%PACKAGE_PLATFORMS%%;UseSubFolderForOutputDirDuringMultiPlatformBuild=false"/>
</Target>
-</Project> \ No newline at end of file
+</Project>
diff --git a/tests/wpt/include-layout-2020.ini b/tests/wpt/include-layout-2020.ini
index dd375d5f333..30f650b893a 100644
--- a/tests/wpt/include-layout-2020.ini
+++ b/tests/wpt/include-layout-2020.ini
@@ -5,20 +5,12 @@ skip: true
skip: false
[mozilla]
skip: false
+[2dcontext]
+ skip: false
[css]
skip: true
[CSS2]
- skip: true
- [backgrounds]
- skip: false
- [box-display]
- skip: false
- [generated-content]
- skip: false
- [zindex]
- skip: false
- [zorder]
- skip: false
+ skip: false
[css-backgrounds]
skip: false
[css-content]
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/conformance-requirements/2d.voidreturn.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/conformance-requirements/2d.voidreturn.html.ini
new file mode 100644
index 00000000000..89311f15567
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/conformance-requirements/2d.voidreturn.html.ini
@@ -0,0 +1,4 @@
+[2d.voidreturn.html]
+ [void methods return undefined]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/context-attributes/getContextAttributes.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/context-attributes/getContextAttributes.html.ini
new file mode 100644
index 00000000000..b0402d23dd8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/context-attributes/getContextAttributes.html.ini
@@ -0,0 +1,13 @@
+[getContextAttributes.html]
+ [Test context creation attributes alpha: true]
+ expected: FAIL
+
+ [Test context creation attributes alpha: false]
+ expected: FAIL
+
+ [Test default context creation attributes]
+ expected: FAIL
+
+ [Test context creation attributes desynchronized: false]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini
new file mode 100644
index 00000000000..adaff1bb3fe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini
@@ -0,0 +1,4 @@
+[2d.drawImage.svg.html]
+ [drawImage() of an SVG image]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini
new file mode 100644
index 00000000000..c1ee61dcd49
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini
@@ -0,0 +1,4 @@
+[2d.drawImage.zerosource.image.html]
+ [drawImage with zero-sized source rectangle from image throws INDEX_SIZE_ERR]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html.ini
new file mode 100644
index 00000000000..f42459d64b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_canvas.html.ini
@@ -0,0 +1,34 @@
+[drawimage_canvas.html]
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 99,84 should be black.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 70,70 should be blue.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 69,69 should be red.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 99,70 should be blue.]
+ expected: FAIL
+
+ [Test scenario 10: sx = 0, sy = 0, sw = 50, sh = 50, dx = 0, dy = 0, dw = 200, dh = 200 --- Pixel 20,99 should be black.]
+ expected: FAIL
+
+ [Test scenario 10: sx = 0, sy = 0, sw = 50, sh = 50, dx = 0, dy = 0, dw = 200, dh = 200 --- Pixel 99,20 should be black.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 99,99 should be black.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 70,99 should be blue.]
+ expected: FAIL
+
+ [Test scenario 10: sx = 0, sy = 0, sw = 50, sh = 50, dx = 0, dy = 0, dw = 200, dh = 200 --- Pixel 20,20 should be black.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 84,99 should be black.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 82,82 should be blue.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html.ini
new file mode 100644
index 00000000000..d396b515b3e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_html_image.html.ini
@@ -0,0 +1,13 @@
+[drawimage_html_image.html]
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 99,99 should be light purple.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 69,69 should be red.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 99,70 should be light purple.]
+ expected: FAIL
+
+ [Test scenario 12: sx = -20, sy = -20, sw = 50, sh = 50, dx = 20, dy = 20, dw = 125, dh = 125 --- Pixel 70,99 should be light purple.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html.ini
new file mode 100644
index 00000000000..91dd97fbac2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_1.html.ini
@@ -0,0 +1,4 @@
+[drawimage_svg_image_1.html]
+ [Load a 100x100 image to a SVG image and draw it to a 100x100 canvas.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html.ini
new file mode 100644
index 00000000000..0d351bdbe2e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/drawimage_svg_image_with_foreign_object_does_not_taint.html.ini
@@ -0,0 +1,5 @@
+[drawimage_svg_image_with_foreign_object_does_not_taint.html]
+ expected: TIMEOUT
+ [Canvas should not be tainted after drawing SVG including <foreignObject>]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.html.ini
new file mode 100644
index 00000000000..6a36d823470
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height-orientation-none.html.ini
@@ -0,0 +1,2 @@
+[drawImage-from-bitmap-swap-width-height-orientation-none.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.html.ini
new file mode 100644
index 00000000000..bf8e8dbcfd1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-bitmap-swap-width-height.html.ini
@@ -0,0 +1,2 @@
+[drawImage-from-bitmap-swap-width-height.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.html.ini
new file mode 100644
index 00000000000..130c303642e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-images-to-the-canvas/image-orientation/drawImage-from-element-swap-width-height.html.ini
@@ -0,0 +1,2 @@
+[drawImage-from-element-swap-width-height.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini
new file mode 100644
index 00000000000..88193256925
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini
@@ -0,0 +1,4 @@
+[drawFocusIfNeeded_001.html]
+ [drawFocusIfNeeded draws a focus ring.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini
new file mode 100644
index 00000000000..f18f1bf7a36
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini
@@ -0,0 +1,4 @@
+[drawFocusIfNeeded_002.html]
+ [drawFocusIfNeeded does not draw a focus ring if the element is not in focus.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini
new file mode 100644
index 00000000000..fbb9ebf79ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini
@@ -0,0 +1,4 @@
+[drawFocusIfNeeded_003.html]
+ [drawFocusIfNeeded does not draw a focus ring if the element is not a descendant of the context.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini
new file mode 100644
index 00000000000..eb856d523a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini
@@ -0,0 +1,4 @@
+[drawFocusIfNeeded_004.html]
+ [drawFocusIfNeeded does draw a focus ring if the element is in focus.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini
new file mode 100644
index 00000000000..6b6159c3e69
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini
@@ -0,0 +1,4 @@
+[drawFocusIfNeeded_005.html]
+ [drawFocusIfNeeded does draw a focus ring if the element is in focus and the user activated a particular focus ring.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini
new file mode 100644
index 00000000000..b1823dc9552
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini
@@ -0,0 +1,4 @@
+[2d.fillRect.shadow.html]
+ [fillRect draws shadows]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini
new file mode 100644
index 00000000000..6b8701c8f7d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini
@@ -0,0 +1,4 @@
+[2d.strokeRect.shadow.html]
+ [strokeRect draws shadows]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini
new file mode 100644
index 00000000000..a94c7f3a91c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.center.html]
+ [textAlign center is the center of the em squares (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini
new file mode 100644
index 00000000000..e87fa1ae542
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.end.ltr.html]
+ [textAlign end with ltr is the right edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini
new file mode 100644
index 00000000000..4546e4efe3d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.end.rtl.html]
+ [textAlign end with rtl is the left edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini
new file mode 100644
index 00000000000..44e7bfc3349
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.left.html]
+ [textAlign left is the left of the first em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini
new file mode 100644
index 00000000000..ab6ee4d84cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.right.html]
+ [textAlign right is the right of the last em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini
new file mode 100644
index 00000000000..9403b25f6f1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.start.ltr.html]
+ [textAlign start with ltr is the left edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini
new file mode 100644
index 00000000000..297adfc6827
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.align.start.rtl.html]
+ [textAlign start with rtl is the right edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini
new file mode 100644
index 00000000000..1a92a639587
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fill.maxWidth.bound.html]
+ [fillText handles maxWidth based on line size, not bounding box size]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini
new file mode 100644
index 00000000000..12e62113967
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fontface.html]
+ [Canvas test: 2d.text.draw.fontface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini
new file mode 100644
index 00000000000..21a787eebd0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fontface.notinpage.html]
+ [@font-face fonts should work even if they are not used in the page]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini
new file mode 100644
index 00000000000..b28e435ff8b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.fontface.repeat.html]
+ [Draw with the font immediately, then wait a bit until and draw again. (This crashes some version of WebKit.)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini
new file mode 100644
index 00000000000..b24ad7daaf5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.space.basic.html]
+ [U+0020 is rendered the correct size (1em wide)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini
new file mode 100644
index 00000000000..403c4063ea3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.space.collapse.nonspace.html]
+ [Non-space characters are not converted to U+0020 and collapsed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini
new file mode 100644
index 00000000000..837a7012c75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.stroke.unaffected.html]
+ [strokeText does not start a new path or subpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html.ini
new file mode 100644
index 00000000000..93a00d9d776
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.actualBoundingBox.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.actualBoundingBox.html]
+ [Testing actualBoundingBox]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.advances.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.advances.html.ini
new file mode 100644
index 00000000000..c6ff9f76168
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.advances.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.advances.html]
+ [Testing width advances]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.baselines.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.baselines.html.ini
new file mode 100644
index 00000000000..9d0d26f9399
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.baselines.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.baselines.html]
+ [Testing baselines]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.emHeights.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.emHeights.html.ini
new file mode 100644
index 00000000000..89c77c39bbb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.emHeights.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.emHeights.html]
+ [Testing emHeights]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html.ini
new file mode 100644
index 00000000000..ec57f1b22cd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.fontBoundingBox.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.fontBoundingBox.html]
+ [Testing fontBoundingBox]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini
new file mode 100644
index 00000000000..73a7796ad93
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.width.basic.html]
+ [The width of character is same as font used]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini
new file mode 100644
index 00000000000..77304a852d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.width.empty.html]
+ [The empty string has zero width]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini
new file mode 100644
index 00000000000..e2539a38dc4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.fillStyle.parse.current.basic.html]
+ [currentColor is computed from the canvas element]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini
new file mode 100644
index 00000000000..14999785b05
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini
@@ -0,0 +1,4 @@
+[2d.fillStyle.parse.current.changed.html]
+ [currentColor is computed when the attribute is set, not when it is painted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html.ini
new file mode 100644
index 00000000000..aad46209b22
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.notrendered.html.ini
@@ -0,0 +1,4 @@
+[2d.fillStyle.parse.current.notrendered.html]
+ [currentColor is computed from the canvas element even when element is not rendered]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini
new file mode 100644
index 00000000000..669c006b026
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini
@@ -0,0 +1,4 @@
+[2d.fillStyle.parse.system.html]
+ [Canvas test: 2d.fillStyle.parse.system]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini
new file mode 100644
index 00000000000..b12e5b8488b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.interpolate.zerosize.strokeText.html]
+ [Canvas test: 2d.gradient.interpolate.zerosize.strokeText]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini
new file mode 100644
index 00000000000..d058f7852d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.cone.behind.html]
+ [Canvas test: 2d.gradient.radial.cone.behind]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini
new file mode 100644
index 00000000000..1bd5a8e4c2f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.cone.beside.html]
+ [Canvas test: 2d.gradient.radial.cone.beside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini
new file mode 100644
index 00000000000..573e63a2f5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.cone.shape2.html]
+ [Canvas test: 2d.gradient.radial.cone.shape2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini
new file mode 100644
index 00000000000..c7e4cfa39c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.inside3.html]
+ [Canvas test: 2d.gradient.radial.inside3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini
new file mode 100644
index 00000000000..30ebbe345aa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.outside2.html]
+ [Canvas test: 2d.gradient.radial.outside2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini
new file mode 100644
index 00000000000..258881c8ebc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.outside3.html]
+ [Canvas test: 2d.gradient.radial.outside3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini
new file mode 100644
index 00000000000..de753c42d39
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.touch1.html]
+ [Canvas test: 2d.gradient.radial.touch1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini
new file mode 100644
index 00000000000..96b36eff7ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.touch2.html]
+ [Canvas test: 2d.gradient.radial.touch2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini
new file mode 100644
index 00000000000..b825bc15830
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini
@@ -0,0 +1,4 @@
+[2d.gradient.radial.touch3.html]
+ [Canvas test: 2d.gradient.radial.touch3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html.ini
new file mode 100644
index 00000000000..79f39c53155
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent-but-loading.html.ini
@@ -0,0 +1,4 @@
+[2d.pattern.image.nonexistent-but-loading.html]
+ [Canvas test: 2d.pattern.image.nonexistent-but-loading]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent.html.ini
new file mode 100644
index 00000000000..d1cbf15e597
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nonexistent.html.ini
@@ -0,0 +1,4 @@
+[2d.pattern.image.nonexistent.html]
+ [Canvas test: 2d.pattern.image.nonexistent]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nosrc.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nosrc.html.ini
new file mode 100644
index 00000000000..27fe75b75e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.image.nosrc.html.ini
@@ -0,0 +1,4 @@
+[2d.pattern.image.nosrc.html]
+ [Canvas test: 2d.pattern.image.nosrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html.ini
new file mode 100644
index 00000000000..c6ac9ddf165
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.nonexistent.html.ini
@@ -0,0 +1,4 @@
+[2d.pattern.svgimage.nonexistent.html]
+ [Canvas test: 2d.pattern.svgimage.nonexistent]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html.ini
new file mode 100644
index 00000000000..50d7ad171fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zeroheight.html.ini
@@ -0,0 +1,4 @@
+[2d.pattern.svgimage.zeroheight.html]
+ [Canvas test: 2d.pattern.svgimage.zeroheight]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html.ini
new file mode 100644
index 00000000000..40ca3dd584e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/fill-and-stroke-styles/2d.pattern.svgimage.zerowidth.html.ini
@@ -0,0 +1,4 @@
+[2d.pattern.svgimage.zerowidth.html]
+ [Canvas test: 2d.pattern.svgimage.zerowidth]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini
new file mode 100644
index 00000000000..2a1788ae21d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini
@@ -0,0 +1,13 @@
+[addHitRegions-NotSupportedError-01.html]
+ [strokeRect should not affect current default path and NotSupportedError should be thrown.]
+ expected: FAIL
+
+ [fillRect should not affect current default path and NotSupportedError should be thrown.]
+ expected: FAIL
+
+ [strokeText should not affect current default path and NotSupportedError shuld be thrown.]
+ expected: FAIL
+
+ [fillText should not affect current default path and NotSupportedError should be thrown.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/hit-regions/hitregions-members-exist.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/hit-regions/hitregions-members-exist.html.ini
new file mode 100644
index 00000000000..3fcfec84f3c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/hit-regions/hitregions-members-exist.html.ini
@@ -0,0 +1,10 @@
+[hitregions-members-exist.html]
+ [context.addHitRegion Exists]
+ expected: FAIL
+
+ [context.clearHitRegions Exists]
+ expected: FAIL
+
+ [context.removeHitRegion Exists]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-resize.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-resize.html.ini
new file mode 100644
index 00000000000..689e0cbbe94
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-resize.html.ini
@@ -0,0 +1,16 @@
+[canvas-createImageBitmap-resize.html]
+ [createImageBitmap from an ImageData with resize option.]
+ expected: FAIL
+
+ [createImageBitmap from a HTMLImageElement with resize option.]
+ expected: FAIL
+
+ [createImageBitmap from a HTMLCanvasElement with resize option.]
+ expected: FAIL
+
+ [createImageBitmap from an ImageBitmap with resize option.]
+ expected: FAIL
+
+ [createImageBitmap from a Blob with resize option.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html.ini
new file mode 100644
index 00000000000..457577efd90
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html.ini
@@ -0,0 +1,4 @@
+[canvas-createImageBitmap-video-resize.html]
+ [createImageBitmap(HTMLVideoElement) with resize option]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-blob-invalidtype.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-blob-invalidtype.html.ini
new file mode 100644
index 00000000000..3bc92ccae97
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-blob-invalidtype.html.ini
@@ -0,0 +1,4 @@
+[createImageBitmap-blob-invalidtype.html]
+ [createImageBitmap: blob with wrong mime type]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-bounds.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-bounds.html.ini
new file mode 100644
index 00000000000..423ab4a1f06
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-bounds.html.ini
@@ -0,0 +1,4 @@
+[createImageBitmap-bounds.html]
+ [createImageBitmap: clipping to the bitmap]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage-closed.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage-closed.html.ini
new file mode 100644
index 00000000000..2ac35e3b108
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage-closed.html.ini
@@ -0,0 +1,4 @@
+[createImageBitmap-drawImage-closed.html]
+ [attempt to draw a closed ImageBitmap to a 2d canvas throws INVALID_STATE_ERR]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage.html.ini
new file mode 100644
index 00000000000..2a534fa2875
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-drawImage.html.ini
@@ -0,0 +1,167 @@
+[createImageBitmap-drawImage.html]
+ expected: TIMEOUT
+ [createImageBitmap from an OffscreenCanvas resized, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector HTMLImageElement resized, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an OffscreenCanvas, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLCanvasElement, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a bitmap HTMLImageElement resized, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement from a data URL scaled down, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageData scaled down, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an OffscreenCanvas scaled down, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap SVGImageElement, and drawImage on the created ImageBitmap]
+ expected: TIMEOUT
+
+ [createImageBitmap from a bitmap SVGImageElement resized, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLCanvasElement scaled down, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a vector SVGImageElement, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageData scaled up, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLVideoElement with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a bitmap SVGImageElement scaled up, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector SVGImageElement resized, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap HTMLImageElement scaled up, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a bitmap HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a vector SVGImageElement scaled down, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector SVGImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap HTMLImageElement scaled down, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement scaled down, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a vector HTMLImageElement, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a Blob scaled down, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageData resized, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector HTMLImageElement scaled down, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageData, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLCanvasElement with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement from a data URL with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a vector SVGImageElement scaled up, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageBitmap, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a Blob scaled up, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap SVGImageElement scaled down, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLVideoElement scaled up, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLCanvasElement resized, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a Blob, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLVideoElement resized, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement from a data URL scaled up, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageBitmap scaled down, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a Blob with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap SVGImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageData with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageBitmap scaled up, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageBitmap resized, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an OffscreenCanvas scaled up, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLCanvasElement scaled up, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a Blob resized, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLVideoElement from a data URL, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a bitmap HTMLImageElement, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement from a data URL resized, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageBitmap with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an OffscreenCanvas with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector HTMLImageElement with negative sw/sh, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a vector HTMLImageElement scaled up, and drawImage on the created ImageBitmap]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-flipY.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-flipY.html.ini
new file mode 100644
index 00000000000..0cf916bbf7d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-flipY.html.ini
@@ -0,0 +1,68 @@
+[createImageBitmap-flipY.html]
+ expected: TIMEOUT
+ [createImageBitmap from a vector SVGImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector SVGImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLCanvasElement imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageData imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLVideoElement from a data URL imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an OffscreenCanvas imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector HTMLImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a Blob imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLCanvasElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an HTMLVideoElement imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageData imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap HTMLImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an OffscreenCanvas imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an ImageBitmap imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a vector HTMLImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a Blob imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from an HTMLVideoElement from a data URL imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from an ImageBitmap imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap HTMLImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: FAIL
+
+ [createImageBitmap from a bitmap SVGImageElement imageOrientation: "flipY", and drawImage on the created ImageBitmap]
+ expected: NOTRUN
+
+ [createImageBitmap from a bitmap SVGImageElement imageOrientation: "none", and drawImage on the created ImageBitmap]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html.ini
new file mode 100644
index 00000000000..fc69440e989
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-in-worker-transfer.html.ini
@@ -0,0 +1,5 @@
+[createImageBitmap-in-worker-transfer.html]
+ expected: ERROR
+ [Transfer ImageBitmap created in worker]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-invalid-args.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-invalid-args.html.ini
new file mode 100644
index 00000000000..049c6d8e599
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-invalid-args.html.ini
@@ -0,0 +1,149 @@
+[createImageBitmap-invalid-args.html]
+ expected: TIMEOUT
+ [createImageBitmap with a vector HTMLImageElement source and sw set to 0]
+ expected: FAIL
+
+ [createImageBitmap with an HTMLCanvasElement source and sw set to 0]
+ expected: FAIL
+
+ [createImageBitmap with a vector HTMLImageElement source and oversized (unallocatable) crop region]
+ expected: FAIL
+
+ [createImageBitmap with a broken image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with WebGLRenderingContext image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with a Blob source and sw set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an available but zero height image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLVideoElement source and sh set to 0]
+ expected: FAIL
+
+ [createImageBitmap with a vector HTMLImageElement source and sh set to 0]
+ expected: FAIL
+
+ [createImageBitmap with a Blob source and sh set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLVideoElement from a data URL source and sw set to 0]
+ expected: FAIL
+
+ [createImageBitmap with null image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with an ImageData source and sh set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with undefined image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with an undecodable blob source.]
+ expected: NOTRUN
+
+ [createImageBitmap with an available but undecodable image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLVideoElement from a data URL source and oversized (unallocatable) crop region]
+ expected: FAIL
+
+ [createImageBitmap with an HTMLVideoElement source and sw set to 0]
+ expected: FAIL
+
+ [createImageBitmap with a vector SVGImageElement source and oversized (unallocatable) crop region]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLCanvasElement source and oversized (unallocatable) crop region]
+ expected: FAIL
+
+ [createImageBitmap with an ImageBitmap source and oversized (unallocatable) crop region]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLVideoElement source and oversized (unallocatable) crop region]
+ expected: FAIL
+
+ [createImageBitmap with a bitmap HTMLImageElement source and sh set to 0]
+ expected: FAIL
+
+ [createImageBitmap with an ImageData source and sw set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an invalid OffscreenCanvas source.]
+ expected: NOTRUN
+
+ [createImageBitmap with an OffscreenCanvas source and sh set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an OffscreenCanvas source and sw set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLVideoElement from a data URL source and sh set to 0]
+ expected: FAIL
+
+ [createImageBitmap with an ImageData source and oversized (unallocatable) crop region]
+ expected: NOTRUN
+
+ [createImageBitmap with ArrayBuffer image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with a bitmap SVGImageElement source and oversized (unallocatable) crop region]
+ expected: NOTRUN
+
+ [createImageBitmap with an oversized canvas source.]
+ expected: NOTRUN
+
+ [createImageBitmap with Uint8Array image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with a vector SVGImageElement source and sh set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an HTMLCanvasElement source and sh set to 0]
+ expected: FAIL
+
+ [createImageBitmap with a closed ImageBitmap.]
+ expected: NOTRUN
+
+ [createImageBitmap with a bitmap HTMLImageElement source and oversized (unallocatable) crop region]
+ expected: FAIL
+
+ [createImageBitmap with empty image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with empty video source.]
+ expected: NOTRUN
+
+ [createImageBitmap with a bitmap SVGImageElement source and sw set to 0]
+ expected: TIMEOUT
+
+ [createImageBitmap with an ImageBitmap source and sh set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an available but zero width image source.]
+ expected: NOTRUN
+
+ [createImageBitmap with a vector SVGImageElement source and sw set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with a Blob source and oversized (unallocatable) crop region]
+ expected: NOTRUN
+
+ [createImageBitmap with a bitmap SVGImageElement source and sh set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with an ImageBitmap source and sw set to 0]
+ expected: NOTRUN
+
+ [createImageBitmap with a bitmap HTMLImageElement source and sw set to 0]
+ expected: FAIL
+
+ [createImageBitmap with an OffscreenCanvas source and oversized (unallocatable) crop region]
+ expected: NOTRUN
+
+ [createImageBitmap with CanvasRenderingContext2D image source.]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-origin.sub.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-origin.sub.html.ini
new file mode 100644
index 00000000000..6f57577a838
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-origin.sub.html.ini
@@ -0,0 +1,64 @@
+[createImageBitmap-origin.sub.html]
+ [redirected to cross-origin HTMLVideoElement: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [redirected to cross-origin HTMLVideoElement: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [unclean HTMLCanvasElement: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [unclean HTMLCanvasElement: origin unclear getImageData]
+ expected: FAIL
+
+ [cross-origin HTMLVideoElement: origin unclear getImageData]
+ expected: FAIL
+
+ [cross-origin SVGImageElement: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [cross-origin HTMLVideoElement: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [redirected to same-origin HTMLVideoElement: origin unclear getImageData]
+ expected: FAIL
+
+ [cross-origin HTMLImageElement: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [cross-origin SVGImageElement: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [cross-origin HTMLImageElement: origin unclear getImageData]
+ expected: FAIL
+
+ [cross-origin HTMLImageElement: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [redirected to same-origin HTMLVideoElement: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [unclean ImageBitmap: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [redirected to same-origin HTMLVideoElement: origin unclear bitmaprenderer.transferFromImageBitmap]
+ expected: FAIL
+
+ [redirected to cross-origin HTMLVideoElement: origin unclear getImageData]
+ expected: FAIL
+
+ [unclean ImageBitmap: origin unclear getImageData]
+ expected: FAIL
+
+ [unclean HTMLCanvasElement: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [cross-origin HTMLVideoElement: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [unclean ImageBitmap: origin unclear 2dContext.drawImage]
+ expected: FAIL
+
+ [cross-origin SVGImageElement: origin unclear getImageData]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-serializable.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-serializable.html.ini
new file mode 100644
index 00000000000..46580978b73
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-serializable.html.ini
@@ -0,0 +1,38 @@
+[createImageBitmap-serializable.html]
+ expected: ERROR
+ [Serialize ImageBitmap created from a vector SVGImageElement]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from an HTMLVideoElement]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from an HTMLCanvasElement]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from an HTMLVideoElement from a data URL]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from an OffscreenCanvas]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from a vector HTMLImageElement]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from a Blob]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from a bitmap HTMLImageElement]
+ expected: FAIL
+
+ [Serializing a non-origin-clean ImageBitmap throws.]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from an ImageData]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from an ImageBitmap]
+ expected: FAIL
+
+ [Serialize ImageBitmap created from a bitmap SVGImageElement]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html.ini
new file mode 100644
index 00000000000..0a13e0da172
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-sizeOverflow.html.ini
@@ -0,0 +1,16 @@
+[createImageBitmap-sizeOverflow.html]
+ [createImageBitmap does not crash or reject the promise when passing very large sh]
+ expected: FAIL
+
+ [createImageBitmap does not crash or reject the promise when passing very large sy]
+ expected: FAIL
+
+ [createImageBitmap does not crash or reject the promise when passing very large sx]
+ expected: FAIL
+
+ [createImageBitmap does not crash or reject the promise when passing very large sw]
+ expected: FAIL
+
+ [createImageBitmap does not crash or reject the promise when passing very large sx, sy, sw and sh]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-transfer.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-transfer.html.ini
new file mode 100644
index 00000000000..e0c3083d285
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/imagebitmap/createImageBitmap-transfer.html.ini
@@ -0,0 +1,38 @@
+[createImageBitmap-transfer.html]
+ expected: ERROR
+ [Transfer ImageBitmap created from a vector HTMLImageElement]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from an ImageData]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from a vector SVGImageElement]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from a Blob]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from an HTMLCanvasElement]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from an OffscreenCanvas]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from a bitmap HTMLImageElement]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from an HTMLVideoElement from a data URL]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from a bitmap SVGImageElement]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from an ImageBitmap]
+ expected: FAIL
+
+ [Transfer ImageBitmap created from an HTMLVideoElement]
+ expected: FAIL
+
+ [Transferring a non-origin-clean ImageBitmap throws.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/line-styles/2d.line.cap.closed.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/line-styles/2d.line.cap.closed.html.ini
new file mode 100644
index 00000000000..cbad443c3c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/line-styles/2d.line.cap.closed.html.ini
@@ -0,0 +1,4 @@
+[2d.line.cap.closed.html]
+ [Line caps are not drawn at the corners of an unclosed rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/line-styles/lineto_a.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/line-styles/lineto_a.html.ini
new file mode 100644
index 00000000000..7e363f59bb6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/line-styles/lineto_a.html.ini
@@ -0,0 +1,2 @@
+[lineto_a.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/line-styles/setLineDash.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/line-styles/setLineDash.html.ini
new file mode 100644
index 00000000000..ec4caf8e050
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/line-styles/setLineDash.html.ini
@@ -0,0 +1,7 @@
+[setLineDash.html]
+ [Invalid arguments to setLineDash()]
+ expected: FAIL
+
+ [setLineDash]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.scale.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.scale.2.html.ini
new file mode 100644
index 00000000000..72ac9cfb4dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.scale.2.html.ini
@@ -0,0 +1,4 @@
+[2d.path.arc.scale.2.html]
+ [Highly scaled arcs are the right shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini
new file mode 100644
index 00000000000..7c1f22ff41c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini
@@ -0,0 +1,4 @@
+[2d.path.arc.selfintersect.1.html]
+ [arc() with lineWidth > 2*radius is drawn sensibly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini
new file mode 100644
index 00000000000..a25bacaabed
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini
@@ -0,0 +1,4 @@
+[2d.path.arc.selfintersect.2.html]
+ [arc() with lineWidth > 2*radius is drawn sensibly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.3.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.3.html.ini
new file mode 100644
index 00000000000..c285647918d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.3.html.ini
@@ -0,0 +1,4 @@
+[2d.path.arc.shape.3.html]
+ [arc() from 0 to -pi/2 does not draw anything in the wrong quadrant]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.4.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.4.html.ini
new file mode 100644
index 00000000000..c22e98e44d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.arc.shape.4.html.ini
@@ -0,0 +1,4 @@
+[2d.path.arc.shape.4.html]
+ [arc() from 0 to -pi/2 draws stuff in the right quadrant]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.scale2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.scale2.html.ini
new file mode 100644
index 00000000000..bacb6e7fcf5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.scale2.html.ini
@@ -0,0 +1,4 @@
+[2d.path.stroke.scale2.html]
+ [Stroke line widths are scaled by the current transformation matrix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.skew.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.skew.html.ini
new file mode 100644
index 00000000000..d46b21ef8fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/path-objects/2d.path.stroke.skew.html.ini
@@ -0,0 +1,4 @@
+[2d.path.stroke.skew.html]
+ [Strokes lines are skewed by the current transformation matrix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
new file mode 100644
index 00000000000..8e7dad6133e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
@@ -0,0 +1,4 @@
+[2d.imageData.create2.nonfinite.html]
+ [createImageData() throws TypeError if arguments are not finite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
new file mode 100644
index 00000000000..8ecd9e5dc7f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
@@ -0,0 +1,4 @@
+[2d.imageData.get.nonfinite.html]
+ [getImageData() throws TypeError if arguments are not finite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini
new file mode 100644
index 00000000000..df4e4f1b0aa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini
@@ -0,0 +1,4 @@
+[2d.imageData.get.source.outside.html]
+ [getImageData() returns transparent black outside the canvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
new file mode 100644
index 00000000000..025b8cfdc5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
@@ -0,0 +1,4 @@
+[2d.imageData.put.nonfinite.html]
+ [putImageData() throws TypeError if arguments are not finite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini
new file mode 100644
index 00000000000..2cec1487d8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini
@@ -0,0 +1,4 @@
+[2d.imageData.put.unchanged.html]
+ [putImageData(getImageData(...), ...) has no effect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.basic.html.ini
new file mode 100644
index 00000000000..1dfa4dc645b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.scrollPathIntoView.basic.html]
+ [scrollPathIntoView() works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.path.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.path.html.ini
new file mode 100644
index 00000000000..9424d8df4f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.path.html.ini
@@ -0,0 +1,4 @@
+[2d.scrollPathIntoView.path.html]
+ [scrollPathIntoView() with path argument works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalLR.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalLR.html.ini
new file mode 100644
index 00000000000..f15be9112ad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalLR.html.ini
@@ -0,0 +1,4 @@
+[2d.scrollPathIntoView.verticalLR.html]
+ [scrollPathIntoView() works in vertical-lr writing mode]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalRL.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalRL.html.ini
new file mode 100644
index 00000000000..37aa1c76d82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/scroll/2d.scrollPathIntoView.verticalRL.html.ini
@@ -0,0 +1,4 @@
+[2d.scrollPathIntoView.verticalRL.html]
+ [scrollPathIntoView() works in vertical-rl writing mode]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.2.html.ini
new file mode 100644
index 00000000000..dbd2642e642
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.alpha.2.html]
+ [Shadow colour alpha components are used]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.3.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.3.html.ini
new file mode 100644
index 00000000000..6541eaf9d0a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.3.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.alpha.3.html]
+ [Shadows are affected by globalAlpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.4.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.4.html.ini
new file mode 100644
index 00000000000..18495ce21c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.4.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.alpha.4.html]
+ [Shadows with alpha components are correctly affected by globalAlpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.5.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.5.html.ini
new file mode 100644
index 00000000000..2902da69695
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.alpha.5.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.alpha.5.html]
+ [Shadows of shapes with alpha components are drawn correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini
new file mode 100644
index 00000000000..e025214a903
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.canvas.alpha.html]
+ [Shadows are drawn correctly for partially-transparent canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.basic.html.ini
new file mode 100644
index 00000000000..5968020003f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.canvas.basic.html]
+ [Shadows are drawn for canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini
new file mode 100644
index 00000000000..36548a28349
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.canvas.transparent.2.html]
+ [Shadows are not drawn for transparent parts of canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.1.html.ini
new file mode 100644
index 00000000000..d794ecb8f7f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.1.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.clip.1.html]
+ [Shadows of clipped shapes are still drawn within the clipping region]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.2.html.ini
new file mode 100644
index 00000000000..ff8bfecd95b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.clip.2.html]
+ [Shadows are not drawn outside the clipping region]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.3.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.3.html.ini
new file mode 100644
index 00000000000..ddb4e15719b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.clip.3.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.clip.3.html]
+ [Shadows of clipped shapes are still drawn within the clipping region]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.1.html.ini
new file mode 100644
index 00000000000..183cec8f9e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.1.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.composite.1.html]
+ [Shadows are drawn using globalCompositeOperation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.2.html.ini
new file mode 100644
index 00000000000..f262fe31165
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.composite.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.composite.2.html]
+ [Shadows are drawn using globalCompositeOperation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.blur.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.blur.html.ini
new file mode 100644
index 00000000000..79c0dbbbc9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.blur.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.enable.blur.html]
+ [Shadows are drawn if shadowBlur is set]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.x.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.x.html.ini
new file mode 100644
index 00000000000..595a76ef5ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.x.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.enable.x.html]
+ [Shadows are drawn if shadowOffsetX is set]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.y.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.y.html.ini
new file mode 100644
index 00000000000..835ea036b70
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.enable.y.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.enable.y.html]
+ [Shadows are drawn if shadowOffsetY is set]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini
new file mode 100644
index 00000000000..aca6bc8ecc0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.gradient.alpha.html]
+ [Shadows are drawn correctly for partially-transparent gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.basic.html.ini
new file mode 100644
index 00000000000..718711e1c92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.gradient.basic.html]
+ [Shadows are drawn for gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini
new file mode 100644
index 00000000000..b0f704f9217
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.gradient.transparent.2.html]
+ [Shadows are not drawn for transparent parts of gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.alpha.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.alpha.html.ini
new file mode 100644
index 00000000000..957d04b99f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.alpha.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.image.alpha.html]
+ [Shadows are drawn correctly for partially-transparent images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.basic.html.ini
new file mode 100644
index 00000000000..81fa284a386
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.image.basic.html]
+ [Shadows are drawn for images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.scale.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.scale.html.ini
new file mode 100644
index 00000000000..8cba6d0463e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.scale.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.image.scale.html]
+ [Shadows are drawn correctly for scaled images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini
new file mode 100644
index 00000000000..fdc1a6c0a13
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.image.transparent.2.html]
+ [Shadows are not drawn for transparent parts of images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini
new file mode 100644
index 00000000000..7cab12e9647
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.offset.negativeX.html]
+ [Shadows can be offset with negative x]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini
new file mode 100644
index 00000000000..f896a487854
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.offset.negativeY.html]
+ [Shadows can be offset with negative y]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini
new file mode 100644
index 00000000000..49b5d8a0927
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.offset.positiveX.html]
+ [Shadows can be offset with positive x]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini
new file mode 100644
index 00000000000..1b25a3038d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.offset.positiveY.html]
+ [Shadows can be offset with positive y]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.outside.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.outside.html.ini
new file mode 100644
index 00000000000..b65179a2088
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.outside.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.outside.html]
+ [Shadows of shapes outside the visible area can be offset onto the visible area]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini
new file mode 100644
index 00000000000..fea2a9797f0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.pattern.alpha.html]
+ [Shadows are drawn correctly for partially-transparent fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.basic.html.ini
new file mode 100644
index 00000000000..7c68f2396b2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.pattern.basic.html]
+ [Shadows are drawn for fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini
new file mode 100644
index 00000000000..ee122e4fe1d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.pattern.transparent.2.html]
+ [Shadows are not drawn for transparent parts of fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.basic.html.ini
new file mode 100644
index 00000000000..e9b5ab85225
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.stroke.basic.html]
+ [Shadows are drawn for strokes]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini
new file mode 100644
index 00000000000..b3012705acf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.stroke.cap.2.html]
+ [Shadows are drawn for stroke caps]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini
new file mode 100644
index 00000000000..b9314fd09ab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.stroke.join.2.html]
+ [Shadows are drawn for stroke joins]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.1.html.ini
new file mode 100644
index 00000000000..13df839414b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.1.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.transform.1.html]
+ [Shadows take account of transformations]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.2.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.2.html.ini
new file mode 100644
index 00000000000..dba68f79426
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/2d.shadow.transform.2.html.ini
@@ -0,0 +1,4 @@
+[2d.shadow.transform.2.html]
+ [Shadow offsets are not affected by transformations]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_001.htm.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_001.htm.ini
new file mode 100644
index 00000000000..749b4504be4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_001.htm.ini
@@ -0,0 +1,4 @@
+[canvas_shadows_001.htm]
+ [linear gradient fillRect draws shadow (black rectange)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_002.htm.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_002.htm.ini
new file mode 100644
index 00000000000..b8702bdbec5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/canvas_shadows_002.htm.ini
@@ -0,0 +1,2 @@
+[canvas_shadows_002.htm]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/shadows/shadowBlur_gaussian_tolerance.1.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/shadows/shadowBlur_gaussian_tolerance.1.html.ini
new file mode 100644
index 00000000000..7fbc5cc5e81
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/shadows/shadowBlur_gaussian_tolerance.1.html.ini
@@ -0,0 +1,10 @@
+[shadowBlur_gaussian_tolerance.1.html]
+ [shadowBlur Gaussian pixel values for small blur]
+ expected: FAIL
+
+ [shadowBlur Gaussian pixel values for large blur]
+ expected: FAIL
+
+ [shadowBlur Gaussian pixel values for no blur]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.default.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.default.html.ini
new file mode 100644
index 00000000000..2b8793d28be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.default.html.ini
@@ -0,0 +1,4 @@
+[2d.text.align.default.html]
+ [Canvas test: 2d.text.align.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.invalid.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.invalid.html.ini
new file mode 100644
index 00000000000..100c6551344
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.align.invalid.html.ini
@@ -0,0 +1,4 @@
+[2d.text.align.invalid.html]
+ [Canvas test: 2d.text.align.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.default.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.default.html.ini
new file mode 100644
index 00000000000..f09249c129c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.default.html.ini
@@ -0,0 +1,4 @@
+[2d.text.baseline.default.html]
+ [Canvas test: 2d.text.baseline.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.invalid.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.invalid.html.ini
new file mode 100644
index 00000000000..23f93163a60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.baseline.invalid.html.ini
@@ -0,0 +1,4 @@
+[2d.text.baseline.invalid.html]
+ [Canvas test: 2d.text.baseline.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.alphabetic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.alphabetic.html.ini
new file mode 100644
index 00000000000..93b0cf0b169
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.alphabetic.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.baseline.alphabetic.html]
+ [Canvas test: 2d.text.draw.baseline.alphabetic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini
new file mode 100644
index 00000000000..a7c97c18e6e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.baseline.bottom.html]
+ [textBaseline bottom is the bottom of the em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini
new file mode 100644
index 00000000000..4b933de9c99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.baseline.hanging.html]
+ [Canvas test: 2d.text.draw.baseline.hanging]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini
new file mode 100644
index 00000000000..b099ac007ca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.baseline.ideographic.html]
+ [Canvas test: 2d.text.draw.baseline.ideographic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini
new file mode 100644
index 00000000000..4969502107f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.baseline.middle.html]
+ [textBaseline middle is the middle of the em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini
new file mode 100644
index 00000000000..fde10ed8b71
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.baseline.top.html]
+ [textBaseline top is the top of the em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini
new file mode 100644
index 00000000000..cb95d477d9f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.space.collapse.end.html]
+ [Space characters at the end of a line are collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini
new file mode 100644
index 00000000000..1eb038b12c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.space.collapse.other.html]
+ [Space characters are converted to U+0020, and collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini
new file mode 100644
index 00000000000..6aebf256e44
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.space.collapse.space.html]
+ [Space characters are converted to U+0020, and collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini
new file mode 100644
index 00000000000..2e400f45551
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini
@@ -0,0 +1,4 @@
+[2d.text.draw.space.collapse.start.html]
+ [Space characters at the start of a line are collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.default.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.default.html.ini
new file mode 100644
index 00000000000..71a00e76d9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.default.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.default.html]
+ [Canvas test: 2d.text.font.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.basic.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.basic.html.ini
new file mode 100644
index 00000000000..cbfa7e019c8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.basic.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.parse.basic.html]
+ [Canvas test: 2d.text.font.parse.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.complex.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.complex.html.ini
new file mode 100644
index 00000000000..6c349803d6b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.complex.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.parse.complex.html]
+ [Canvas test: 2d.text.font.parse.complex]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini
new file mode 100644
index 00000000000..3c74f7f5570
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.parse.invalid.html]
+ [Canvas test: 2d.text.font.parse.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini
new file mode 100644
index 00000000000..e38e31fc416
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.parse.size.percentage.default.html]
+ [Canvas test: 2d.text.font.parse.size.percentage.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini
new file mode 100644
index 00000000000..f88a6906139
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.parse.size.percentage.html]
+ [Canvas test: 2d.text.font.parse.size.percentage]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.system.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.system.html.ini
new file mode 100644
index 00000000000..4011e6441bf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.parse.system.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.parse.system.html]
+ [System fonts must be computed to explicit values]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.relative_size.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.relative_size.html.ini
new file mode 100644
index 00000000000..5353ddbe2dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.font.relative_size.html.ini
@@ -0,0 +1,4 @@
+[2d.text.font.relative_size.html]
+ [Canvas test: 2d.text.font.relative_size]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.measure.width.space.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.measure.width.space.html.ini
new file mode 100644
index 00000000000..471785ac065
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/text-styles/2d.text.measure.width.space.html.ini
@@ -0,0 +1,4 @@
+[2d.text.measure.width.space.html]
+ [Space characters are converted to U+0020 and collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini
new file mode 100644
index 00000000000..afb4feba894
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini
@@ -0,0 +1,4 @@
+[2d.state.saverestore.font.html]
+ [save()/restore() works for font]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini
new file mode 100644
index 00000000000..0b2a17d1d9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini
@@ -0,0 +1,4 @@
+[2d.state.saverestore.textAlign.html]
+ [save()/restore() works for textAlign]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini
new file mode 100644
index 00000000000..4c754240145
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini
@@ -0,0 +1,4 @@
+[2d.state.saverestore.textBaseline.html]
+ [save()/restore() works for textBaseline]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.scale.large.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.scale.large.html.ini
new file mode 100644
index 00000000000..a2f6ef4c2cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.scale.large.html.ini
@@ -0,0 +1,4 @@
+[2d.transformation.scale.large.html]
+ [scale() with large scale factors works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.setTransform.multiple.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.setTransform.multiple.html.ini
new file mode 100644
index 00000000000..5bce7011c4d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/transformations/2d.transformation.setTransform.multiple.html.ini
@@ -0,0 +1,4 @@
+[2d.transformation.setTransform.multiple.html]
+ [Canvas test: 2d.transformation.setTransform.multiple]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/transformations/canvas_transformations_reset_001.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/transformations/canvas_transformations_reset_001.html.ini
new file mode 100644
index 00000000000..f0969ab9500
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/transformations/canvas_transformations_reset_001.html.ini
@@ -0,0 +1,2 @@
+[canvas_transformations_reset_001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/transformations/transform_a.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/transformations/transform_a.html.ini
new file mode 100644
index 00000000000..3196a3239fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/transformations/transform_a.html.ini
@@ -0,0 +1,2 @@
+[transform_a.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html.ini
new file mode 100644
index 00000000000..531758362ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-convertToBlob-roundtrip.html.ini
@@ -0,0 +1,8 @@
+[canvas-colorManaged-convertToBlob-roundtrip.html]
+ expected: TIMEOUT
+ [Overall test]
+ expected: FAIL
+
+ [Test canvas convertToBlob(): mimeType: image/png, blobPixelFormat: uint8, source color space: srgb, pixel format: uint8, alpha: 0.5]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html.ini
new file mode 100644
index 00000000000..ef287401c6c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorManaged-toBlob-toDataURL.html.ini
@@ -0,0 +1,8 @@
+[canvas-colorManaged-toBlob-toDataURL.html]
+ expected: TIMEOUT
+ [Overall test]
+ expected: FAIL
+
+ [Test if toBlob() respects legacy behavior in color managed canvas: ImageFormat: image/jpeg, source color space: srgb, pixel format: uint8, alpha: 0.5]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorspace-arguments.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorspace-arguments.html.ini
new file mode 100644
index 00000000000..f9819036660
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-colorspace-arguments.html.ini
@@ -0,0 +1,19 @@
+[canvas-colorspace-arguments.html]
+ [Test supported color settings srgb/float16]
+ expected: FAIL
+
+ [Test CanvasPixelFormat value uint8]
+ expected: FAIL
+
+ [Test CanvasColorSpace value srgb]
+ expected: FAIL
+
+ [Test default context creation parameters: srgb/uint8]
+ expected: FAIL
+
+ [Test CanvasPixelFormat value float16]
+ expected: FAIL
+
+ [Test supported color settings srgb/uint8]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html.ini
new file mode 100644
index 00000000000..065dde20d91
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createImageBitmap-e_srgb.html.ini
@@ -0,0 +1,35 @@
+[canvas-createImageBitmap-e_srgb.html]
+ expected: ERROR
+ [createImageBitmap in e-sRGB from a transparent e-sRGB HTMLCanvasElement with resize.]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from color managed Blob with resize. blobPixelFormat: uint8, transparency: false]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from an opaque sRGB HTMLCanvasElement with resize.]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from an opaque sRGB HTMLImageElement (BMP, GIF, ICO, JPG, PNG, WEBP) with resize.]
+ expected: FAIL
+
+ [createImageBitmap in e-sRGB from a transparent sRGB HTMLCanvasElement with resize.]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from a sRGB SVG image with resize.]
+ expected: TIMEOUT
+
+ [createImageBitmap in e-sRGB from a transparent sRGB HTMLImageElement (BMP, ICO, PNG, WEBP) with resize.]
+ expected: FAIL
+
+ [createImageBitmap in e-sRGB from a transparent sRGB Blob with resize.]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from a sRGB HTMLVideoElement with resize.]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from an opaque e-sRGB HTMLCanvasElement with resize.]
+ expected: NOTRUN
+
+ [createImageBitmap in e-sRGB from an opaque sRGB Blob with resize.]
+ expected: NOTRUN
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html.ini
new file mode 100644
index 00000000000..185067c00c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-createPutGetImageData-colorManaged.html.ini
@@ -0,0 +1,31 @@
+[canvas-createPutGetImageData-colorManaged.html]
+ [Test color managed putImageData: {srgb, uint16} -> {srgb, uint8}]
+ expected: FAIL
+
+ [Test color managed cretateImageData: {srgb, float16} -> {srgb, float32}]
+ expected: FAIL
+
+ [Test color managed putImageData: {srgb, float32} -> {srgb, uint8}]
+ expected: FAIL
+
+ [Test color managed getImageData: {srgb, float16} -> {srgb, float32}]
+ expected: FAIL
+
+ [Test color managed putImageData: {srgb, uint16} -> {srgb, float16}]
+ expected: FAIL
+
+ [Test color managed putImageData: {srgb, uint8} -> {srgb, uint8}]
+ expected: FAIL
+
+ [Test color managed putImageData: {srgb, float32} -> {srgb, float16}]
+ expected: FAIL
+
+ [Test color managed cretateImageData: {srgb, uint8} -> {srgb, uint8}]
+ expected: FAIL
+
+ [Test color managed putImageData: {srgb, uint8} -> {srgb, float16}]
+ expected: FAIL
+
+ [Test color managed getImageData: {srgb, uint8} -> {srgb, uint8}]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html.ini
new file mode 100644
index 00000000000..48dca82e3c0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-draw-high-bit-depth-images.html.ini
@@ -0,0 +1,121 @@
+[canvas-draw-high-bit-depth-images.html]
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_Rec2020_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_interlaced_ProPhoto_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_sRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_DisplayP3_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_sRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_interlaced_DisplayP3_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_ProPhoto_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_interlaced_ProPhoto_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_interlaced_AdobeRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_DisplayP3_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_interlaced_DisplayP3_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_ProPhoto_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_Rec2020_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_AdobeRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_interlaced_AdobeRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_interlaced_ProPhoto_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_interlaced_Rec2020_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_ProPhoto_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_AdobeRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_interlaced_AdobeRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_interlaced_sRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_interlaced_DisplayP3_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_sRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_interlaced_AdobeRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_AdobeRGB_transparent.png vs 2x2_16bit_AdobeRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_interlaced_Rec2020_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_interlaced_Rec2020_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_interlaced_DisplayP3_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_interlaced_Rec2020_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_transparent.png vs 2x2_16bit_ProPhoto_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_opaque.png vs 2x2_16bit_DisplayP3_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_transparent.png vs 2x2_16bit_Rec2020_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_DisplayP3_transparent.png vs 2x2_16bit_DisplayP3_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_sRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_interlaced_sRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_AdobeRGB_opaque.png vs 2x2_16bit_AdobeRGB_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_Rec2020_opaque.png vs 2x2_16bit_Rec2020_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_ProPhoto_opaque.png vs 2x2_16bit_interlaced_ProPhoto_opaque.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, uint8. Testing 2x2_8bit_sRGB_transparent.png vs 2x2_16bit_interlaced_sRGB_transparent.png]
+ expected: FAIL
+
+ [Canvas color params: srgb, float16. Testing 2x2_8bit_sRGB_opaque.png vs 2x2_16bit_interlaced_sRGB_opaque.png]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-e_srgb.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-e_srgb.html.ini
new file mode 100644
index 00000000000..334ce5c7205
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-e_srgb.html.ini
@@ -0,0 +1,4 @@
+[canvas-drawImage-e_srgb.html]
+ [Draw SRGB image on an e-sRGB canvas and read back the e-sRGB pixels.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html.ini
new file mode 100644
index 00000000000..bfc51d2429a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-drawImage-offscreenCanvas.html.ini
@@ -0,0 +1,13 @@
+[canvas-drawImage-offscreenCanvas.html]
+ [Test drawing color managed OffscreenCanvas: Canvas color params: srgb, uint8; OffscreenCanvas color params: srgb, float16]
+ expected: FAIL
+
+ [Test drawing color managed OffscreenCanvas: Canvas color params: srgb, float16; OffscreenCanvas color params: srgb, float16]
+ expected: FAIL
+
+ [Test drawing color managed OffscreenCanvas: Canvas color params: srgb, float16; OffscreenCanvas color params: srgb, uint8]
+ expected: FAIL
+
+ [Test drawing color managed OffscreenCanvas: Canvas color params: srgb, uint8; OffscreenCanvas color params: srgb, uint8]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-getImageData-e_srgb.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-getImageData-e_srgb.html.ini
new file mode 100644
index 00000000000..fc19d1bf509
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/canvas-getImageData-e_srgb.html.ini
@@ -0,0 +1,13 @@
+[canvas-getImageData-e_srgb.html]
+ [tests putting and getting in-range e-sRGB image data on e-sRGB canvas.]
+ expected: FAIL
+
+ [tests putting SRGB image data on e-sRGB canvas and getting e-sRGB image data.]
+ expected: FAIL
+
+ [tests putting and getting out-of-range e-sRGB image data on e-sRGB canvas.]
+ expected: FAIL
+
+ [tests drawing SRGB color on e-sRGB canvas and getting e-sRGB image data.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorManagedBehavior.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorManagedBehavior.html.ini
new file mode 100644
index 00000000000..73457f22f71
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorManagedBehavior.html.ini
@@ -0,0 +1,2 @@
+[imageData-colorManagedBehavior.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorSpace.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorSpace.html.ini
new file mode 100644
index 00000000000..777cba0acb0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/imageData-colorSpace.html.ini
@@ -0,0 +1,19 @@
+[imageData-colorSpace.html]
+ [Test default color space: {undefined, float32} -> {srgb, float32}]
+ expected: FAIL
+
+ [Test color settings: {srgb, uint8}]
+ expected: FAIL
+
+ [Test color settings: {srgb, float32}]
+ expected: FAIL
+
+ [Test color settings: {srgb, uint16}]
+ expected: FAIL
+
+ [Test default color settings: {undefined, undefined} -> {srgb, uint8}]
+ expected: FAIL
+
+ [Test default storage format: {srgb, undefined} -> {srgb, uint8}]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/transferFromImageBitmap.html.ini b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/transferFromImageBitmap.html.ini
new file mode 100644
index 00000000000..16309ccad31
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/2dcontext/wide-gamut-canvas/transferFromImageBitmap.html.ini
@@ -0,0 +1,25 @@
+[transferFromImageBitmap.html]
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: float16, alpha: 0.5, intermediate color space: default]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: uint8, alpha: 0.5, intermediate color space: none]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: uint8, alpha: 0.5, intermediate color space: default]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: float16, alpha: 0.5, intermediate color space: none]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: uint8, alpha: 1, intermediate color space: none]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: float16, alpha: 1, intermediate color space: default]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: float16, alpha: 1, intermediate color space: none]
+ expected: FAIL
+
+ [Testing ImageBitmapRenderingContext: Source color space: srgb, pixel format: uint8, alpha: 1, intermediate color space: default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-001.xht.ini
new file mode 100644
index 00000000000..52f7236a991
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-001.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004a.xht.ini
new file mode 100644
index 00000000000..4e1323a5dca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004a.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-004a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004b.xht.ini
new file mode 100644
index 00000000000..75706dfda31
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004b.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-004b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004c.xht.ini
new file mode 100644
index 00000000000..6aee3f4596f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004c.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-004c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004d.xht.ini
new file mode 100644
index 00000000000..bafdb36023e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004d.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-004d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004e.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004e.xht.ini
new file mode 100644
index 00000000000..31803e30481
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004e.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-004e.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004f.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004f.xht.ini
new file mode 100644
index 00000000000..e2ab533dcb7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-004f.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-004f.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005a.xht.ini
new file mode 100644
index 00000000000..aa6878f0eda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005a.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-005a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005b.xht.ini
new file mode 100644
index 00000000000..421fe067f9a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005b.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-005b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005c.xht.ini
new file mode 100644
index 00000000000..ba361f495c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005c.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-005c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005d.xht.ini
new file mode 100644
index 00000000000..2ed56836785
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-005d.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-005d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-009a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-009a.xht.ini
new file mode 100644
index 00000000000..e74fa55a9bb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/abspos-containing-block-initial-009a.xht.ini
@@ -0,0 +1,2 @@
+[abspos-containing-block-initial-009a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini
new file mode 100644
index 00000000000..f1b2c08cf15
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-in-inline-that-had-block.html.ini
@@ -0,0 +1,4 @@
+[adjacent-to-relpos-inline-in-inline-that-had-block.html]
+ [Make sure that we're sized by the right ancestor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini
new file mode 100644
index 00000000000..27df1212878
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/adjacent-to-relpos-inline-that-had-block.html.ini
@@ -0,0 +1,4 @@
+[adjacent-to-relpos-inline-that-had-block.html]
+ [Make sure that we're sized by the right ancestor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/between-float-and-text.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/between-float-and-text.html.ini
new file mode 100644
index 00000000000..07973158f98
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/between-float-and-text.html.ini
@@ -0,0 +1,2 @@
+[between-float-and-text.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini
new file mode 100644
index 00000000000..df17fc5f182
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/hypothetical-inline-alone-on-second-line.html.ini
@@ -0,0 +1,2 @@
+[hypothetical-inline-alone-on-second-line.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-is-containing-block-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-is-containing-block-001.html.ini
new file mode 100644
index 00000000000..66d3d601b7f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-is-containing-block-001.html.ini
@@ -0,0 +1,2 @@
+[table-caption-is-containing-block-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-passes-abspos-up-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-passes-abspos-up-001.html.ini
new file mode 100644
index 00000000000..af9fd26b7b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/abspos/table-caption-passes-abspos-up-001.html.ini
@@ -0,0 +1,2 @@
+[table-caption-passes-abspos-up-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-005.xht.ini
new file mode 100644
index 00000000000..86289cdac22
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-005.xht.ini
@@ -0,0 +1,2 @@
+[bidi-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-006.xht.ini
new file mode 100644
index 00000000000..c48ebe38be8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-006.xht.ini
@@ -0,0 +1,2 @@
+[bidi-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-007.xht.ini
new file mode 100644
index 00000000000..3ad433b3b27
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-007.xht.ini
@@ -0,0 +1,2 @@
+[bidi-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-008.xht.ini
new file mode 100644
index 00000000000..78e74fba222
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-008.xht.ini
@@ -0,0 +1,2 @@
+[bidi-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-009.xht.ini
new file mode 100644
index 00000000000..5512b703eec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-009.xht.ini
@@ -0,0 +1,2 @@
+[bidi-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-010.xht.ini
new file mode 100644
index 00000000000..6a99a28b88f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-010.xht.ini
@@ -0,0 +1,2 @@
+[bidi-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-001.xht.ini
new file mode 100644
index 00000000000..074915b0d8e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-001.xht.ini
@@ -0,0 +1,2 @@
+[bidi-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-002.xht.ini
new file mode 100644
index 00000000000..ab02b38eb64
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-002.xht.ini
@@ -0,0 +1,2 @@
+[bidi-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-003.xht.ini
new file mode 100644
index 00000000000..12cc11f23c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-003.xht.ini
@@ -0,0 +1,2 @@
+[bidi-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-004.xht.ini
new file mode 100644
index 00000000000..a05f66a118b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-004.xht.ini
@@ -0,0 +1,2 @@
+[bidi-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005a.xht.ini
new file mode 100644
index 00000000000..be42afd6fe5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005a.xht.ini
@@ -0,0 +1,2 @@
+[bidi-005a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005b.xht.ini
new file mode 100644
index 00000000000..1796c03d5f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-005b.xht.ini
@@ -0,0 +1,2 @@
+[bidi-005b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006a.xht.ini
new file mode 100644
index 00000000000..001e1d5281d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006a.xht.ini
@@ -0,0 +1,2 @@
+[bidi-006a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006b.xht.ini
new file mode 100644
index 00000000000..196a9306f41
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-006b.xht.ini
@@ -0,0 +1,2 @@
+[bidi-006b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007a.xht.ini
new file mode 100644
index 00000000000..9de6baf47b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007a.xht.ini
@@ -0,0 +1,2 @@
+[bidi-007a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007b.xht.ini
new file mode 100644
index 00000000000..0275ad54a61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-007b.xht.ini
@@ -0,0 +1,2 @@
+[bidi-007b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008a.xht.ini
new file mode 100644
index 00000000000..1509a762ce3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008a.xht.ini
@@ -0,0 +1,2 @@
+[bidi-008a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008b.xht.ini
new file mode 100644
index 00000000000..fb4ac97311a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-008b.xht.ini
@@ -0,0 +1,2 @@
+[bidi-008b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009a.xht.ini
new file mode 100644
index 00000000000..253e63bb0b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009a.xht.ini
@@ -0,0 +1,2 @@
+[bidi-009a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009b.xht.ini
new file mode 100644
index 00000000000..344e4a508e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-009b.xht.ini
@@ -0,0 +1,2 @@
+[bidi-009b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010a.xht.ini
new file mode 100644
index 00000000000..3fea1ed3cd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010a.xht.ini
@@ -0,0 +1,2 @@
+[bidi-010a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010b.xht.ini
new file mode 100644
index 00000000000..7c08a8c70f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-010b.xht.ini
@@ -0,0 +1,2 @@
+[bidi-010b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-011.xht.ini
new file mode 100644
index 00000000000..ed6cff49cbc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-011.xht.ini
@@ -0,0 +1,2 @@
+[bidi-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-003.xht.ini
new file mode 100644
index 00000000000..7cf338897a2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-003.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-006.xht.ini
new file mode 100644
index 00000000000..d3ebe05cc4e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-006.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-009.xht.ini
new file mode 100644
index 00000000000..874976cef6a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-009.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-013.xht.ini
new file mode 100644
index 00000000000..1175043c375
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-013.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-019.xht.ini
new file mode 100644
index 00000000000..ac3116f58ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-019.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-020.xht.ini
new file mode 100644
index 00000000000..2573a65097b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-020.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-021.xht.ini
new file mode 100644
index 00000000000..0b124d1e7ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-021.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-022.xht.ini
new file mode 100644
index 00000000000..f20c4e50980
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-022.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-023.xht.ini
new file mode 100644
index 00000000000..82d02bac003
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-023.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-024.xht.ini
new file mode 100644
index 00000000000..51d4545fc53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-024.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-025.xht.ini
new file mode 100644
index 00000000000..e137d6ae6e9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-025.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-026.xht.ini
new file mode 100644
index 00000000000..2bd7ffa780e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-026.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-027.xht.ini
new file mode 100644
index 00000000000..8439f2da415
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-027.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-031.xht.ini
new file mode 100644
index 00000000000..47543d6772b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-031.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-037.xht.ini
new file mode 100644
index 00000000000..ded83d69097
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-037.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-038.xht.ini
new file mode 100644
index 00000000000..d0b0f206c79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-038.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-039.xht.ini
new file mode 100644
index 00000000000..c878cdaad23
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-039.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-040.xht.ini
new file mode 100644
index 00000000000..a2177940bb6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-040.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-041.xht.ini
new file mode 100644
index 00000000000..fe6e8b2a59a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-041.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-042.xht.ini
new file mode 100644
index 00000000000..04d9ea48abe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-042.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-043.xht.ini
new file mode 100644
index 00000000000..e8c18aa6654
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-043.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-044.xht.ini
new file mode 100644
index 00000000000..abdcf002527
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-044.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-045.xht.ini
new file mode 100644
index 00000000000..baa004b057d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-box-model-045.xht.ini
@@ -0,0 +1,2 @@
+[bidi-box-model-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-001.xht.ini
new file mode 100644
index 00000000000..8fd11e91d82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-001.xht.ini
@@ -0,0 +1,2 @@
+[bidi-breaking-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-002.xht.ini
new file mode 100644
index 00000000000..b6445461a9c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-002.xht.ini
@@ -0,0 +1,2 @@
+[bidi-breaking-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-003.xht.ini
new file mode 100644
index 00000000000..f9a77dbc7b4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-breaking-003.xht.ini
@@ -0,0 +1,2 @@
+[bidi-breaking-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-001.xht.ini
new file mode 100644
index 00000000000..3759192756d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-001.xht.ini
@@ -0,0 +1,2 @@
+[bidi-glyph-mirroring-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-002.xht.ini
new file mode 100644
index 00000000000..2195ed008be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-glyph-mirroring-002.xht.ini
@@ -0,0 +1,2 @@
+[bidi-glyph-mirroring-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-001.xht.ini
new file mode 100644
index 00000000000..42cb3daf27b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-001.xht.ini
@@ -0,0 +1,2 @@
+[bidi-inline-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-002.xht.ini
new file mode 100644
index 00000000000..157d767117e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/bidi-inline-002.xht.ini
@@ -0,0 +1,2 @@
+[bidi-inline-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-002.xht.ini
new file mode 100644
index 00000000000..f1b49f8be55
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-002.xht.ini
@@ -0,0 +1,2 @@
+[direction-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-003.xht.ini
new file mode 100644
index 00000000000..86c780b2207
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-003.xht.ini
@@ -0,0 +1,2 @@
+[direction-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-001.xht.ini
new file mode 100644
index 00000000000..f7f7d23d54e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-002.xht.ini
new file mode 100644
index 00000000000..75eb44de5d4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-003.xht.ini
new file mode 100644
index 00000000000..b605bc11df2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-004.xht.ini
new file mode 100644
index 00000000000..ae6097070f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-005.xht.ini
new file mode 100644
index 00000000000..97426571fb6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-006.xht.ini
new file mode 100644
index 00000000000..773f232ad7b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-007.xht.ini
new file mode 100644
index 00000000000..a18db043472
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-008.xht.ini
new file mode 100644
index 00000000000..ca8ab10a7b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-009.xht.ini
new file mode 100644
index 00000000000..bfe291e46ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-012.xht.ini
new file mode 100644
index 00000000000..7c19b678199
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-013.xht.ini
new file mode 100644
index 00000000000..d9d3a2b96e8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-014.xht.ini
new file mode 100644
index 00000000000..46a2d925efe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-015.xht.ini
new file mode 100644
index 00000000000..2066c6220f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/direction-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[direction-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-001.xht.ini
new file mode 100644
index 00000000000..c8893025e35
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-001.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-002.xht.ini
new file mode 100644
index 00000000000..5d2bcc0b862
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-002.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-003.xht.ini
new file mode 100644
index 00000000000..d690b62cb0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-003.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-004.xht.ini
new file mode 100644
index 00000000000..6860bd25c11
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-004.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-007.xht.ini
new file mode 100644
index 00000000000..ab07c710a23
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-008.xht.ini
new file mode 100644
index 00000000000..c06e815e2a3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-009.xht.ini
new file mode 100644
index 00000000000..5a1ebd56496
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-012.xht.ini
new file mode 100644
index 00000000000..437bc327420
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-015.xht.ini
new file mode 100644
index 00000000000..f1e4812f2f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/bidi-text/unicode-bidi-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[unicode-bidi-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-005.xht.ini
new file mode 100644
index 00000000000..1922a2da294
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-005.xht.ini
@@ -0,0 +1,2 @@
+[border-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-006.xht.ini
new file mode 100644
index 00000000000..b1db67605cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-006.xht.ini
@@ -0,0 +1,2 @@
+[border-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-008.xht.ini
new file mode 100644
index 00000000000..a006a996aca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-008.xht.ini
@@ -0,0 +1,2 @@
+[border-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-001.xht.ini
new file mode 100644
index 00000000000..199141a7868
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-002.xht.ini
new file mode 100644
index 00000000000..a4c8c5312f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-003.xht.ini
new file mode 100644
index 00000000000..f141298da6b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-004.xht.ini
new file mode 100644
index 00000000000..736f9d1a8c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-005.xht.ini
new file mode 100644
index 00000000000..c2e7be37712
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-006.xht.ini
new file mode 100644
index 00000000000..d135fb40166
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-007.xht.ini
new file mode 100644
index 00000000000..df70186b7eb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-013.xht.ini
new file mode 100644
index 00000000000..458bc72c34e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-014.xht.ini
new file mode 100644
index 00000000000..21d075d6323
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-080.xht.ini
new file mode 100644
index 00000000000..a8f4fb682b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-080.xht.ini
@@ -0,0 +1,2 @@
+[border-bottom-width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-083.xht.ini
new file mode 100644
index 00000000000..499efd43b6a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-083.xht.ini
@@ -0,0 +1,2 @@
+[border-bottom-width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-084.xht.ini
new file mode 100644
index 00000000000..2d001e1a0bd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-bottom-width-084.xht.ini
@@ -0,0 +1,2 @@
+[border-bottom-width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-001.xht.ini
new file mode 100644
index 00000000000..8b8db1cd47e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-001.xht.ini
@@ -0,0 +1,2 @@
+[border-color-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-006.xht.ini
new file mode 100644
index 00000000000..c7f866ec9e9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-006.xht.ini
@@ -0,0 +1,2 @@
+[border-color-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-012.xht.ini
new file mode 100644
index 00000000000..432e794be50
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-012.xht.ini
@@ -0,0 +1,2 @@
+[border-color-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-001.xht.ini
new file mode 100644
index 00000000000..93fa0e9a745
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-002.xht.ini
new file mode 100644
index 00000000000..f8f5a133e20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-003.xht.ini
new file mode 100644
index 00000000000..0b86413a73e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-004.xht.ini
new file mode 100644
index 00000000000..5a4c55ad7e9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-005.xht.ini
new file mode 100644
index 00000000000..e0680672e1e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-006.xht.ini
new file mode 100644
index 00000000000..88916941dc5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-007.xht.ini
new file mode 100644
index 00000000000..8c9a024afc4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-013.xht.ini
new file mode 100644
index 00000000000..c572a70d4c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-014.xht.ini
new file mode 100644
index 00000000000..91e94d4795c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-color-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-shorthand-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-shorthand-001.xht.ini
new file mode 100644
index 00000000000..1e284555faf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-color-shorthand-001.xht.ini
@@ -0,0 +1,2 @@
+[border-color-shorthand-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-101.xht.ini
new file mode 100644
index 00000000000..1f31519bf1a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-101.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-style-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-102.xht.ini
new file mode 100644
index 00000000000..c5c4965f0e5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-102.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-style-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-103.xht.ini
new file mode 100644
index 00000000000..1bf47e6123d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-103.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-style-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-104.xht.ini
new file mode 100644
index 00000000000..4228a8e88c8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-104.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-style-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-105.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-105.xht.ini
new file mode 100644
index 00000000000..b1af0734d8f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-105.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-style-105.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-106.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-106.xht.ini
new file mode 100644
index 00000000000..5c16563b761
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-conflict-style-106.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-style-106.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-018.xht.ini
new file mode 100644
index 00000000000..db2c344a6cd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-018.xht.ini
@@ -0,0 +1,2 @@
+[border-left-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-001.xht.ini
new file mode 100644
index 00000000000..9eef5a5629e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-002.xht.ini
new file mode 100644
index 00000000000..c61a52dd299
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-003.xht.ini
new file mode 100644
index 00000000000..865d4ec9ad5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-004.xht.ini
new file mode 100644
index 00000000000..7b5895df482
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-005.xht.ini
new file mode 100644
index 00000000000..ca9919c291f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-006.xht.ini
new file mode 100644
index 00000000000..9e7e60ebf83
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-013.xht.ini
new file mode 100644
index 00000000000..2cd2e71784a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-014.xht.ini
new file mode 100644
index 00000000000..6498467b975
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-left-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-001.xht.ini
new file mode 100644
index 00000000000..beb64b05a56
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-002.xht.ini
new file mode 100644
index 00000000000..2284504e4b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-003.xht.ini
new file mode 100644
index 00000000000..0475345a568
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-004.xht.ini
new file mode 100644
index 00000000000..485b2a2cf17
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-005.xht.ini
new file mode 100644
index 00000000000..80c6f838f49
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-006.xht.ini
new file mode 100644
index 00000000000..f1c6fede487
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-013.xht.ini
new file mode 100644
index 00000000000..83e2dd68163
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-014.xht.ini
new file mode 100644
index 00000000000..b817f50e65a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-color-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-left-color-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-080.xht.ini
new file mode 100644
index 00000000000..c39d62d273e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-080.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-083.xht.ini
new file mode 100644
index 00000000000..ac4c4d16841
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-083.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-084.xht.ini
new file mode 100644
index 00000000000..b99627d307f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-084.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-001.xht.ini
new file mode 100644
index 00000000000..a3369dcf19c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-002.xht.ini
new file mode 100644
index 00000000000..72c64ed6601
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-003.xht.ini
new file mode 100644
index 00000000000..ddd00ec975a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-004.xht.ini
new file mode 100644
index 00000000000..50feaa86bbc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-005.xht.ini
new file mode 100644
index 00000000000..d3e3cf86dd9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-006.xht.ini
new file mode 100644
index 00000000000..d5bee5907f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-013.xht.ini
new file mode 100644
index 00000000000..febafe5dfc1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-014.xht.ini
new file mode 100644
index 00000000000..9882c77aa16
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-left-width-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-left-width-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-001.xht.ini
new file mode 100644
index 00000000000..6899e4f68ce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-001.xht.ini
@@ -0,0 +1,2 @@
+[border-right-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-003.xht.ini
new file mode 100644
index 00000000000..e9176e45ff6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-003.xht.ini
@@ -0,0 +1,2 @@
+[border-right-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-005.xht.ini
new file mode 100644
index 00000000000..7d4df43ff36
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-005.xht.ini
@@ -0,0 +1,2 @@
+[border-right-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-006.xht.ini
new file mode 100644
index 00000000000..54f77e938a6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-006.xht.ini
@@ -0,0 +1,2 @@
+[border-right-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-008.xht.ini
new file mode 100644
index 00000000000..e6e340c4ec2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-008.xht.ini
@@ -0,0 +1,2 @@
+[border-right-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-018.xht.ini
new file mode 100644
index 00000000000..f6b6d98131a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-018.xht.ini
@@ -0,0 +1,2 @@
+[border-right-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-001.xht.ini
new file mode 100644
index 00000000000..b5fd59bf574
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-002.xht.ini
new file mode 100644
index 00000000000..e0166196b0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-003.xht.ini
new file mode 100644
index 00000000000..e81338c84d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-004.xht.ini
new file mode 100644
index 00000000000..c9a4077b29a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-005.xht.ini
new file mode 100644
index 00000000000..94621741234
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-006.xht.ini
new file mode 100644
index 00000000000..27486ec0660
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-007.xht.ini
new file mode 100644
index 00000000000..2667ee5dc51
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-013.xht.ini
new file mode 100644
index 00000000000..47a718ba9f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-014.xht.ini
new file mode 100644
index 00000000000..08ae20a4c79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-015.xht.ini
new file mode 100644
index 00000000000..5023e62093c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[border-right-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-001.xht.ini
new file mode 100644
index 00000000000..df0b665edd1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-001.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-002.xht.ini
new file mode 100644
index 00000000000..96df9ff93e0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-002.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-003.xht.ini
new file mode 100644
index 00000000000..4d6aa09af5c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-003.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-004.xht.ini
new file mode 100644
index 00000000000..c7371753c4c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-004.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-005.xht.ini
new file mode 100644
index 00000000000..aba1bf57281
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-005.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-006.xht.ini
new file mode 100644
index 00000000000..5cda0ed88ca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-006.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-007.xht.ini
new file mode 100644
index 00000000000..4b494b46741
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-007.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-008.xht.ini
new file mode 100644
index 00000000000..d28d74901da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-008.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-009.xht.ini
new file mode 100644
index 00000000000..1bb74b9f2b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-009.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-010.xht.ini
new file mode 100644
index 00000000000..ee687c923e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-010.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-011.xht.ini
new file mode 100644
index 00000000000..132df233378
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-011.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-012.xht.ini
new file mode 100644
index 00000000000..71e65534445
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-012.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-013.xht.ini
new file mode 100644
index 00000000000..0c844231910
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-013.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-014.xht.ini
new file mode 100644
index 00000000000..b1925b0ea17
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-014.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-015.xht.ini
new file mode 100644
index 00000000000..47c92b91108
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-015.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-016.xht.ini
new file mode 100644
index 00000000000..3aaf61d320a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-016.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-017.xht.ini
new file mode 100644
index 00000000000..898ac3dbb96
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-017.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-018.xht.ini
new file mode 100644
index 00000000000..f3be54b4520
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-018.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-019.xht.ini
new file mode 100644
index 00000000000..f6f25512550
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-019.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-020.xht.ini
new file mode 100644
index 00000000000..877fc063d98
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-020.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-021.xht.ini
new file mode 100644
index 00000000000..6e644740711
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-021.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-022.xht.ini
new file mode 100644
index 00000000000..ad35372f7d4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-022.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-023.xht.ini
new file mode 100644
index 00000000000..b6b1fb20235
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-023.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-024.xht.ini
new file mode 100644
index 00000000000..accb7d2f8dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-024.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-025.xht.ini
new file mode 100644
index 00000000000..04f54000a2d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-025.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-026.xht.ini
new file mode 100644
index 00000000000..25d2e6e6c42
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-026.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-027.xht.ini
new file mode 100644
index 00000000000..f05cbc1cf67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-027.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-028.xht.ini
new file mode 100644
index 00000000000..bb85cc35233
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-028.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-029.xht.ini
new file mode 100644
index 00000000000..6d3d9db3bd2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-029.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-031.xht.ini
new file mode 100644
index 00000000000..3aae9447b52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-031.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-032.xht.ini
new file mode 100644
index 00000000000..45aff32ad84
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-032.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-033.xht.ini
new file mode 100644
index 00000000000..c11222977c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-033.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-034.xht.ini
new file mode 100644
index 00000000000..29f7bbf9234
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-034.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-035.xht.ini
new file mode 100644
index 00000000000..d3fe7b32592
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-035.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-036.xht.ini
new file mode 100644
index 00000000000..bddeb613728
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-036.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-037.xht.ini
new file mode 100644
index 00000000000..74f95c994e5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-037.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-038.xht.ini
new file mode 100644
index 00000000000..f82a3f98d30
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-038.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-039.xht.ini
new file mode 100644
index 00000000000..094bf0ff63c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-039.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-040.xht.ini
new file mode 100644
index 00000000000..03bdba009de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-040.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-041.xht.ini
new file mode 100644
index 00000000000..4d4d8e48365
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-041.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-042.xht.ini
new file mode 100644
index 00000000000..cb0c7519fee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-042.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-043.xht.ini
new file mode 100644
index 00000000000..cd802a7792c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-043.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-044.xht.ini
new file mode 100644
index 00000000000..ddbad0dd218
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-044.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-045.xht.ini
new file mode 100644
index 00000000000..e395dad95d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-045.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-046.xht.ini
new file mode 100644
index 00000000000..4159b8c80a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-046.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-047.xht.ini
new file mode 100644
index 00000000000..4a913224df2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-047.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-047.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-048.xht.ini
new file mode 100644
index 00000000000..5bf167040ab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-048.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-049.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-049.xht.ini
new file mode 100644
index 00000000000..b01247162d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-049.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-049.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-050.xht.ini
new file mode 100644
index 00000000000..38f8babc1d7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-050.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-051.xht.ini
new file mode 100644
index 00000000000..b3af98a369a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-051.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-052.xht.ini
new file mode 100644
index 00000000000..dd6d6f917fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-052.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-053.xht.ini
new file mode 100644
index 00000000000..f10e4a941d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-053.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-054.xht.ini
new file mode 100644
index 00000000000..1fd732ee00a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-054.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-055.xht.ini
new file mode 100644
index 00000000000..cb4dcebd34c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-055.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-056.xht.ini
new file mode 100644
index 00000000000..c5722a367eb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-056.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-057.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-057.xht.ini
new file mode 100644
index 00000000000..5c272cadc33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-057.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-057.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-058.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-058.xht.ini
new file mode 100644
index 00000000000..8b3508827f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-058.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-058.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-059.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-059.xht.ini
new file mode 100644
index 00000000000..663af07cf18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-059.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-059.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-060.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-060.xht.ini
new file mode 100644
index 00000000000..9d7f8f8da36
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-060.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-060.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-061.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-061.xht.ini
new file mode 100644
index 00000000000..bc06f073660
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-061.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-061.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-062.xht.ini
new file mode 100644
index 00000000000..4bfb0fc2c8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-062.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-063.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-063.xht.ini
new file mode 100644
index 00000000000..31ca503d20d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-063.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-063.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-064.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-064.xht.ini
new file mode 100644
index 00000000000..59f8653bf20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-064.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-064.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-065.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-065.xht.ini
new file mode 100644
index 00000000000..c9183e025c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-065.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-065.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-066.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-066.xht.ini
new file mode 100644
index 00000000000..e9cfccc9d8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-066.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-066.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-067.xht.ini
new file mode 100644
index 00000000000..9db90cb5b79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-067.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-068.xht.ini
new file mode 100644
index 00000000000..6ce18fbd24f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-068.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-069.xht.ini
new file mode 100644
index 00000000000..b11b3a7c37b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-069.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-070.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-070.xht.ini
new file mode 100644
index 00000000000..cfd275f045b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-070.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-070.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-071.xht.ini
new file mode 100644
index 00000000000..195d22f50ef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-071.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-072.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-072.xht.ini
new file mode 100644
index 00000000000..024c05862c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-072.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-072.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-073.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-073.xht.ini
new file mode 100644
index 00000000000..e396e43d7c8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-073.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-073.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-074.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-074.xht.ini
new file mode 100644
index 00000000000..9c2dcfd2cad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-074.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-074.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-075.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-075.xht.ini
new file mode 100644
index 00000000000..5695f5c12e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-075.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-075.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-076.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-076.xht.ini
new file mode 100644
index 00000000000..acb10b60a56
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-076.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-076.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-077.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-077.xht.ini
new file mode 100644
index 00000000000..b2bc1e710f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-077.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-077.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-078.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-078.xht.ini
new file mode 100644
index 00000000000..91aa0d02e0a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-078.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-078.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-079.xht.ini
new file mode 100644
index 00000000000..91d5136ca9e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-079.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-080.xht.ini
new file mode 100644
index 00000000000..64a37ab6648
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-080.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-081.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-081.xht.ini
new file mode 100644
index 00000000000..923e5bff884
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-081.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-081.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-082.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-082.xht.ini
new file mode 100644
index 00000000000..b29a9f020ab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-082.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-082.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-083.xht.ini
new file mode 100644
index 00000000000..d8cc3742d87
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-083.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-084.xht.ini
new file mode 100644
index 00000000000..48a3c4037df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-084.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-085.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-085.xht.ini
new file mode 100644
index 00000000000..ec971c8b821
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-085.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-085.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-086.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-086.xht.ini
new file mode 100644
index 00000000000..6cc2a2206a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-086.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-086.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-087.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-087.xht.ini
new file mode 100644
index 00000000000..19b5dc58c08
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-087.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-087.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-088.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-088.xht.ini
new file mode 100644
index 00000000000..da74d80db24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-088.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-088.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-089.xht.ini
new file mode 100644
index 00000000000..06d98a2b59f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-089.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-090.xht.ini
new file mode 100644
index 00000000000..2d21cd7f532
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-090.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-091.xht.ini
new file mode 100644
index 00000000000..77221215cfc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-091.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-092.xht.ini
new file mode 100644
index 00000000000..3d2f2560fce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-092.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-093.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-093.xht.ini
new file mode 100644
index 00000000000..debb5059461
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-093.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-093.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-094.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-094.xht.ini
new file mode 100644
index 00000000000..366192a19da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-094.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-094.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-095.xht.ini
new file mode 100644
index 00000000000..2ec2d41c897
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-095.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-096.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-096.xht.ini
new file mode 100644
index 00000000000..cbca564aae9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-096.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-096.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-097.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-097.xht.ini
new file mode 100644
index 00000000000..411633adc5e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-097.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-097.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-098.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-098.xht.ini
new file mode 100644
index 00000000000..cf423ca7906
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-098.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-098.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-099.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-099.xht.ini
new file mode 100644
index 00000000000..e30488ba9a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-099.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-099.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-100.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-100.xht.ini
new file mode 100644
index 00000000000..c243c243131
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-100.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-100.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-101.xht.ini
new file mode 100644
index 00000000000..2b8c5e8b971
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-101.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-102.xht.ini
new file mode 100644
index 00000000000..4e029c28845
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-102.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-103.xht.ini
new file mode 100644
index 00000000000..8a48b2bb200
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-103.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-104.xht.ini
new file mode 100644
index 00000000000..6346035d111
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-104.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-105.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-105.xht.ini
new file mode 100644
index 00000000000..b620954a4c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-105.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-105.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-106.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-106.xht.ini
new file mode 100644
index 00000000000..04f24bf65b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-106.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-106.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-107.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-107.xht.ini
new file mode 100644
index 00000000000..a031f44c61c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-107.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-107.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-108.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-108.xht.ini
new file mode 100644
index 00000000000..5918494f545
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-108.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-108.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-109.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-109.xht.ini
new file mode 100644
index 00000000000..596d2dba560
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-109.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-109.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-110.xht.ini
new file mode 100644
index 00000000000..f360dc612db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-110.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-111.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-111.xht.ini
new file mode 100644
index 00000000000..15e773b2aff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-111.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-111.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-112.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-112.xht.ini
new file mode 100644
index 00000000000..670ba78996c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-112.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-112.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-113.xht.ini
new file mode 100644
index 00000000000..af18c5eed2d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-113.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-114.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-114.xht.ini
new file mode 100644
index 00000000000..fe4e30ffa67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-114.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-114.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-115.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-115.xht.ini
new file mode 100644
index 00000000000..e23ca65ae75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-115.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-115.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-116.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-116.xht.ini
new file mode 100644
index 00000000000..49a48524c82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-116.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-116.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-117.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-117.xht.ini
new file mode 100644
index 00000000000..7da04fa3024
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-117.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-117.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-118.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-118.xht.ini
new file mode 100644
index 00000000000..cab396ea2fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-118.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-118.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-119.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-119.xht.ini
new file mode 100644
index 00000000000..e0947eca242
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-119.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-119.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-120.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-120.xht.ini
new file mode 100644
index 00000000000..5be6ca5feb0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-120.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-120.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-121.xht.ini
new file mode 100644
index 00000000000..5effbb95033
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-121.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-122.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-122.xht.ini
new file mode 100644
index 00000000000..a085fd12f32
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-122.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-122.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-123.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-123.xht.ini
new file mode 100644
index 00000000000..1187fd9527b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-123.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-123.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-125.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-125.xht.ini
new file mode 100644
index 00000000000..804109d08ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-125.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-125.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-126.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-126.xht.ini
new file mode 100644
index 00000000000..e4cb469b638
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-126.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-126.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-127.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-127.xht.ini
new file mode 100644
index 00000000000..0f6e1682ea7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-127.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-127.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-128.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-128.xht.ini
new file mode 100644
index 00000000000..36a488ecefa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-128.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-128.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-129.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-129.xht.ini
new file mode 100644
index 00000000000..82e7ca8f00d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-129.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-129.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-130.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-130.xht.ini
new file mode 100644
index 00000000000..9075676aa34
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-130.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-130.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-131.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-131.xht.ini
new file mode 100644
index 00000000000..096420d6d0d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-131.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-131.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-132.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-132.xht.ini
new file mode 100644
index 00000000000..3cdc6333703
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-132.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-132.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-133.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-133.xht.ini
new file mode 100644
index 00000000000..613085a9bae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-133.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-133.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-134.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-134.xht.ini
new file mode 100644
index 00000000000..8606ab8d57a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-134.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-134.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-135.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-135.xht.ini
new file mode 100644
index 00000000000..1f4923e44a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-135.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-135.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-136.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-136.xht.ini
new file mode 100644
index 00000000000..556e7f40067
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-136.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-136.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-137.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-137.xht.ini
new file mode 100644
index 00000000000..169484be8d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-137.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-137.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-138.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-138.xht.ini
new file mode 100644
index 00000000000..50de8861b8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-138.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-138.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-139.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-139.xht.ini
new file mode 100644
index 00000000000..27c97f0ade6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-139.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-139.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-140.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-140.xht.ini
new file mode 100644
index 00000000000..b8e5f69858e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-140.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-140.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-141.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-141.xht.ini
new file mode 100644
index 00000000000..ede6a44d638
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-141.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-141.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-142.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-142.xht.ini
new file mode 100644
index 00000000000..71a9f5e357a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-142.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-142.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-143.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-143.xht.ini
new file mode 100644
index 00000000000..d2ca009ef14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-143.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-143.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-144.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-144.xht.ini
new file mode 100644
index 00000000000..ab1c5cce90a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-144.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-144.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-145.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-145.xht.ini
new file mode 100644
index 00000000000..fde0e69ec2c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-145.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-145.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-175.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-175.xht.ini
new file mode 100644
index 00000000000..594ad21de75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-175.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-175.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-001.xht.ini
new file mode 100644
index 00000000000..df8e60059e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-002.xht.ini
new file mode 100644
index 00000000000..2269502e292
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-003.xht.ini
new file mode 100644
index 00000000000..35f44e9eeb8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-004.xht.ini
new file mode 100644
index 00000000000..441ef6518d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-005.xht.ini
new file mode 100644
index 00000000000..61d1955d7f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-006.xht.ini
new file mode 100644
index 00000000000..f22f223085b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-007.xht.ini
new file mode 100644
index 00000000000..7da86ecb766
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-013.xht.ini
new file mode 100644
index 00000000000..b044ff0394d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-014.xht.ini
new file mode 100644
index 00000000000..69696f1eeed
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-015.xht.ini
new file mode 100644
index 00000000000..9825984c05f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-color-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[border-right-color-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-080.xht.ini
new file mode 100644
index 00000000000..fd044d0f6f3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-080.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-083.xht.ini
new file mode 100644
index 00000000000..03433caa554
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-083.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-084.xht.ini
new file mode 100644
index 00000000000..4b6e7fc2f15
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-084.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-095.xht.ini
new file mode 100644
index 00000000000..2e4df1bb52f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-095.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-001.xht.ini
new file mode 100644
index 00000000000..218ec974732
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-002.xht.ini
new file mode 100644
index 00000000000..a614a3d157b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-003.xht.ini
new file mode 100644
index 00000000000..2bcc0372feb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-004.xht.ini
new file mode 100644
index 00000000000..537d459dec1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-005.xht.ini
new file mode 100644
index 00000000000..83363aa7622
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-006.xht.ini
new file mode 100644
index 00000000000..e7ef791fdb0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-007.xht.ini
new file mode 100644
index 00000000000..9d90345e606
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-013.xht.ini
new file mode 100644
index 00000000000..518a6c25375
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-014.xht.ini
new file mode 100644
index 00000000000..1574b7376b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-015.xht.ini
new file mode 100644
index 00000000000..c9e324b1af1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-right-width-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[border-right-width-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-080.xht.ini
new file mode 100644
index 00000000000..3e233ebf2c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-080.xht.ini
@@ -0,0 +1,2 @@
+[border-top-width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-083.xht.ini
new file mode 100644
index 00000000000..e70c26c98c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-083.xht.ini
@@ -0,0 +1,2 @@
+[border-top-width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-084.xht.ini
new file mode 100644
index 00000000000..b225776080c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-top-width-084.xht.ini
@@ -0,0 +1,2 @@
+[border-top-width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-005.xht.ini
new file mode 100644
index 00000000000..39b57df9803
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-005.xht.ini
@@ -0,0 +1,2 @@
+[border-width-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-006.xht.ini
new file mode 100644
index 00000000000..24156ae8a04
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-006.xht.ini
@@ -0,0 +1,2 @@
+[border-width-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-007.xht.ini
new file mode 100644
index 00000000000..ae32e3d0fc1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-007.xht.ini
@@ -0,0 +1,2 @@
+[border-width-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-008.xht.ini
new file mode 100644
index 00000000000..3920e728c6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-008.xht.ini
@@ -0,0 +1,2 @@
+[border-width-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-014.xht.ini
new file mode 100644
index 00000000000..82f5407d25c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-014.xht.ini
@@ -0,0 +1,2 @@
+[border-width-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-applies-to-008.xht.ini
new file mode 100644
index 00000000000..4eb0277abb9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[border-width-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-001.xht.ini
new file mode 100644
index 00000000000..4f7c1691402
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-001.xht.ini
@@ -0,0 +1,2 @@
+[border-width-shorthand-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-002.xht.ini
new file mode 100644
index 00000000000..012990ea0a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-002.xht.ini
@@ -0,0 +1,2 @@
+[border-width-shorthand-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-003.xht.ini
new file mode 100644
index 00000000000..6b499eb3fc5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-003.xht.ini
@@ -0,0 +1,2 @@
+[border-width-shorthand-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-004.xht.ini
new file mode 100644
index 00000000000..0978463135a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/borders/border-width-shorthand-004.xht.ini
@@ -0,0 +1,2 @@
+[border-width-shorthand-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-basic.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-basic.xht.ini
new file mode 100644
index 00000000000..f9d172e8384
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-basic.xht.ini
@@ -0,0 +1,2 @@
+[ltr-basic.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-ib.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-ib.xht.ini
new file mode 100644
index 00000000000..17b2a939666
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-ib.xht.ini
@@ -0,0 +1,2 @@
+[ltr-ib.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only-ib.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only-ib.xht.ini
new file mode 100644
index 00000000000..63e1ea520db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only-ib.xht.ini
@@ -0,0 +1,2 @@
+[ltr-span-only-ib.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only.xht.ini
new file mode 100644
index 00000000000..bf3c353812e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/ltr-span-only.xht.ini
@@ -0,0 +1,2 @@
+[ltr-span-only.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-basic.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-basic.xht.ini
new file mode 100644
index 00000000000..72813086012
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-basic.xht.ini
@@ -0,0 +1,2 @@
+[rtl-basic.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-ib.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-ib.xht.ini
new file mode 100644
index 00000000000..a6194bb0dce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-ib.xht.ini
@@ -0,0 +1,2 @@
+[rtl-ib.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-linebreak.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-linebreak.xht.ini
new file mode 100644
index 00000000000..76072232847
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-linebreak.xht.ini
@@ -0,0 +1,2 @@
+[rtl-linebreak.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only-ib.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only-ib.xht.ini
new file mode 100644
index 00000000000..37125c29449
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only-ib.xht.ini
@@ -0,0 +1,2 @@
+[rtl-span-only-ib.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only.xht.ini
new file mode 100644
index 00000000000..6fe3e636065
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/box/rtl-span-only.xht.ini
@@ -0,0 +1,2 @@
+[rtl-span-only.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009a.xht.ini
new file mode 100644
index 00000000000..07247a4a918
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009a.xht.ini
@@ -0,0 +1,2 @@
+[cascade-009a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009b.xht.ini
new file mode 100644
index 00000000000..5b0d99f9ef0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/cascade-009b.xht.ini
@@ -0,0 +1,2 @@
+[cascade-009b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/cascade/inherit-computed-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/inherit-computed-001.html.ini
new file mode 100644
index 00000000000..12e8c80098d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/inherit-computed-001.html.ini
@@ -0,0 +1,2 @@
+[inherit-computed-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-005.xht.ini
new file mode 100644
index 00000000000..cd3bbdb5fd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-005.xht.ini
@@ -0,0 +1,2 @@
+[specificity-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-006.xht.ini
new file mode 100644
index 00000000000..52733dd9d40
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-006.xht.ini
@@ -0,0 +1,2 @@
+[specificity-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-008.xht.ini
new file mode 100644
index 00000000000..a684922ad5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/cascade/specificity-008.xht.ini
@@ -0,0 +1,2 @@
+[specificity-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-001.xht.ini
new file mode 100644
index 00000000000..6cff883768b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-002.xht.ini
new file mode 100644
index 00000000000..0ad5e2ba07e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-003.xht.ini
new file mode 100644
index 00000000000..8bad8a78aed
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-004.xht.ini
new file mode 100644
index 00000000000..9ca33cef69a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-005.xht.ini
new file mode 100644
index 00000000000..ee316910b1f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-006.xht.ini
new file mode 100644
index 00000000000..4592ca17f69
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini
new file mode 100644
index 00000000000..09b26767921
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-013.xht.ini
new file mode 100644
index 00000000000..7d9f2959590
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-014.xht.ini
new file mode 100644
index 00000000000..b6ba4eed089
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini
new file mode 100644
index 00000000000..c5be6b4fcad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/colors/color-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[color-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c25-pseudo-elmnt-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c25-pseudo-elmnt-000.xht.ini
new file mode 100644
index 00000000000..dd6050c8014
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c25-pseudo-elmnt-000.xht.ini
@@ -0,0 +1,2 @@
+[c25-pseudo-elmnt-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-blockw-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-blockw-000.xht.ini
new file mode 100644
index 00000000000..8ac0dad4627
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-blockw-000.xht.ini
@@ -0,0 +1,2 @@
+[c412-blockw-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-hz-box-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-hz-box-000.xht.ini
new file mode 100644
index 00000000000..3dbdb91fdd9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c412-hz-box-000.xht.ini
@@ -0,0 +1,2 @@
+[c412-hz-box-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-000.xht.ini
new file mode 100644
index 00000000000..7ba830b51dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-000.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-001.xht.ini
new file mode 100644
index 00000000000..3fc224bb62d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-001.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-002.xht.ini
new file mode 100644
index 00000000000..96d4e3a1521
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-002.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-003.xht.ini
new file mode 100644
index 00000000000..4287dfb2c05
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-003.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-004.xht.ini
new file mode 100644
index 00000000000..2aceb92d314
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-004.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-005.xht.ini
new file mode 100644
index 00000000000..900e7d7c18d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-005.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-006.xht.ini
new file mode 100644
index 00000000000..a306acbd9b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-fit-006.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-fit-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-wrap-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-wrap-001.xht.ini
new file mode 100644
index 00000000000..b07643272b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c414-flt-wrap-001.xht.ini
@@ -0,0 +1,2 @@
+[c414-flt-wrap-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-ht-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-ht-000.xht.ini
new file mode 100644
index 00000000000..2344c29f0d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-ht-000.xht.ini
@@ -0,0 +1,2 @@
+[c42-ibx-ht-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-pad-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-pad-000.xht.ini
new file mode 100644
index 00000000000..1e9980c9287
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c42-ibx-pad-000.xht.ini
@@ -0,0 +1,2 @@
+[c42-ibx-pad-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-000.xht.ini
new file mode 100644
index 00000000000..de121fe7ca0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-000.xht.ini
@@ -0,0 +1,2 @@
+[c44-ln-box-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-001.xht.ini
new file mode 100644
index 00000000000..0109f90e634
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-001.xht.ini
@@ -0,0 +1,2 @@
+[c44-ln-box-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-002.xht.ini
new file mode 100644
index 00000000000..02908af4cfd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-002.xht.ini
@@ -0,0 +1,2 @@
+[c44-ln-box-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-003.xht.ini
new file mode 100644
index 00000000000..8ea20d78a01
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c44-ln-box-003.xht.ini
@@ -0,0 +1,2 @@
+[c44-ln-box-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c45-bg-canvas-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c45-bg-canvas-000.xht.ini
new file mode 100644
index 00000000000..271a819bcff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c45-bg-canvas-000.xht.ini
@@ -0,0 +1,2 @@
+[c45-bg-canvas-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c526-font-sz-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c526-font-sz-002.xht.ini
new file mode 100644
index 00000000000..a76da75e88d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c526-font-sz-002.xht.ini
@@ -0,0 +1,2 @@
+[c526-font-sz-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-000.xht.ini
new file mode 100644
index 00000000000..06355b1cd98
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-000.xht.ini
@@ -0,0 +1,2 @@
+[c541-word-sp-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-001.xht.ini
new file mode 100644
index 00000000000..c3868fedc4a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c541-word-sp-001.xht.ini
@@ -0,0 +1,2 @@
+[c541-word-sp-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c542-letter-sp-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c542-letter-sp-000.xht.ini
new file mode 100644
index 00000000000..85b5482725f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c542-letter-sp-000.xht.ini
@@ -0,0 +1,2 @@
+[c542-letter-sp-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c544-valgn-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c544-valgn-001.xht.ini
new file mode 100644
index 00000000000..0fe2b5b5c5b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c544-valgn-001.xht.ini
@@ -0,0 +1,2 @@
+[c544-valgn-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-000.xht.ini
new file mode 100644
index 00000000000..90c0d634795
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-000.xht.ini
@@ -0,0 +1,2 @@
+[c547-indent-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-001.xht.ini
new file mode 100644
index 00000000000..ef74c066b9b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c547-indent-001.xht.ini
@@ -0,0 +1,2 @@
+[c547-indent-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-leadin-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-leadin-000.xht.ini
new file mode 100644
index 00000000000..c1ef8079d7f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-leadin-000.xht.ini
@@ -0,0 +1,2 @@
+[c548-leadin-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-000.xht.ini
new file mode 100644
index 00000000000..1acd218c611
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-000.xht.ini
@@ -0,0 +1,2 @@
+[c548-ln-ht-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-001.xht.ini
new file mode 100644
index 00000000000..6844de76f6c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-001.xht.ini
@@ -0,0 +1,2 @@
+[c548-ln-ht-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-002.xht.ini
new file mode 100644
index 00000000000..f6b5174c57b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-002.xht.ini
@@ -0,0 +1,2 @@
+[c548-ln-ht-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-003.xht.ini
new file mode 100644
index 00000000000..989bd13d3b0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-003.xht.ini
@@ -0,0 +1,2 @@
+[c548-ln-ht-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-004.xht.ini
new file mode 100644
index 00000000000..329b62c3593
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c548-ln-ht-004.xht.ini
@@ -0,0 +1,2 @@
+[c548-ln-ht-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-imrgn-t-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-imrgn-t-000.xht.ini
new file mode 100644
index 00000000000..00176662619
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-imrgn-t-000.xht.ini
@@ -0,0 +1,2 @@
+[c5501-imrgn-t-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-mrgn-t-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-mrgn-t-000.xht.ini
new file mode 100644
index 00000000000..3326a8f1b58
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5501-mrgn-t-000.xht.ini
@@ -0,0 +1,2 @@
+[c5501-mrgn-t-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-000.xht.ini
new file mode 100644
index 00000000000..82e4c70b7a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-000.xht.ini
@@ -0,0 +1,2 @@
+[c5502-imrgn-r-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-002.xht.ini
new file mode 100644
index 00000000000..982dbccba47
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-002.xht.ini
@@ -0,0 +1,2 @@
+[c5502-imrgn-r-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-003.xht.ini
new file mode 100644
index 00000000000..f66025392f7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-003.xht.ini
@@ -0,0 +1,2 @@
+[c5502-imrgn-r-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-005.xht.ini
new file mode 100644
index 00000000000..de90bddadba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-005.xht.ini
@@ -0,0 +1,2 @@
+[c5502-imrgn-r-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-006.xht.ini
new file mode 100644
index 00000000000..7fbe60c7d99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-imrgn-r-006.xht.ini
@@ -0,0 +1,2 @@
+[c5502-imrgn-r-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-mrgn-r-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-mrgn-r-000.xht.ini
new file mode 100644
index 00000000000..2279b97b28a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5502-mrgn-r-000.xht.ini
@@ -0,0 +1,2 @@
+[c5502-mrgn-r-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-imrgn-b-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-imrgn-b-000.xht.ini
new file mode 100644
index 00000000000..1ff9849c288
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-imrgn-b-000.xht.ini
@@ -0,0 +1,2 @@
+[c5503-imrgn-b-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-mrgn-b-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-mrgn-b-000.xht.ini
new file mode 100644
index 00000000000..c083f64e454
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5503-mrgn-b-000.xht.ini
@@ -0,0 +1,2 @@
+[c5503-mrgn-b-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-000.xht.ini
new file mode 100644
index 00000000000..2f9794b4a8f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-000.xht.ini
@@ -0,0 +1,2 @@
+[c5504-imrgn-l-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-002.xht.ini
new file mode 100644
index 00000000000..650b7888afd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-002.xht.ini
@@ -0,0 +1,2 @@
+[c5504-imrgn-l-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-003.xht.ini
new file mode 100644
index 00000000000..c3113f6252a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-003.xht.ini
@@ -0,0 +1,2 @@
+[c5504-imrgn-l-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-005.xht.ini
new file mode 100644
index 00000000000..323982c55a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-005.xht.ini
@@ -0,0 +1,2 @@
+[c5504-imrgn-l-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-006.xht.ini
new file mode 100644
index 00000000000..289c00be75e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-imrgn-l-006.xht.ini
@@ -0,0 +1,2 @@
+[c5504-imrgn-l-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-000.xht.ini
new file mode 100644
index 00000000000..17362c8791d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-000.xht.ini
@@ -0,0 +1,2 @@
+[c5504-mrgn-l-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-001.xht.ini
new file mode 100644
index 00000000000..4649de99f9c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5504-mrgn-l-001.xht.ini
@@ -0,0 +1,2 @@
+[c5504-mrgn-l-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-imrgn-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-imrgn-000.xht.ini
new file mode 100644
index 00000000000..75e8140bed2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-imrgn-000.xht.ini
@@ -0,0 +1,2 @@
+[c5505-imrgn-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-000.xht.ini
new file mode 100644
index 00000000000..62d47579fa8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-000.xht.ini
@@ -0,0 +1,2 @@
+[c5505-mrgn-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-001.xht.ini
new file mode 100644
index 00000000000..fe2619d80ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-001.xht.ini
@@ -0,0 +1,2 @@
+[c5505-mrgn-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-003.xht.ini
new file mode 100644
index 00000000000..895bc8ed863
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5505-mrgn-003.xht.ini
@@ -0,0 +1,2 @@
+[c5505-mrgn-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-000.xht.ini
new file mode 100644
index 00000000000..e333041c24e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-000.xht.ini
@@ -0,0 +1,2 @@
+[c5506-ipadn-t-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-001.xht.ini
new file mode 100644
index 00000000000..d960a7f8959
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-001.xht.ini
@@ -0,0 +1,2 @@
+[c5506-ipadn-t-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-002.xht.ini
new file mode 100644
index 00000000000..5fc7c3ea6db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-ipadn-t-002.xht.ini
@@ -0,0 +1,2 @@
+[c5506-ipadn-t-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-padn-t-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-padn-t-000.xht.ini
new file mode 100644
index 00000000000..35ad6e5b07a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5506-padn-t-000.xht.ini
@@ -0,0 +1,2 @@
+[c5506-padn-t-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-000.xht.ini
new file mode 100644
index 00000000000..a4fb9f84cf7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-000.xht.ini
@@ -0,0 +1,2 @@
+[c5507-ipadn-r-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-002.xht.ini
new file mode 100644
index 00000000000..f9b806c3d40
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-002.xht.ini
@@ -0,0 +1,2 @@
+[c5507-ipadn-r-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-003.xht.ini
new file mode 100644
index 00000000000..f7d39e46b1a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-003.xht.ini
@@ -0,0 +1,2 @@
+[c5507-ipadn-r-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-004.xht.ini
new file mode 100644
index 00000000000..56bddc95c87
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-ipadn-r-004.xht.ini
@@ -0,0 +1,2 @@
+[c5507-ipadn-r-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-padn-r-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-padn-r-000.xht.ini
new file mode 100644
index 00000000000..35db013ef66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5507-padn-r-000.xht.ini
@@ -0,0 +1,2 @@
+[c5507-padn-r-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-000.xht.ini
new file mode 100644
index 00000000000..d8520ddd794
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-000.xht.ini
@@ -0,0 +1,2 @@
+[c5508-ipadn-b-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-001.xht.ini
new file mode 100644
index 00000000000..39f53052007
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-001.xht.ini
@@ -0,0 +1,2 @@
+[c5508-ipadn-b-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-003.xht.ini
new file mode 100644
index 00000000000..a6cf3f7dec9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5508-ipadn-b-003.xht.ini
@@ -0,0 +1,2 @@
+[c5508-ipadn-b-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-000.xht.ini
new file mode 100644
index 00000000000..2246cdca213
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-000.xht.ini
@@ -0,0 +1,2 @@
+[c5509-ipadn-l-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-002.xht.ini
new file mode 100644
index 00000000000..2e9350d2401
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-002.xht.ini
@@ -0,0 +1,2 @@
+[c5509-ipadn-l-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-003.xht.ini
new file mode 100644
index 00000000000..f90abf83573
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-003.xht.ini
@@ -0,0 +1,2 @@
+[c5509-ipadn-l-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-004.xht.ini
new file mode 100644
index 00000000000..2601ed42778
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-ipadn-l-004.xht.ini
@@ -0,0 +1,2 @@
+[c5509-ipadn-l-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-padn-l-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-padn-l-000.xht.ini
new file mode 100644
index 00000000000..06d8b6a8709
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5509-padn-l-000.xht.ini
@@ -0,0 +1,2 @@
+[c5509-padn-l-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5510-ipadn-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5510-ipadn-000.xht.ini
new file mode 100644
index 00000000000..6a7c7549ad3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5510-ipadn-000.xht.ini
@@ -0,0 +1,2 @@
+[c5510-ipadn-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5512-brdr-rw-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5512-brdr-rw-001.xht.ini
new file mode 100644
index 00000000000..ad84fbeac64
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5512-brdr-rw-001.xht.ini
@@ -0,0 +1,2 @@
+[c5512-brdr-rw-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltblck-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltblck-000.xht.ini
new file mode 100644
index 00000000000..d5d1bb1b40d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltblck-000.xht.ini
@@ -0,0 +1,2 @@
+[c5525-fltblck-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltinln-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltinln-000.xht.ini
new file mode 100644
index 00000000000..fba614e1130
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltinln-000.xht.ini
@@ -0,0 +1,2 @@
+[c5525-fltinln-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmrgn-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmrgn-000.xht.ini
new file mode 100644
index 00000000000..2db7d1d525a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmrgn-000.xht.ini
@@ -0,0 +1,2 @@
+[c5525-fltmrgn-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmult-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmult-000.xht.ini
new file mode 100644
index 00000000000..9168554d7e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltmult-000.xht.ini
@@ -0,0 +1,2 @@
+[c5525-fltmult-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltwidth-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltwidth-003.xht.ini
new file mode 100644
index 00000000000..6f90b9caf1d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5525-fltwidth-003.xht.ini
@@ -0,0 +1,2 @@
+[c5525-fltwidth-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5526-fltclr-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5526-fltclr-000.xht.ini
new file mode 100644
index 00000000000..01c767b7cdd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c5526-fltclr-000.xht.ini
@@ -0,0 +1,2 @@
+[c5526-fltclr-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c561-list-displ-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c561-list-displ-000.xht.ini
new file mode 100644
index 00000000000..b0dcccdb153
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c561-list-displ-000.xht.ini
@@ -0,0 +1,2 @@
+[c561-list-displ-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini
new file mode 100644
index 00000000000..f256b9fa665
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c562-white-sp-000.xht.ini
@@ -0,0 +1,2 @@
+[c562-white-sp-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c563-list-type-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c563-list-type-000.xht.ini
new file mode 100644
index 00000000000..bfa85608ccb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c563-list-type-000.xht.ini
@@ -0,0 +1,2 @@
+[c563-list-type-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-ex-len-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-ex-len-000.xht.ini
new file mode 100644
index 00000000000..2d803c855fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-ex-len-000.xht.ini
@@ -0,0 +1,2 @@
+[c61-ex-len-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-rel-len-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-rel-len-000.xht.ini
new file mode 100644
index 00000000000..d14b23c5a52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c61-rel-len-000.xht.ini
@@ -0,0 +1,2 @@
+[c61-rel-len-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c62-percent-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c62-percent-000.xht.ini
new file mode 100644
index 00000000000..32090dbb835
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c62-percent-000.xht.ini
@@ -0,0 +1,2 @@
+[c62-percent-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-002.xht.ini
new file mode 100644
index 00000000000..b6bfef81cad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-002.xht.ini
@@ -0,0 +1,2 @@
+[c71-fwd-parsing-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-004.xht.ini
new file mode 100644
index 00000000000..9488e1b11b2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css1/c71-fwd-parsing-004.xht.ini
@@ -0,0 +1,2 @@
+[c71-fwd-parsing-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-001.html.ini
new file mode 100644
index 00000000000..706a80d5b9f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-001.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-002.html.ini
new file mode 100644
index 00000000000..5414d6d0305
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-002.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-003.html.ini
new file mode 100644
index 00000000000..37fe1caef0d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-003.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-004.html.ini
new file mode 100644
index 00000000000..693b20488c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-004.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-004.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-005.html.ini
new file mode 100644
index 00000000000..b3550456da5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-005.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-005.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-006.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-006.html.ini
new file mode 100644
index 00000000000..eb4ec8293c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-006.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-006.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-007.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-007.html.ini
new file mode 100644
index 00000000000..835a988dd8e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-007.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-007.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-008.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-008.html.ini
new file mode 100644
index 00000000000..bd9ffde3024
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-008.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-008.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-009.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-009.html.ini
new file mode 100644
index 00000000000..40d3fac9573
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/css21-errata/s-11-1-1b-009.html.ini
@@ -0,0 +1,2 @@
+[s-11-1-1b-009.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-non-replaced-width-margin-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-non-replaced-width-margin-000.xht.ini
new file mode 100644
index 00000000000..e21f3530e14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-non-replaced-width-margin-000.xht.ini
@@ -0,0 +1,2 @@
+[abspos-non-replaced-width-margin-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-replaced-width-margin-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-replaced-width-margin-000.xht.ini
new file mode 100644
index 00000000000..880df5ef049
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/abspos-replaced-width-margin-000.xht.ini
@@ -0,0 +1,2 @@
+[abspos-replaced-width-margin-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/anonymous-boxes-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/anonymous-boxes-001.xht.ini
new file mode 100644
index 00000000000..dfd3b5972e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/csswg-issues/submitted/css2.1/anonymous-boxes-001.xht.ini
@@ -0,0 +1,2 @@
+[anonymous-boxes-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjacent-floats-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjacent-floats-001.xht.ini
new file mode 100644
index 00000000000..25e42ff4489
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjacent-floats-001.xht.ini
@@ -0,0 +1,2 @@
+[adjacent-floats-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-before-clearance.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-before-clearance.html.ini
new file mode 100644
index 00000000000..2f89f4d6f7e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-before-clearance.html.ini
@@ -0,0 +1,2 @@
+[adjoining-float-before-clearance.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-002.html.ini
new file mode 100644
index 00000000000..a8a9b5c830c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-002.html.ini
@@ -0,0 +1,2 @@
+[adjoining-float-nested-forced-clearance-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-003.html.ini
new file mode 100644
index 00000000000..dd1850d1ac7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance-003.html.ini
@@ -0,0 +1,2 @@
+[adjoining-float-nested-forced-clearance-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance.html.ini
new file mode 100644
index 00000000000..7559aeea510
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-nested-forced-clearance.html.ini
@@ -0,0 +1,2 @@
+[adjoining-float-nested-forced-clearance.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-new-fc.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-new-fc.html.ini
new file mode 100644
index 00000000000..1454dbd4c3a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/adjoining-float-new-fc.html.ini
@@ -0,0 +1,2 @@
+[adjoining-float-new-fc.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-002.xht.ini
new file mode 100644
index 00000000000..263945fcd72
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-002.xht.ini
@@ -0,0 +1,2 @@
+[clear-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-003.xht.ini
new file mode 100644
index 00000000000..c9d70d54fc2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-003.xht.ini
@@ -0,0 +1,2 @@
+[clear-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-004.xht.ini
new file mode 100644
index 00000000000..363f550fa3b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-004.xht.ini
@@ -0,0 +1,2 @@
+[clear-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-after-top-margin.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-after-top-margin.html.ini
new file mode 100644
index 00000000000..45e4300c13a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-after-top-margin.html.ini
@@ -0,0 +1,2 @@
+[clear-after-top-margin.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-000.xht.ini
new file mode 100644
index 00000000000..178da45626e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-000.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-001.xht.ini
new file mode 100644
index 00000000000..6dd55ac5822
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-002.xht.ini
new file mode 100644
index 00000000000..a629c41c3ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-003.xht.ini
new file mode 100644
index 00000000000..17c8547f40f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-004.xht.ini
new file mode 100644
index 00000000000..c5691d93436
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-005.xht.ini
new file mode 100644
index 00000000000..5aac3a9de69
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-006.xht.ini
new file mode 100644
index 00000000000..02c70e63d3c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-007.xht.ini
new file mode 100644
index 00000000000..c8380380f45
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-008.xht.ini
new file mode 100644
index 00000000000..1034d4e837b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-009.xht.ini
new file mode 100644
index 00000000000..7ea0dbf7cb3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-012.xht.ini
new file mode 100644
index 00000000000..f3dac3a898f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-013.xht.ini
new file mode 100644
index 00000000000..0825ac0e635
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-014.xht.ini
new file mode 100644
index 00000000000..a165964fbb8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-015.xht.ini
new file mode 100644
index 00000000000..8fcbaa241fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-001.xht.ini
new file mode 100644
index 00000000000..0e8e0e0ee53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-001.xht.ini
@@ -0,0 +1,2 @@
+[clear-clearance-calculation-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-002.xht.ini
new file mode 100644
index 00000000000..e5285972074
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-002.xht.ini
@@ -0,0 +1,2 @@
+[clear-clearance-calculation-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-003.xht.ini
new file mode 100644
index 00000000000..73ce7f8a1eb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-003.xht.ini
@@ -0,0 +1,2 @@
+[clear-clearance-calculation-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-004.xht.ini
new file mode 100644
index 00000000000..6e5799fc585
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-004.xht.ini
@@ -0,0 +1,2 @@
+[clear-clearance-calculation-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-005.xht.ini
new file mode 100644
index 00000000000..7be06937891
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-clearance-calculation-005.xht.ini
@@ -0,0 +1,2 @@
+[clear-clearance-calculation-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-default-inheritance-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-default-inheritance-001.xht.ini
new file mode 100644
index 00000000000..e6429447b76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-default-inheritance-001.xht.ini
@@ -0,0 +1,2 @@
+[clear-default-inheritance-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-001.xht.ini
new file mode 100644
index 00000000000..129cffa434c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-001.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-002.xht.ini
new file mode 100644
index 00000000000..c68786b2faf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-002.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-003.xht.ini
new file mode 100644
index 00000000000..2a3dc9e10f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-003.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-004.xht.ini
new file mode 100644
index 00000000000..827fb8b043a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-004.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-005.xht.ini
new file mode 100644
index 00000000000..835feca1dca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-005.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-006.xht.ini
new file mode 100644
index 00000000000..27f26309c4d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-006.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-007.xht.ini
new file mode 100644
index 00000000000..60cb4e21a6f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-007.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-008.xht.ini
new file mode 100644
index 00000000000..ae6f85d2fe8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-008.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-009.xht.ini
new file mode 100644
index 00000000000..89180886c24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-float-009.xht.ini
@@ -0,0 +1,2 @@
+[clear-float-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-initial-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-initial-001.xht.ini
new file mode 100644
index 00000000000..9bfe5f3baef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-initial-001.xht.ini
@@ -0,0 +1,2 @@
+[clear-initial-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-inline-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-inline-001.xht.ini
new file mode 100644
index 00000000000..512d6157d57
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-inline-001.xht.ini
@@ -0,0 +1,2 @@
+[clear-inline-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins-2.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins-2.html.ini
new file mode 100644
index 00000000000..bd217127549
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins-2.html.ini
@@ -0,0 +1,2 @@
+[clear-on-child-with-margins-2.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins.html.ini
new file mode 100644
index 00000000000..a7392b97207
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-child-with-margins.html.ini
@@ -0,0 +1,2 @@
+[clear-on-child-with-margins.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-and-child.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-and-child.html.ini
new file mode 100644
index 00000000000..415e4eb73a9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-and-child.html.ini
@@ -0,0 +1,2 @@
+[clear-on-parent-and-child.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins-no-clearance.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins-no-clearance.html.ini
new file mode 100644
index 00000000000..216939d7839
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins-no-clearance.html.ini
@@ -0,0 +1,2 @@
+[clear-on-parent-with-margins-no-clearance.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins.html.ini
new file mode 100644
index 00000000000..6a41158fa84
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clear-on-parent-with-margins.html.ini
@@ -0,0 +1,2 @@
+[clear-on-parent-with-margins.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clearance-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clearance-006.xht.ini
new file mode 100644
index 00000000000..2535d0e4f9c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/clearance-006.xht.ini
@@ -0,0 +1,2 @@
+[clearance-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini
new file mode 100644
index 00000000000..d7b0c2ca89d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-003.xht.ini
@@ -0,0 +1,2 @@
+[float-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-005.xht.ini
new file mode 100644
index 00000000000..00b1a83c511
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-005.xht.ini
@@ -0,0 +1,2 @@
+[float-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001.xht.ini
new file mode 100644
index 00000000000..eee9419f0da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001a.xht.ini
new file mode 100644
index 00000000000..f21a6c98c3a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-001a.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-002.xht.ini
new file mode 100644
index 00000000000..eb932dc746c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-003.xht.ini
new file mode 100644
index 00000000000..55d260b66e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004.xht.ini
new file mode 100644
index 00000000000..efd574095eb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004a.xht.ini
new file mode 100644
index 00000000000..de0c81bbade
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-004a.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-004a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-005.xht.ini
new file mode 100644
index 00000000000..a883902a478
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-006.xht.ini
new file mode 100644
index 00000000000..8a0aad4475a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-007.xht.ini
new file mode 100644
index 00000000000..4deb4443f9f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008.xht.ini
new file mode 100644
index 00000000000..17db21e0d48
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008a.xht.ini
new file mode 100644
index 00000000000..ac207eaf406
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-008a.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-008a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-009.xht.ini
new file mode 100644
index 00000000000..62561de0f67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-012.xht.ini
new file mode 100644
index 00000000000..273de32776e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-013.xht.ini
new file mode 100644
index 00000000000..1ffb70c7a95
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-014.xht.ini
new file mode 100644
index 00000000000..c661f560878
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-015.xht.ini
new file mode 100644
index 00000000000..93b007b2849
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[float-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-height-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-height-001.xht.ini
new file mode 100644
index 00000000000..86a252266e8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-height-001.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-height-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-002.xht.ini
new file mode 100644
index 00000000000..d1360eeef3c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-002.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..5aae804edb7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-004.xht.ini
new file mode 100644
index 00000000000..ba7944663aa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-004.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-007.xht.ini
new file mode 100644
index 00000000000..5193ab3fea4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-007.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-008.xht.ini
new file mode 100644
index 00000000000..7238fde39d1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-008.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-009.xht.ini
new file mode 100644
index 00000000000..14de6bf06b0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-009.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-010.xht.ini
new file mode 100644
index 00000000000..8b3ab06f743
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-010.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-011.xht.ini
new file mode 100644
index 00000000000..29a06b3fe85
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-011.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-012.xht.ini
new file mode 100644
index 00000000000..214b7d3052e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-non-replaced-width-012.xht.ini
@@ -0,0 +1,2 @@
+[float-non-replaced-width-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-004.xht.ini
new file mode 100644
index 00000000000..aac1cfe9d08
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-004.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-005.xht.ini
new file mode 100644
index 00000000000..330561fd2c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-005.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-006.xht.ini
new file mode 100644
index 00000000000..3e70d490bc2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-006.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-007.xht.ini
new file mode 100644
index 00000000000..0a4f4ed9433
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-height-007.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-height-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..00a2629e480
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-004.xht.ini
new file mode 100644
index 00000000000..3cd20e6c979
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-004.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-006.xht.ini
new file mode 100644
index 00000000000..f7a953c673c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-006.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-007.xht.ini
new file mode 100644
index 00000000000..fd211508655
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-007.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-008.xht.ini
new file mode 100644
index 00000000000..27f223f6499
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-008.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-009.xht.ini
new file mode 100644
index 00000000000..beeed8520f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-009.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-011.xht.ini
new file mode 100644
index 00000000000..bf876293d1c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/float-replaced-width-011.xht.ini
@@ -0,0 +1,2 @@
+[float-replaced-width-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-001.xht.ini
new file mode 100644
index 00000000000..d8f17a07194
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-002.xht.ini
new file mode 100644
index 00000000000..6c0961e88f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-002.xht.ini
@@ -0,0 +1,2 @@
+[floats-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-003.xht.ini
new file mode 100644
index 00000000000..4ea240af765
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-003.xht.ini
@@ -0,0 +1,2 @@
+[floats-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-004.xht.ini
new file mode 100644
index 00000000000..b1d5785a3d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-004.xht.ini
@@ -0,0 +1,2 @@
+[floats-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-005.xht.ini
new file mode 100644
index 00000000000..91e97fbdc18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-005.xht.ini
@@ -0,0 +1,2 @@
+[floats-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-006.xht.ini
new file mode 100644
index 00000000000..47dc37acc02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-006.xht.ini
@@ -0,0 +1,2 @@
+[floats-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-007.xht.ini
new file mode 100644
index 00000000000..c8d3156abcb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-007.xht.ini
@@ -0,0 +1,2 @@
+[floats-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-008.xht.ini
new file mode 100644
index 00000000000..b4997d88ab0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-008.xht.ini
@@ -0,0 +1,2 @@
+[floats-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-009.xht.ini
new file mode 100644
index 00000000000..cefc075835d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-009.xht.ini
@@ -0,0 +1,2 @@
+[floats-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-014.xht.ini
new file mode 100644
index 00000000000..aca5f79307f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-014.xht.ini
@@ -0,0 +1,2 @@
+[floats-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-015.xht.ini
new file mode 100644
index 00000000000..28785115836
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-015.xht.ini
@@ -0,0 +1,2 @@
+[floats-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-023.xht.ini
new file mode 100644
index 00000000000..d2970edef2e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-023.xht.ini
@@ -0,0 +1,2 @@
+[floats-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-024.xht.ini
new file mode 100644
index 00000000000..a35e3d8c551
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-024.xht.ini
@@ -0,0 +1,2 @@
+[floats-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-025.xht.ini
new file mode 100644
index 00000000000..d31574fc40a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-025.xht.ini
@@ -0,0 +1,2 @@
+[floats-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-026.xht.ini
new file mode 100644
index 00000000000..192e79f5e10
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-026.xht.ini
@@ -0,0 +1,2 @@
+[floats-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-027.xht.ini
new file mode 100644
index 00000000000..284c5e1dedf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-027.xht.ini
@@ -0,0 +1,2 @@
+[floats-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-028.xht.ini
new file mode 100644
index 00000000000..de3e7f49b02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-028.xht.ini
@@ -0,0 +1,2 @@
+[floats-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-029.xht.ini
new file mode 100644
index 00000000000..9504f87030e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-029.xht.ini
@@ -0,0 +1,2 @@
+[floats-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-030.xht.ini
new file mode 100644
index 00000000000..cbf0e798445
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-030.xht.ini
@@ -0,0 +1,2 @@
+[floats-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-031.xht.ini
new file mode 100644
index 00000000000..5e99ba0d928
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-031.xht.ini
@@ -0,0 +1,2 @@
+[floats-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-036.xht.ini
new file mode 100644
index 00000000000..19883af9da0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-036.xht.ini
@@ -0,0 +1,2 @@
+[floats-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-038.xht.ini
new file mode 100644
index 00000000000..3f5d086821f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-038.xht.ini
@@ -0,0 +1,2 @@
+[floats-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-039.xht.ini
new file mode 100644
index 00000000000..d99141cd3b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-039.xht.ini
@@ -0,0 +1,2 @@
+[floats-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-040.xht.ini
new file mode 100644
index 00000000000..1ec5e6a0d67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-040.xht.ini
@@ -0,0 +1,2 @@
+[floats-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-041.xht.ini
new file mode 100644
index 00000000000..b21db4dcaa7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-041.xht.ini
@@ -0,0 +1,2 @@
+[floats-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-043.xht.ini
new file mode 100644
index 00000000000..d53c0472c86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-043.xht.ini
@@ -0,0 +1,2 @@
+[floats-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-101.xht.ini
new file mode 100644
index 00000000000..5af3d5999fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-101.xht.ini
@@ -0,0 +1,2 @@
+[floats-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-114.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-114.xht.ini
new file mode 100644
index 00000000000..da73e8b2f7c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-114.xht.ini
@@ -0,0 +1,2 @@
+[floats-114.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-119.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-119.xht.ini
new file mode 100644
index 00000000000..59e958ba061
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-119.xht.ini
@@ -0,0 +1,2 @@
+[floats-119.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-120.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-120.xht.ini
new file mode 100644
index 00000000000..ffa3032e124
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-120.xht.ini
@@ -0,0 +1,2 @@
+[floats-120.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-121.xht.ini
new file mode 100644
index 00000000000..a446bc1d86e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-121.xht.ini
@@ -0,0 +1,2 @@
+[floats-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-122.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-122.xht.ini
new file mode 100644
index 00000000000..734b7f158e0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-122.xht.ini
@@ -0,0 +1,2 @@
+[floats-122.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-123.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-123.xht.ini
new file mode 100644
index 00000000000..d8a11c28602
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-123.xht.ini
@@ -0,0 +1,2 @@
+[floats-123.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-124.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-124.xht.ini
new file mode 100644
index 00000000000..46362d6c5d4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-124.xht.ini
@@ -0,0 +1,2 @@
+[floats-124.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-125.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-125.xht.ini
new file mode 100644
index 00000000000..111c9432fc5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-125.xht.ini
@@ -0,0 +1,2 @@
+[floats-125.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-133.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-133.xht.ini
new file mode 100644
index 00000000000..5cbc1af2f74
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-133.xht.ini
@@ -0,0 +1,2 @@
+[floats-133.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-134.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-134.xht.ini
new file mode 100644
index 00000000000..b20ed58b203
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-134.xht.ini
@@ -0,0 +1,2 @@
+[floats-134.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-135.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-135.xht.ini
new file mode 100644
index 00000000000..13e9f34b789
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-135.xht.ini
@@ -0,0 +1,2 @@
+[floats-135.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-136.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-136.xht.ini
new file mode 100644
index 00000000000..d86de2628af
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-136.xht.ini
@@ -0,0 +1,2 @@
+[floats-136.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-141.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-141.xht.ini
new file mode 100644
index 00000000000..0ad11b3c5cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-141.xht.ini
@@ -0,0 +1,2 @@
+[floats-141.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-142.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-142.xht.ini
new file mode 100644
index 00000000000..ebb2f04de43
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-142.xht.ini
@@ -0,0 +1,2 @@
+[floats-142.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-143.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-143.xht.ini
new file mode 100644
index 00000000000..3d2affc437d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-143.xht.ini
@@ -0,0 +1,2 @@
+[floats-143.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-144.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-144.xht.ini
new file mode 100644
index 00000000000..d41b1141704
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-144.xht.ini
@@ -0,0 +1,2 @@
+[floats-144.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-145.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-145.xht.ini
new file mode 100644
index 00000000000..bca94510418
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-145.xht.ini
@@ -0,0 +1,2 @@
+[floats-145.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-146.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-146.xht.ini
new file mode 100644
index 00000000000..447aaf2c7f1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-146.xht.ini
@@ -0,0 +1,2 @@
+[floats-146.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-147.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-147.xht.ini
new file mode 100644
index 00000000000..fc980a2963e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-147.xht.ini
@@ -0,0 +1,2 @@
+[floats-147.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-149.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-149.xht.ini
new file mode 100644
index 00000000000..35a14c84578
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-149.xht.ini
@@ -0,0 +1,2 @@
+[floats-149.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-150.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-150.xht.ini
new file mode 100644
index 00000000000..95a27c32e52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-150.xht.ini
@@ -0,0 +1,2 @@
+[floats-150.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-152.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-152.xht.ini
new file mode 100644
index 00000000000..700ce2ace6c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-152.xht.ini
@@ -0,0 +1,2 @@
+[floats-152.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-153.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-153.xht.ini
new file mode 100644
index 00000000000..8feb591dc7d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-153.xht.ini
@@ -0,0 +1,2 @@
+[floats-153.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-154.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-154.xht.ini
new file mode 100644
index 00000000000..b79217cfa4c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-154.xht.ini
@@ -0,0 +1,2 @@
+[floats-154.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-bfc-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-bfc-002.xht.ini
new file mode 100644
index 00000000000..4c5d30ada12
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/floats-bfc-002.xht.ini
@@ -0,0 +1,2 @@
+[floats-bfc-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-023.xht.ini
new file mode 100644
index 00000000000..7ab6857b82e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-023.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-033.xht.ini
new file mode 100644
index 00000000000..1023cc94695
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-033.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-034.xht.ini
new file mode 100644
index 00000000000..818ff0893c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-034.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-035.xht.ini
new file mode 100644
index 00000000000..fc29e78ad3a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-035.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-121.xht.ini
new file mode 100644
index 00000000000..f1e68a4be7e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-121.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-122.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-122.xht.ini
new file mode 100644
index 00000000000..81ac29924de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-122.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-122.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-123.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-123.xht.ini
new file mode 100644
index 00000000000..802a8c9816d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-123.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-123.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-125.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-125.xht.ini
new file mode 100644
index 00000000000..be291ef3dc6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-125.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-125.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-134.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-134.xht.ini
new file mode 100644
index 00000000000..7fe7b88bc19
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-134.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-134.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-142.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-142.xht.ini
new file mode 100644
index 00000000000..52f22af56dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-142.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-142.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-157.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-157.xht.ini
new file mode 100644
index 00000000000..e1ee7731d42
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-157.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-157.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-158.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-158.xht.ini
new file mode 100644
index 00000000000..4f795b540fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-158.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-158.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-165.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-165.xht.ini
new file mode 100644
index 00000000000..4591f167f7e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-165.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-165.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-166.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-166.xht.ini
new file mode 100644
index 00000000000..65dcb5d674c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-166.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-166.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-002.xht.ini
new file mode 100644
index 00000000000..6075bd37d24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-003.xht.ini
new file mode 100644
index 00000000000..7eb2df27d4b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-008.xht.ini
new file mode 100644
index 00000000000..d2c5dc6d2ac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-008.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-009.xht.ini
new file mode 100644
index 00000000000..30359303df0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-009.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-012.xht.ini
new file mode 100644
index 00000000000..a14c5dc9d93
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-012.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-013.xht.ini
new file mode 100644
index 00000000000..cf23903e90b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-013.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-014.xht.ini
new file mode 100644
index 00000000000..dd7fa632e42
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-014.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-015.xht.ini
new file mode 100644
index 00000000000..e228a3fcfa4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/margin-collapse-clear-015.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-clear-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html.ini
new file mode 100644
index 00000000000..1d5b877b2ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-adjoining-float.html.ini
@@ -0,0 +1,2 @@
+[negative-clearance-after-adjoining-float.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html.ini
new file mode 100644
index 00000000000..85b954771e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/negative-clearance-after-bottom-margin.html.ini
@@ -0,0 +1,2 @@
+[negative-clearance-after-bottom-margin.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/nested-clearance-new-formatting-context.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/nested-clearance-new-formatting-context.html.ini
new file mode 100644
index 00000000000..082ea2659a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/nested-clearance-new-formatting-context.html.ini
@@ -0,0 +1,2 @@
+[nested-clearance-new-formatting-context.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html.ini
new file mode 100644
index 00000000000..d4a609c9975
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/no-clearance-due-to-large-margin-after-left-right.html.ini
@@ -0,0 +1,2 @@
+[no-clearance-due-to-large-margin-after-left-right.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini
new file mode 100644
index 00000000000..70784ff0b07
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/remove-block-before-self-collapsing-sibling-with-clearance.html.ini
@@ -0,0 +1,2 @@
+[remove-block-before-self-collapsing-sibling-with-clearance.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html.ini
new file mode 100644
index 00000000000..6ad7741c4ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block-after-margin.html.ini
@@ -0,0 +1,2 @@
+[second-float-inside-empty-cleared-block-after-margin.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html.ini
new file mode 100644
index 00000000000..7797a77875a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats-clear/second-float-inside-empty-cleared-block.html.ini
@@ -0,0 +1,2 @@
+[second-float-inside-empty-cleared-block.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/adjoining-floats-dynamic.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/adjoining-floats-dynamic.html.ini
new file mode 100644
index 00000000000..809b24d7d12
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/adjoining-floats-dynamic.html.ini
@@ -0,0 +1,2 @@
+[adjoining-floats-dynamic.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/computed-float-position-absolute.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/computed-float-position-absolute.html.ini
new file mode 100644
index 00000000000..1d641a0d80c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/computed-float-position-absolute.html.ini
@@ -0,0 +1,4 @@
+[computed-float-position-absolute.html]
+ [The computed value of float with absolute positioning when there is no box should be "none"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-1.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-1.html.ini
new file mode 100644
index 00000000000..fb33bc321dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-1.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-1.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-2.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-2.html.ini
new file mode 100644
index 00000000000..7d7dc81b6bd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-2.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-2.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3-ref.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3-ref.html.ini
new file mode 100644
index 00000000000..6d647b8e949
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3-ref.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-3-ref.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3.html.ini
new file mode 100644
index 00000000000..36f0336a409
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-3.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-3.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-5.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-5.html.ini
new file mode 100644
index 00000000000..1fee92769c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-5.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-5.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-7.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-7.html.ini
new file mode 100644
index 00000000000..d3a5d2cbe02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-7.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-7.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-8.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-8.html.ini
new file mode 100644
index 00000000000..8e07c478055
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-8.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-8.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-9.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-9.html.ini
new file mode 100644
index 00000000000..8eab0f65aff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/float-nowrap-9.html.ini
@@ -0,0 +1,2 @@
+[float-nowrap-9.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floated-table-wider-than-specified.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floated-table-wider-than-specified.html.ini
new file mode 100644
index 00000000000..ffd8cc51603
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floated-table-wider-than-specified.html.ini
@@ -0,0 +1,2 @@
+[floated-table-wider-than-specified.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-line-wrap-shifted-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-line-wrap-shifted-001.html.ini
new file mode 100644
index 00000000000..9c0516e3f69
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-line-wrap-shifted-001.html.ini
@@ -0,0 +1,2 @@
+[floats-line-wrap-shifted-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-001.html.ini
new file mode 100644
index 00000000000..17aa43d18b1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-001.html.ini
@@ -0,0 +1,2 @@
+[floats-placement-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-002.html.ini
new file mode 100644
index 00000000000..4e00856c08e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-002.html.ini
@@ -0,0 +1,2 @@
+[floats-placement-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-003.html.ini
new file mode 100644
index 00000000000..90225d8f4d4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-003.html.ini
@@ -0,0 +1,2 @@
+[floats-placement-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref.xht.ini
new file mode 100644
index 00000000000..ba5aaad0e27
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref.xht.ini
@@ -0,0 +1,2 @@
+[floats-placement-vertical-004-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref2.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref2.xht.ini
new file mode 100644
index 00000000000..a8de1d74f67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-placement-vertical-004-ref2.xht.ini
@@ -0,0 +1,2 @@
+[floats-placement-vertical-004-ref2.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-001.xht.ini
new file mode 100644
index 00000000000..f919d0205c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-rule3-outside-left-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-002.xht.ini
new file mode 100644
index 00000000000..5a03f09f440
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-left-002.xht.ini
@@ -0,0 +1,2 @@
+[floats-rule3-outside-left-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-001.xht.ini
new file mode 100644
index 00000000000..fdbae1835ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-rule3-outside-right-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-002.xht.ini
new file mode 100644
index 00000000000..cbad66d3a8f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule3-outside-right-002.xht.ini
@@ -0,0 +1,2 @@
+[floats-rule3-outside-right-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-left-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-left-001.xht.ini
new file mode 100644
index 00000000000..8ed9f3c1a48
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-left-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-rule7-outside-left-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-right-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-right-001.xht.ini
new file mode 100644
index 00000000000..0a1b241c746
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-rule7-outside-right-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-rule7-outside-right-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-overflow.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-overflow.xht.ini
new file mode 100644
index 00000000000..314fa8e8e0c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-overflow.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-001-left-overflow.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini
new file mode 100644
index 00000000000..e61b4e4cfe3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-left-table.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-001-left-table.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht.ini
new file mode 100644
index 00000000000..4c8de949e67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-overflow.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-001-right-overflow.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini
new file mode 100644
index 00000000000..157f5bb668a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-001-right-table.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-001-right-table.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-overflow.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-overflow.xht.ini
new file mode 100644
index 00000000000..3d2a6534df8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-overflow.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-002-left-overflow.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-table.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-table.xht.ini
new file mode 100644
index 00000000000..771cfb41ba9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-left-table.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-002-left-table.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-overflow.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-overflow.xht.ini
new file mode 100644
index 00000000000..fd6b5e9519a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-overflow.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-002-right-overflow.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-table.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-table.xht.ini
new file mode 100644
index 00000000000..0c8e8794d4f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-002-right-table.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-002-right-table.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-overflow.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-overflow.xht.ini
new file mode 100644
index 00000000000..74508343c78
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-overflow.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-003-left-overflow.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini
new file mode 100644
index 00000000000..8826cebd320
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-left-table.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-003-left-table.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-overflow.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-overflow.xht.ini
new file mode 100644
index 00000000000..840e7c1cd09
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-overflow.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-003-right-overflow.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini
new file mode 100644
index 00000000000..bf06e6df552
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-003-right-table.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-003-right-table.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-004.xht.ini
new file mode 100644
index 00000000000..c06faa31617
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-004.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-005.xht.ini
new file mode 100644
index 00000000000..c5c4499fdf7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-005.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-006.xht.ini
new file mode 100644
index 00000000000..382770ac676
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-006.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-007.xht.ini
new file mode 100644
index 00000000000..146ebbfab35
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-007.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-outside-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-outside-001.xht.ini
new file mode 100644
index 00000000000..4b1faaafa76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-bfc-outside-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-bfc-outside-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht.ini
new file mode 100644
index 00000000000..910179d39ef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001l.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-bfc-001l.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht.ini
new file mode 100644
index 00000000000..342d39e4fdf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-001r.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-bfc-001r.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht.ini
new file mode 100644
index 00000000000..09455763471
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002l.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-bfc-002l.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002r.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002r.xht.ini
new file mode 100644
index 00000000000..6932dd5c0d7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-002r.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-bfc-002r.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003l.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003l.xht.ini
new file mode 100644
index 00000000000..e89f60e6c3b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003l.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-bfc-003l.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003r.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003r.xht.ini
new file mode 100644
index 00000000000..c8d275af695
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-bfc-003r.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-bfc-003r.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001l.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001l.xht.ini
new file mode 100644
index 00000000000..b4ab9ddd38f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001l.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-inline-001l.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001r.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001r.xht.ini
new file mode 100644
index 00000000000..97f7fc78be1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-001r.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-inline-001r.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht.ini
new file mode 100644
index 00000000000..be450797a78
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002l.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-inline-002l.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002r.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002r.xht.ini
new file mode 100644
index 00000000000..0c8f507eef4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-002r.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-inline-002r.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003l.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003l.xht.ini
new file mode 100644
index 00000000000..cd2871f4a7b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003l.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-inline-003l.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht.ini
new file mode 100644
index 00000000000..9a3a6629453
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-wrap-top-below-inline-003r.xht.ini
@@ -0,0 +1,2 @@
+[floats-wrap-top-below-inline-003r.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-001.xht.ini
new file mode 100644
index 00000000000..a995fbe1b24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-001.xht.ini
@@ -0,0 +1,2 @@
+[floats-zero-height-wrap-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-002.xht.ini
new file mode 100644
index 00000000000..81040b92e3d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/floats-zero-height-wrap-002.xht.ini
@@ -0,0 +1,2 @@
+[floats-zero-height-wrap-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-001.html.ini
new file mode 100644
index 00000000000..5e3f2d998e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-001.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-001.html]
+ [hit-test-floats-001]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
index f64b45fea6b..f64b45fea6b 100644
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
new file mode 100644
index 00000000000..f29da48a2a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-003.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-003.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini
index 4bfb0c2053a..4bfb0c2053a 100644
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
index baa9f1a7541..baa9f1a7541 100644
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/intrinsic-size-float-and-line.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/intrinsic-size-float-and-line.html.ini
new file mode 100644
index 00000000000..1ceb10406aa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/intrinsic-size-float-and-line.html.ini
@@ -0,0 +1,2 @@
+[intrinsic-size-float-and-line.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/negative-margin-float-positioning.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/negative-margin-float-positioning.html.ini
new file mode 100644
index 00000000000..fdf1350fbbf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/negative-margin-float-positioning.html.ini
@@ -0,0 +1,2 @@
+[negative-margin-float-positioning.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float-2.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float-2.html.ini
new file mode 100644
index 00000000000..068736c5062
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float-2.html.ini
@@ -0,0 +1,2 @@
+[new-fc-beside-adjoining-float-2.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float.html.ini
new file mode 100644
index 00000000000..042b5c8181a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-adjoining-float.html.ini
@@ -0,0 +1,2 @@
+[new-fc-beside-adjoining-float.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin-rtl.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin-rtl.html.ini
new file mode 100644
index 00000000000..ad46fa14832
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin-rtl.html.ini
@@ -0,0 +1,2 @@
+[new-fc-beside-float-with-margin-rtl.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin.html.ini
new file mode 100644
index 00000000000..bc826f00b21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-beside-float-with-margin.html.ini
@@ -0,0 +1,2 @@
+[new-fc-beside-float-with-margin.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-relayout.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-relayout.html.ini
new file mode 100644
index 00000000000..52f35974f9e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-relayout.html.ini
@@ -0,0 +1,2 @@
+[new-fc-relayout.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-2.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-2.html.ini
new file mode 100644
index 00000000000..e48bc64ad5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-2.html.ini
@@ -0,0 +1,2 @@
+[new-fc-separates-from-float-2.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-3.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-3.html.ini
new file mode 100644
index 00000000000..2ad67d928d1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float-3.html.ini
@@ -0,0 +1,2 @@
+[new-fc-separates-from-float-3.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float.html.ini
new file mode 100644
index 00000000000..75f0028b81a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/new-fc-separates-from-float.html.ini
@@ -0,0 +1,2 @@
+[new-fc-separates-from-float.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/remove-block-between-inline-and-float.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/remove-block-between-inline-and-float.html.ini
new file mode 100644
index 00000000000..5ef5e72a276
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/remove-block-between-inline-and-float.html.ini
@@ -0,0 +1,2 @@
+[remove-block-between-inline-and-float.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-001.html.ini
new file mode 100644
index 00000000000..61edb2a3aae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-001.html.ini
@@ -0,0 +1,4 @@
+[zero-space-between-floats-001.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-002.html.ini
new file mode 100644
index 00000000000..c8f71dcb774
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-002.html.ini
@@ -0,0 +1,4 @@
+[zero-space-between-floats-002.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-003.html.ini
new file mode 100644
index 00000000000..c2b1cfb9968
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-003.html.ini
@@ -0,0 +1,4 @@
+[zero-space-between-floats-003.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-004.html.ini
new file mode 100644
index 00000000000..5f0960d8f0a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-space-between-floats-004.html.ini
@@ -0,0 +1,4 @@
+[zero-space-between-floats-004.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats-positioning.tentative.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats-positioning.tentative.html.ini
new file mode 100644
index 00000000000..a0b8fea8d2d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats-positioning.tentative.html.ini
@@ -0,0 +1,2 @@
+[zero-width-floats-positioning.tentative.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats.html.ini
new file mode 100644
index 00000000000..e20b1a193ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/zero-width-floats.html.ini
@@ -0,0 +1,2 @@
+[zero-width-floats.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-003.xht.ini
new file mode 100644
index 00000000000..f80998b6aeb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-003.xht.ini
@@ -0,0 +1,2 @@
+[font-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-011.xht.ini
new file mode 100644
index 00000000000..7abdcb91819
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-011.xht.ini
@@ -0,0 +1,2 @@
+[font-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-012.xht.ini
new file mode 100644
index 00000000000..a4aa0b83816
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-012.xht.ini
@@ -0,0 +1,2 @@
+[font-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-013.xht.ini
new file mode 100644
index 00000000000..a06399a3ee9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-013.xht.ini
@@ -0,0 +1,2 @@
+[font-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-014.xht.ini
new file mode 100644
index 00000000000..d472c7ee518
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-014.xht.ini
@@ -0,0 +1,2 @@
+[font-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-015.xht.ini
new file mode 100644
index 00000000000..ff0533a7e45
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-015.xht.ini
@@ -0,0 +1,2 @@
+[font-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-016.xht.ini
new file mode 100644
index 00000000000..ac11dbcebdd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-016.xht.ini
@@ -0,0 +1,2 @@
+[font-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-029.xht.ini
new file mode 100644
index 00000000000..a20cbf59132
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-029.xht.ini
@@ -0,0 +1,2 @@
+[font-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-030.xht.ini
new file mode 100644
index 00000000000..72b62288340
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-030.xht.ini
@@ -0,0 +1,2 @@
+[font-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-031.xht.ini
new file mode 100644
index 00000000000..45da1e224a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-031.xht.ini
@@ -0,0 +1,2 @@
+[font-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-032.xht.ini
new file mode 100644
index 00000000000..debc1de3dfc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-032.xht.ini
@@ -0,0 +1,2 @@
+[font-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-042.xht.ini
new file mode 100644
index 00000000000..f4e7a4af594
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-042.xht.ini
@@ -0,0 +1,2 @@
+[font-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-043.xht.ini
new file mode 100644
index 00000000000..5c7c4b39f20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-043.xht.ini
@@ -0,0 +1,2 @@
+[font-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-applies-to-017.xht.ini
new file mode 100644
index 00000000000..c0f90207419
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[font-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-013.xht.ini
new file mode 100644
index 00000000000..3dae1898579
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-013.xht.ini
@@ -0,0 +1,2 @@
+[font-family-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-001.xht.ini
new file mode 100644
index 00000000000..ff54759ce6f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-002.xht.ini
new file mode 100644
index 00000000000..c59ba0e1d2f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-005.xht.ini
new file mode 100644
index 00000000000..5b57f05a0ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-006.xht.ini
new file mode 100644
index 00000000000..c855c02bc18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-007.xht.ini
new file mode 100644
index 00000000000..71dfa42f1e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-008.xht.ini
new file mode 100644
index 00000000000..d6437aa3b1a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-009.xht.ini
new file mode 100644
index 00000000000..0fcbccf011b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-010.xht.ini
new file mode 100644
index 00000000000..b720ea63dea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-010.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-011.xht.ini
new file mode 100644
index 00000000000..4bb433d2f5c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-011.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-014.xht.ini
new file mode 100644
index 00000000000..47e57f1b934
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-015.xht.ini
new file mode 100644
index 00000000000..686ffd224a8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-017.xht.ini
new file mode 100644
index 00000000000..10704ef1cd1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-family-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[font-family-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-121.xht.ini
new file mode 100644
index 00000000000..baf31b1c686
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-121.xht.ini
@@ -0,0 +1,2 @@
+[font-size-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-122.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-122.xht.ini
new file mode 100644
index 00000000000..6c4543a3f0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-122.xht.ini
@@ -0,0 +1,2 @@
+[font-size-122.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-124.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-124.xht.ini
new file mode 100644
index 00000000000..77bca2b8835
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-size-124.xht.ini
@@ -0,0 +1,2 @@
+[font-size-124.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-variant-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-variant-applies-to-017.xht.ini
new file mode 100644
index 00000000000..5521edeebd8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-variant-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[font-variant-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-weight-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-weight-applies-to-017.xht.ini
new file mode 100644
index 00000000000..0f12373a202
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/font-weight-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[font-weight-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/fonts/fonts-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/fonts-013.xht.ini
new file mode 100644
index 00000000000..15802c89aa7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/fonts/fonts-013.xht.ini
@@ -0,0 +1,2 @@
+[fonts-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-100-percent-in-body.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-100-percent-in-body.html.ini
new file mode 100644
index 00000000000..5e05eda3a9b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-100-percent-in-body.html.ini
@@ -0,0 +1,2 @@
+[inline-svg-100-percent-in-body.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-1.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-1.html.ini
new file mode 100644
index 00000000000..bf88bddfd24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-1.html.ini
@@ -0,0 +1,2 @@
+[inline-svg-intrinsic-size-100-percent-1.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-2.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-2.html.ini
new file mode 100644
index 00000000000..2ad291343f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-intrinsic-size-100-percent-2.html.ini
@@ -0,0 +1,2 @@
+[inline-svg-intrinsic-size-100-percent-2.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-margin-padding-border.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-margin-padding-border.html.ini
new file mode 100644
index 00000000000..5a35ea39ae4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/inline-svg-margin-padding-border.html.ini
@@ -0,0 +1,2 @@
+[inline-svg-margin-padding-border.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/animations/line-height-interpolation.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/animations/line-height-interpolation.html.ini
new file mode 100644
index 00000000000..18cc6a5a0fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/animations/line-height-interpolation.html.ini
@@ -0,0 +1,334 @@
+[line-height-interpolation.html]
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (0.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (1) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (1.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (0.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (0.6) should be [10q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (1) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (1) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (0.6) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (-0.3) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (1) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (0) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (1.5) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (0.6) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (-0.3) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (-0.3) should be [7px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (0.3) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (0.3) should be [initial\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (1) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (0.3) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (0.3) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (-0.3) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (0) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (0.5) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [normal\] at (1) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (0.5) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (0.6) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (0.6) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (0) should be [4px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [normal\] at (0) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [normal\] at (0.3) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (0.6) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (1.5) should be [19\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (1.5) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (1) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (0.6) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (0) should be [30px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (0.3) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (0) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (1.5) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (0.6) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (1) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (0) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (1.5) should be [19px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (0.6) should be [24px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (0) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (-0.3) should be [1q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (-1) should be [40px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (0.6) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (0.5) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (1) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (1) should be [14q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (0.3) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (0.3) should be [13px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (-0.3) should be [initial\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (0) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (0.6) should be [24px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (1.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (-0.3) should be [33px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (-1) should be [0\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (1.5) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (0.3) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (0.6) should be [16px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (1) should be [14\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (0.6) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [normal\] at (-0.3) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [normal\] at (0.6) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (-0.3) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (-1) should be [40px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [normal\] at (1.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (-0.3) should be [1px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (-0.3) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (1.5) should be [19q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (0) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (1.5) should be [15px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [inherit\] to [20px\] at (0.3) should be [27px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (0.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (-0.3) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (1.5) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (0) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (0.3) should be [7q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [4\] at (-0.3) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (1) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (0.5) should be [20px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14px\] to [normal\] at (0.3) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (1.5) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (0.6) should be [10px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (-0.3) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (-0.3) should be [33px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (0.3) should be [27px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (0.3) should be [7\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [14q\] to [normal\] at (1) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (-0.3) should be [1\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (-1) should be [0px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [initial\] to [20px\] at (0) should be [initial\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14q\] at (0) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (0) should be [30px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (0) should be [10px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (1.5) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [unset\] to [20px\] at (1.5) should be [15px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (0.3) should be [7px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (0.5) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [4\] at (1) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (1) should be [normal\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14px\] at (1) should be [14px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (0) should be [4q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4q\] to [14q\] at (-1) should be [0q\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [14\] at (0.6) should be [10\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4px\] to [14px\] at (-1) should be [0px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [4\] to [normal\] at (0.3) should be [4\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from neutral to [20px\] at (1.5) should be [25px\]]
+ expected: FAIL
+
+ [Web Animations: property <line-height> from [normal\] to [14px\] at (0.5) should be [14px\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-001.xht.ini
new file mode 100644
index 00000000000..4ab0b2fcd90
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-001.xht.ini
@@ -0,0 +1,2 @@
+[border-padding-bleed-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-002.xht.ini
new file mode 100644
index 00000000000..2d5aac1e1be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-002.xht.ini
@@ -0,0 +1,2 @@
+[border-padding-bleed-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-003.xht.ini
new file mode 100644
index 00000000000..b282907315a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/border-padding-bleed-003.xht.ini
@@ -0,0 +1,2 @@
+[border-padding-bleed-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-002.xht.ini
new file mode 100644
index 00000000000..93544c1f3df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-002.xht.ini
@@ -0,0 +1,2 @@
+[empty-inline-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-003.xht.ini
new file mode 100644
index 00000000000..b1357a1d492
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/empty-inline-003.xht.ini
@@ -0,0 +1,2 @@
+[empty-inline-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-001.xht.ini
new file mode 100644
index 00000000000..5a48a949498
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-box-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-002.xht.ini
new file mode 100644
index 00000000000..4656c0cefa4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-box-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-box-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-002.xht.ini
new file mode 100644
index 00000000000..3b6420d558a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-003.xht.ini
new file mode 100644
index 00000000000..394620b9e26
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-004.xht.ini
new file mode 100644
index 00000000000..ecad8c49042
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-004.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-005.xht.ini
new file mode 100644
index 00000000000..75606e25449
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-005.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-006.xht.ini
new file mode 100644
index 00000000000..e98a1b582c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-006.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-007.xht.ini
new file mode 100644
index 00000000000..a59ef6cbc53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-007.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-009.xht.ini
new file mode 100644
index 00000000000..299d5cc5b93
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-009.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-011.xht.ini
new file mode 100644
index 00000000000..f27452eaed3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-011.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-012.xht.ini
new file mode 100644
index 00000000000..6c2be1ee817
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-012.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-013.xht.ini
new file mode 100644
index 00000000000..3b34552cd22
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-013.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-015.xht.ini
new file mode 100644
index 00000000000..c6c25310ef0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-015.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-022.xht.ini
new file mode 100644
index 00000000000..07d979165b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-022.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-023.xht.ini
new file mode 100644
index 00000000000..0cc7892a30f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-formatting-context-023.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
new file mode 100644
index 00000000000..a2abfbb3e90
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini
@@ -0,0 +1,40 @@
+[inline-negative-margin-001.html]
+ [[data-expected-height\] 1]
+ expected: FAIL
+
+ [[data-expected-height\] 10]
+ expected: FAIL
+
+ [[data-expected-height\] 3]
+ expected: FAIL
+
+ [[data-expected-height\] 2]
+ expected: FAIL
+
+ [[data-expected-height\] 5]
+ expected: FAIL
+
+ [[data-expected-height\] 4]
+ expected: FAIL
+
+ [[data-expected-height\] 7]
+ expected: FAIL
+
+ [[data-expected-height\] 6]
+ expected: FAIL
+
+ [[data-expected-height\] 9]
+ expected: FAIL
+
+ [[data-expected-height\] 8]
+ expected: FAIL
+
+ [[data-expected-height\] 13]
+ expected: FAIL
+
+ [[data-expected-height\] 12]
+ expected: FAIL
+
+ [[data-expected-height\] 11]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/leading-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/leading-001.xht.ini
new file mode 100644
index 00000000000..b97c2194b95
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/leading-001.xht.ini
@@ -0,0 +1,2 @@
+[leading-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-breaking-font-size-zero-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-breaking-font-size-zero-001.html.ini
new file mode 100644
index 00000000000..31057632027
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-breaking-font-size-zero-001.html.ini
@@ -0,0 +1,2 @@
+[line-breaking-font-size-zero-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-002.xht.ini
new file mode 100644
index 00000000000..ba1125acef3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-002.xht.ini
@@ -0,0 +1,2 @@
+[line-height-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-004.xht.ini
new file mode 100644
index 00000000000..bfb313a3eb2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-004.xht.ini
@@ -0,0 +1,2 @@
+[line-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-005.xht.ini
new file mode 100644
index 00000000000..3082f2a03b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-005.xht.ini
@@ -0,0 +1,2 @@
+[line-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-013.xht.ini
new file mode 100644
index 00000000000..11ae500d4b8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-013.xht.ini
@@ -0,0 +1,2 @@
+[line-height-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-015.xht.ini
new file mode 100644
index 00000000000..8dbe0ab41c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-015.xht.ini
@@ -0,0 +1,2 @@
+[line-height-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-016.xht.ini
new file mode 100644
index 00000000000..4df4f00f1f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-016.xht.ini
@@ -0,0 +1,2 @@
+[line-height-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-024.xht.ini
new file mode 100644
index 00000000000..3dff3c2e70b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-024.xht.ini
@@ -0,0 +1,2 @@
+[line-height-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-025.xht.ini
new file mode 100644
index 00000000000..b4fb00b079a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-025.xht.ini
@@ -0,0 +1,2 @@
+[line-height-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-026.xht.ini
new file mode 100644
index 00000000000..6292347d0f0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-026.xht.ini
@@ -0,0 +1,2 @@
+[line-height-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-027.xht.ini
new file mode 100644
index 00000000000..7238c2399fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-027.xht.ini
@@ -0,0 +1,2 @@
+[line-height-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-035.xht.ini
new file mode 100644
index 00000000000..8430acd1eb0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-035.xht.ini
@@ -0,0 +1,2 @@
+[line-height-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-037.xht.ini
new file mode 100644
index 00000000000..dde09e2b1dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-037.xht.ini
@@ -0,0 +1,2 @@
+[line-height-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-038.xht.ini
new file mode 100644
index 00000000000..b93feb025e4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-038.xht.ini
@@ -0,0 +1,2 @@
+[line-height-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-046.xht.ini
new file mode 100644
index 00000000000..27c38a623df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-046.xht.ini
@@ -0,0 +1,2 @@
+[line-height-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-048.xht.ini
new file mode 100644
index 00000000000..68fd0c4c9ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-048.xht.ini
@@ -0,0 +1,2 @@
+[line-height-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-049.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-049.xht.ini
new file mode 100644
index 00000000000..5ee7e54ff2e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-049.xht.ini
@@ -0,0 +1,2 @@
+[line-height-049.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-057.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-057.xht.ini
new file mode 100644
index 00000000000..ef4ebcc5df1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-057.xht.ini
@@ -0,0 +1,2 @@
+[line-height-057.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-059.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-059.xht.ini
new file mode 100644
index 00000000000..2facd7475bc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-059.xht.ini
@@ -0,0 +1,2 @@
+[line-height-059.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-060.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-060.xht.ini
new file mode 100644
index 00000000000..c51c03895da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-060.xht.ini
@@ -0,0 +1,2 @@
+[line-height-060.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-068.xht.ini
new file mode 100644
index 00000000000..d60331708ca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-068.xht.ini
@@ -0,0 +1,2 @@
+[line-height-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-070.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-070.xht.ini
new file mode 100644
index 00000000000..19b748a67bc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-070.xht.ini
@@ -0,0 +1,2 @@
+[line-height-070.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-071.xht.ini
new file mode 100644
index 00000000000..5a2a4920dda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-071.xht.ini
@@ -0,0 +1,2 @@
+[line-height-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-079.xht.ini
new file mode 100644
index 00000000000..e7591f7c907
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-079.xht.ini
@@ -0,0 +1,2 @@
+[line-height-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-080.xht.ini
new file mode 100644
index 00000000000..5b529a90290
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-080.xht.ini
@@ -0,0 +1,2 @@
+[line-height-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-081.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-081.xht.ini
new file mode 100644
index 00000000000..a9dfd6870d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-081.xht.ini
@@ -0,0 +1,2 @@
+[line-height-081.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-082.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-082.xht.ini
new file mode 100644
index 00000000000..b07b7af2fcf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-082.xht.ini
@@ -0,0 +1,2 @@
+[line-height-082.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-083.xht.ini
new file mode 100644
index 00000000000..517e54996bb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-083.xht.ini
@@ -0,0 +1,2 @@
+[line-height-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-084.xht.ini
new file mode 100644
index 00000000000..51d62b98c5c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-084.xht.ini
@@ -0,0 +1,2 @@
+[line-height-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-090.xht.ini
new file mode 100644
index 00000000000..47174f3762e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-090.xht.ini
@@ -0,0 +1,2 @@
+[line-height-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-092.xht.ini
new file mode 100644
index 00000000000..d5629030307
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-092.xht.ini
@@ -0,0 +1,2 @@
+[line-height-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-093.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-093.xht.ini
new file mode 100644
index 00000000000..8be0dd7696d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-093.xht.ini
@@ -0,0 +1,2 @@
+[line-height-093.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-101.xht.ini
new file mode 100644
index 00000000000..fa1dd89d8a6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-101.xht.ini
@@ -0,0 +1,2 @@
+[line-height-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-103.xht.ini
new file mode 100644
index 00000000000..2905d31e6a5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-103.xht.ini
@@ -0,0 +1,2 @@
+[line-height-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-104.xht.ini
new file mode 100644
index 00000000000..3dce5118547
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-104.xht.ini
@@ -0,0 +1,2 @@
+[line-height-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-125.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-125.xht.ini
new file mode 100644
index 00000000000..b978bdcc6ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-125.xht.ini
@@ -0,0 +1,2 @@
+[line-height-125.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-127.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-127.xht.ini
new file mode 100644
index 00000000000..1d15c049fd9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-127.xht.ini
@@ -0,0 +1,2 @@
+[line-height-127.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-128.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-128.xht.ini
new file mode 100644
index 00000000000..29d228868d7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-128.xht.ini
@@ -0,0 +1,2 @@
+[line-height-128.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-001.xht.ini
new file mode 100644
index 00000000000..484d84a7057
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-001.xht.ini
@@ -0,0 +1,2 @@
+[line-height-bleed-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-002.xht.ini
new file mode 100644
index 00000000000..aae00e116c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/line-height-bleed-002.xht.ini
@@ -0,0 +1,2 @@
+[line-height-bleed-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-007.xht.ini
new file mode 100644
index 00000000000..43b94766e1d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-007.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-008.xht.ini
new file mode 100644
index 00000000000..71d053e8e98
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-008.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-019.xht.ini
new file mode 100644
index 00000000000..6ada73338e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-019.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-020.xht.ini
new file mode 100644
index 00000000000..e8884674cd0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-020.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-031.xht.ini
new file mode 100644
index 00000000000..c5d1e86fe71
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-031.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-032.xht.ini
new file mode 100644
index 00000000000..cf86b9944d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-032.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-043.xht.ini
new file mode 100644
index 00000000000..34829fca549
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-043.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-044.xht.ini
new file mode 100644
index 00000000000..87e1afad9af
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-044.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-055.xht.ini
new file mode 100644
index 00000000000..f2f7769f047
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-055.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-056.xht.ini
new file mode 100644
index 00000000000..81a7e0785d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-056.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-067.xht.ini
new file mode 100644
index 00000000000..0f59e7abe4d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-067.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-068.xht.ini
new file mode 100644
index 00000000000..450e19adea5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-068.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-079.xht.ini
new file mode 100644
index 00000000000..3238aab5418
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-079.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-080.xht.ini
new file mode 100644
index 00000000000..408ed3a32f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-080.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-091.xht.ini
new file mode 100644
index 00000000000..6b7e6c35b6f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-091.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-092.xht.ini
new file mode 100644
index 00000000000..428934b84e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-092.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-103.xht.ini
new file mode 100644
index 00000000000..c8170adbf0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-103.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-104.xht.ini
new file mode 100644
index 00000000000..159fb06c9a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-104.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-117a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-117a.xht.ini
new file mode 100644
index 00000000000..922d2ce3278
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-117a.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-117a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-118a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-118a.xht.ini
new file mode 100644
index 00000000000..9923417564a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-118a.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-118a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-121.xht.ini
new file mode 100644
index 00000000000..961b73866f3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-121.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-007.xht.ini
new file mode 100644
index 00000000000..72f256482ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-008.xht.ini
new file mode 100644
index 00000000000..373ea8b995c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-003.xht.ini
new file mode 100644
index 00000000000..f100b74e713
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-003.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-baseline-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-004a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-004a.xht.ini
new file mode 100644
index 00000000000..6e3fdfcf722
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-004a.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-baseline-004a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-005a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-005a.xht.ini
new file mode 100644
index 00000000000..a6cec1bfc1f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-005a.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-baseline-005a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-008.xht.ini
new file mode 100644
index 00000000000..a233b1d6ca5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-baseline-008.xht.ini
@@ -0,0 +1,2 @@
+[vertical-align-baseline-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-negative-leading-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-negative-leading-001.html.ini
new file mode 100644
index 00000000000..ccf6f305a6a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-negative-leading-001.html.ini
@@ -0,0 +1,2 @@
+[vertical-align-negative-leading-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-001.html.ini
new file mode 100644
index 00000000000..ad08e344bf4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-001.html.ini
@@ -0,0 +1,2 @@
+[vertical-align-top-bottom-001.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-padding.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-padding.html.ini
new file mode 100644
index 00000000000..da6a05516c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/vertical-align-top-bottom-padding.html.ini
@@ -0,0 +1,2 @@
+[vertical-align-top-bottom-padding.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-005.xht.ini
new file mode 100644
index 00000000000..bc9a5a53208
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-005.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-006.xht.ini
new file mode 100644
index 00000000000..bbb10754caa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-006.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-007.xht.ini
new file mode 100644
index 00000000000..033d70ae046
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-007.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-008.xht.ini
new file mode 100644
index 00000000000..219a735559c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-008.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-009.xht.ini
new file mode 100644
index 00000000000..7ee8c81289e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-009.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-014.xht.ini
new file mode 100644
index 00000000000..fdca7a49aac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-014.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-018.xht.ini
new file mode 100644
index 00000000000..ee81e21c214
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-018.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-019.xht.ini
new file mode 100644
index 00000000000..40c70ff1992
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-019.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-020.xht.ini
new file mode 100644
index 00000000000..045d09d45dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-020.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-021.xht.ini
new file mode 100644
index 00000000000..6dfe151d837
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-021.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-022.xht.ini
new file mode 100644
index 00000000000..781da0eafcf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-022.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-027.xht.ini
new file mode 100644
index 00000000000..0b7b908b053
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-027.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-031.xht.ini
new file mode 100644
index 00000000000..f9d7c734fed
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-031.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-032.xht.ini
new file mode 100644
index 00000000000..44b2811941c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-032.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-033.xht.ini
new file mode 100644
index 00000000000..c078d670517
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-033.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-034.xht.ini
new file mode 100644
index 00000000000..5f6e645b6bd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-034.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-035.xht.ini
new file mode 100644
index 00000000000..0d3c4a2442c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-035.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-040.xht.ini
new file mode 100644
index 00000000000..6cfa87ad084
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-040.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-044.xht.ini
new file mode 100644
index 00000000000..37cab18fc8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-044.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-045.xht.ini
new file mode 100644
index 00000000000..a29d48ed338
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-045.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-046.xht.ini
new file mode 100644
index 00000000000..5fb7daeb000
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-046.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-047.xht.ini
new file mode 100644
index 00000000000..a80e474d31e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-047.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-047.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-048.xht.ini
new file mode 100644
index 00000000000..731f5fefb9a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-048.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-053.xht.ini
new file mode 100644
index 00000000000..0133ee3359c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-053.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-054.xht.ini
new file mode 100644
index 00000000000..9b7297a761b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-054.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-055.xht.ini
new file mode 100644
index 00000000000..bf8ddd5f2c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-055.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-001.xht.ini
new file mode 100644
index 00000000000..11d4abbc0e5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-002.xht.ini
new file mode 100644
index 00000000000..148ed7e9ae0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-003.xht.ini
new file mode 100644
index 00000000000..a4dc416e50b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-004.xht.ini
new file mode 100644
index 00000000000..373ac3e141b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-005.xht.ini
new file mode 100644
index 00000000000..fd0cd536059
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-006.xht.ini
new file mode 100644
index 00000000000..1488437345c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-007.xht.ini
new file mode 100644
index 00000000000..5441060ec32
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-008.xht.ini
new file mode 100644
index 00000000000..6b3b950839e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-009.xht.ini
new file mode 100644
index 00000000000..ef369703701
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-012.xht.ini
new file mode 100644
index 00000000000..4589c263479
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-013.xht.ini
new file mode 100644
index 00000000000..ee4cbef597d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-014.xht.ini
new file mode 100644
index 00000000000..f76e8eec88a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-015.xht.ini
new file mode 100644
index 00000000000..3276c0fbdb8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-visibility-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-visibility-001.xht.ini
new file mode 100644
index 00000000000..f87cf012fb4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-increment-visibility-001.xht.ini
@@ -0,0 +1,2 @@
+[counter-increment-visibility-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-005.xht.ini
new file mode 100644
index 00000000000..46bc248599c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-005.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-006.xht.ini
new file mode 100644
index 00000000000..94d0e570bd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-006.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-007.xht.ini
new file mode 100644
index 00000000000..83c93fd4382
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-007.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-008.xht.ini
new file mode 100644
index 00000000000..90e79f204d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-008.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-009.xht.ini
new file mode 100644
index 00000000000..2b9fb8678fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-009.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-014.xht.ini
new file mode 100644
index 00000000000..4d878570662
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-014.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-018.xht.ini
new file mode 100644
index 00000000000..3c218780679
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-018.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-019.xht.ini
new file mode 100644
index 00000000000..7f6cf9789f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-019.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-020.xht.ini
new file mode 100644
index 00000000000..aec04f39823
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-020.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-021.xht.ini
new file mode 100644
index 00000000000..83eb79e9a0c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-021.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-022.xht.ini
new file mode 100644
index 00000000000..3b1a339db64
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-022.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-027.xht.ini
new file mode 100644
index 00000000000..edfe2881af5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-027.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-031.xht.ini
new file mode 100644
index 00000000000..12f26eba1db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-031.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-032.xht.ini
new file mode 100644
index 00000000000..8b4f30e27bb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-032.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-033.xht.ini
new file mode 100644
index 00000000000..8b11dd3c498
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-033.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-034.xht.ini
new file mode 100644
index 00000000000..67733963851
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-034.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-035.xht.ini
new file mode 100644
index 00000000000..5481da96b03
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-035.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-040.xht.ini
new file mode 100644
index 00000000000..39d9aff605b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-040.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-044.xht.ini
new file mode 100644
index 00000000000..8d6b9ac0a66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-044.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-045.xht.ini
new file mode 100644
index 00000000000..d9f69af87f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-045.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-046.xht.ini
new file mode 100644
index 00000000000..32ea217c5d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-046.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-047.xht.ini
new file mode 100644
index 00000000000..4bd82b281f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-047.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-047.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-048.xht.ini
new file mode 100644
index 00000000000..65780974d0b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-048.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-055.xht.ini
new file mode 100644
index 00000000000..b0e8e7f7519
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-055.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-001.xht.ini
new file mode 100644
index 00000000000..0c780c7be66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-002.xht.ini
new file mode 100644
index 00000000000..6e16c06242f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-003.xht.ini
new file mode 100644
index 00000000000..f4d4757f0f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-004.xht.ini
new file mode 100644
index 00000000000..09b59397dea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-005.xht.ini
new file mode 100644
index 00000000000..63f02690914
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-006.xht.ini
new file mode 100644
index 00000000000..ad6177bca67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-007.xht.ini
new file mode 100644
index 00000000000..ba8e27065fe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-008.xht.ini
new file mode 100644
index 00000000000..4f2cb844051
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-009.xht.ini
new file mode 100644
index 00000000000..812467059be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-012.xht.ini
new file mode 100644
index 00000000000..b64c700f970
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-013.xht.ini
new file mode 100644
index 00000000000..9754a73f353
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-014.xht.ini
new file mode 100644
index 00000000000..c0d96ee2d59
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-015.xht.ini
new file mode 100644
index 00000000000..2bb25939460
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-increment-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-increment-002.xht.ini
new file mode 100644
index 00000000000..8bb5e32f71e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-increment-002.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-increment-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-visibility-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-visibility-001.xht.ini
new file mode 100644
index 00000000000..3979e0544d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/counter-reset-visibility-001.xht.ini
@@ -0,0 +1,2 @@
+[counter-reset-visibility-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/increment-counter-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/increment-counter-001.xht.ini
new file mode 100644
index 00000000000..e0245223869
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/increment-counter-001.xht.ini
@@ -0,0 +1,2 @@
+[increment-counter-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-image-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-image-005.xht.ini
new file mode 100644
index 00000000000..ef77b04fd86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-image-005.xht.ini
@@ -0,0 +1,2 @@
+[list-style-image-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-023.xht.ini
new file mode 100644
index 00000000000..f8965aa3864
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-023.xht.ini
@@ -0,0 +1,2 @@
+[list-style-position-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-024.xht.ini
new file mode 100644
index 00000000000..ad8cf2e7b92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/list-style-position-024.xht.ini
@@ -0,0 +1,2 @@
+[list-style-position-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/lists/reset-counter-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/lists/reset-counter-001.xht.ini
new file mode 100644
index 00000000000..d3018644562
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/lists/reset-counter-001.xht.ini
@@ -0,0 +1,2 @@
+[reset-counter-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-001.xht.ini
new file mode 100644
index 00000000000..4cf08c567d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-002.xht.ini
new file mode 100644
index 00000000000..8c17991d7c8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-003.xht.ini
new file mode 100644
index 00000000000..6080b9c840f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-004.xht.ini
new file mode 100644
index 00000000000..a43b5e21f60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-006.xht.ini
new file mode 100644
index 00000000000..d6bf449735e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-007.xht.ini
new file mode 100644
index 00000000000..e0af5c84828
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-008.xht.ini
new file mode 100644
index 00000000000..3be56462d10
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-008.xht.ini
@@ -0,0 +1,2 @@
+[margin-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-009.xht.ini
new file mode 100644
index 00000000000..2656e859766
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-009.xht.ini
@@ -0,0 +1,2 @@
+[margin-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-001.xht.ini
new file mode 100644
index 00000000000..8b7c6d455b1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-002.xht.ini
new file mode 100644
index 00000000000..6cb8efd8aa2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-003.xht.ini
new file mode 100644
index 00000000000..6b392634b0b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-004.xht.ini
new file mode 100644
index 00000000000..2214e178586
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-005.xht.ini
new file mode 100644
index 00000000000..1f297ac83ca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-006.xht.ini
new file mode 100644
index 00000000000..ca8961f1a9b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-007.xht.ini
new file mode 100644
index 00000000000..082b4dc617f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-009.xht.ini
new file mode 100644
index 00000000000..e3e185f72d7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-012.xht.ini
new file mode 100644
index 00000000000..162ed718db9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-013.xht.ini
new file mode 100644
index 00000000000..19cf7b55ad0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-014.xht.ini
new file mode 100644
index 00000000000..5d386a85a78
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-015.xht.ini
new file mode 100644
index 00000000000..3ae58568fa5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[margin-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-001.xht.ini
new file mode 100644
index 00000000000..af84eb67b2e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-border-padding-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-002.xht.ini
new file mode 100644
index 00000000000..77515949567
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-border-padding-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-003.xht.ini
new file mode 100644
index 00000000000..1ff33be86aa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-border-padding-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-border-padding-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini
new file mode 100644
index 00000000000..1e537ef8fd4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-091.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini
new file mode 100644
index 00000000000..dbed7a6477b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-092.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-103.xht.ini
new file mode 100644
index 00000000000..c1fdb44567d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-103.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-104.xht.ini
new file mode 100644
index 00000000000..2181525195a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-104.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-001.xht.ini
new file mode 100644
index 00000000000..8913b46eca7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-002.xht.ini
new file mode 100644
index 00000000000..ffc75bb213e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-003.xht.ini
new file mode 100644
index 00000000000..6227feea427
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-004.xht.ini
new file mode 100644
index 00000000000..fa92bb90208
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-005.xht.ini
new file mode 100644
index 00000000000..7b9d2f3fd65
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-006.xht.ini
new file mode 100644
index 00000000000..1b2f475ac4c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-007.xht.ini
new file mode 100644
index 00000000000..d85a39627e9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-008.xht.ini
new file mode 100644
index 00000000000..b27a13dcf4e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-012.xht.ini
new file mode 100644
index 00000000000..57dd01f987c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-013.xht.ini
new file mode 100644
index 00000000000..c154fc145d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-014.xht.ini
new file mode 100644
index 00000000000..653af406a1d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-015.xht.ini
new file mode 100644
index 00000000000..b56ad6555b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-bottom-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[margin-bottom-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-001.xht.ini
new file mode 100644
index 00000000000..5c53f1fd754
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-006.xht.ini
new file mode 100644
index 00000000000..3706bb99942
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-007.xht.ini
new file mode 100644
index 00000000000..3422b2ee707
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-009.xht.ini
new file mode 100644
index 00000000000..594d99bd5cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-009.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-014.xht.ini
new file mode 100644
index 00000000000..97881d480c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-014.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-016.xht.ini
new file mode 100644
index 00000000000..6b4b4a53ff0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-016.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-019.xht.ini
new file mode 100644
index 00000000000..90e327ac0d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-019.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-021.xht.ini
new file mode 100644
index 00000000000..481a50d36e5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-021.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-025.xht.ini
new file mode 100644
index 00000000000..41403961633
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-025.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-037.xht.ini
new file mode 100644
index 00000000000..049aa133c56
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-037.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-038.xht.ini
new file mode 100644
index 00000000000..4add9bf88f0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-038.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-039.xht.ini
new file mode 100644
index 00000000000..33542c4d5d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-039.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-040.xht.ini
new file mode 100644
index 00000000000..be2e1fbc2f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-040.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-041.xht.ini
new file mode 100644
index 00000000000..1ebdc37062d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-041.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-102.xht.ini
new file mode 100644
index 00000000000..77e842bd910
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-102.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-104.xht.ini
new file mode 100644
index 00000000000..05240ac99c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-104.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-106.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-106.xht.ini
new file mode 100644
index 00000000000..9188d50ea6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-106.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-106.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-110.xht.ini
new file mode 100644
index 00000000000..b3af74b5666
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-110.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-111.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-111.xht.ini
new file mode 100644
index 00000000000..636ec11f480
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-111.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-111.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-112.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-112.xht.ini
new file mode 100644
index 00000000000..61178e98b33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-112.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-112.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-113.xht.ini
new file mode 100644
index 00000000000..a3e959d9709
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-113.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-114.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-114.xht.ini
new file mode 100644
index 00000000000..c334a353624
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-114.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-114.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-115.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-115.xht.ini
new file mode 100644
index 00000000000..cdfc2087375
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-115.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-115.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-116.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-116.xht.ini
new file mode 100644
index 00000000000..b2d0bd0b4c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-116.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-116.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-131.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-131.xht.ini
new file mode 100644
index 00000000000..a1ad3419799
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-131.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-131.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-155.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-155.xht.ini
new file mode 100644
index 00000000000..3f548aca828
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-155.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-155.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-156.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-156.xht.ini
new file mode 100644
index 00000000000..9459ea32079
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-156.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-156.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-159.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-159.xht.ini
new file mode 100644
index 00000000000..070f98b303f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-159.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-159.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-min-height-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-min-height-001.xht.ini
new file mode 100644
index 00000000000..b2b41d98c21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-collapse-min-height-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-collapse-min-height-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-em-inherit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-em-inherit-001.xht.ini
new file mode 100644
index 00000000000..080f73f7e08
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-em-inherit-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-em-inherit-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-001.xht.ini
new file mode 100644
index 00000000000..39b7c344900
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-inline-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-002.xht.ini
new file mode 100644
index 00000000000..6fae1978ccf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-inline-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-inline-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-007.xht.ini
new file mode 100644
index 00000000000..67235ff61ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-008.xht.ini
new file mode 100644
index 00000000000..4ff9de18cd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-008.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-019.xht.ini
new file mode 100644
index 00000000000..266750a8948
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-019.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-020.xht.ini
new file mode 100644
index 00000000000..611eaffc5fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-020.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-031.xht.ini
new file mode 100644
index 00000000000..9c617de5a83
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-031.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-032.xht.ini
new file mode 100644
index 00000000000..b393d7b6628
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-032.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-043.xht.ini
new file mode 100644
index 00000000000..3014c295122
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-043.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-044.xht.ini
new file mode 100644
index 00000000000..ba36a23001c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-044.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-055.xht.ini
new file mode 100644
index 00000000000..cebfe38d6fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-055.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-056.xht.ini
new file mode 100644
index 00000000000..09628450a99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-056.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-067.xht.ini
new file mode 100644
index 00000000000..a82bc1f06f7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-067.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-068.xht.ini
new file mode 100644
index 00000000000..21b3df98ae8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-068.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-079.xht.ini
new file mode 100644
index 00000000000..46f9f9af2b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-079.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-080.xht.ini
new file mode 100644
index 00000000000..345bf36962c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-080.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-091.xht.ini
new file mode 100644
index 00000000000..c16d020993b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-091.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-092.xht.ini
new file mode 100644
index 00000000000..46878856d89
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-092.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-103.xht.ini
new file mode 100644
index 00000000000..afd74313e19
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-103.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-104.xht.ini
new file mode 100644
index 00000000000..d8fc37573c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-104.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-113.xht.ini
new file mode 100644
index 00000000000..1f8f59d3fe5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-113.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-009.xht.ini
new file mode 100644
index 00000000000..9efdec42bd7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-013.xht.ini
new file mode 100644
index 00000000000..1fec5ba7225
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-014.xht.ini
new file mode 100644
index 00000000000..1d8a1c16add
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-015.xht.ini
new file mode 100644
index 00000000000..bf5687e0786
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-left-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[margin-left-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-percentage-inherit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-percentage-inherit-001.xht.ini
new file mode 100644
index 00000000000..0da0530a458
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-percentage-inherit-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-percentage-inherit-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-004.xht.ini
new file mode 100644
index 00000000000..7a1e53412a9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-005.xht.ini
new file mode 100644
index 00000000000..8069814c4e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-005.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-006.xht.ini
new file mode 100644
index 00000000000..6df5258dc80
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-007.xht.ini
new file mode 100644
index 00000000000..92df59a061f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-016.xht.ini
new file mode 100644
index 00000000000..07370bc8140
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-016.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-017.xht.ini
new file mode 100644
index 00000000000..379749f53e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-017.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-018.xht.ini
new file mode 100644
index 00000000000..8f2fed4551a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-018.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-028.xht.ini
new file mode 100644
index 00000000000..45dca77c9d1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-028.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-029.xht.ini
new file mode 100644
index 00000000000..2f20b359ea7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-029.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-030.xht.ini
new file mode 100644
index 00000000000..340780bd716
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-030.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-040.xht.ini
new file mode 100644
index 00000000000..546e4d196b2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-040.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-041.xht.ini
new file mode 100644
index 00000000000..cf179026181
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-041.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-042.xht.ini
new file mode 100644
index 00000000000..1a92ab4c601
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-042.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-052.xht.ini
new file mode 100644
index 00000000000..8e2d7de69db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-052.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-053.xht.ini
new file mode 100644
index 00000000000..f782dac7f59
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-053.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-054.xht.ini
new file mode 100644
index 00000000000..a5f6b22cbd6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-054.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-064.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-064.xht.ini
new file mode 100644
index 00000000000..11fb5cf3d6f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-064.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-064.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-065.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-065.xht.ini
new file mode 100644
index 00000000000..e03ce9bbdfd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-065.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-065.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-066.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-066.xht.ini
new file mode 100644
index 00000000000..53aae08ae86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-066.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-066.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-076.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-076.xht.ini
new file mode 100644
index 00000000000..84a97c682f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-076.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-076.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-077.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-077.xht.ini
new file mode 100644
index 00000000000..b6c3eeed513
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-077.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-077.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-078.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-078.xht.ini
new file mode 100644
index 00000000000..e3627308d32
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-078.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-078.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-088.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-088.xht.ini
new file mode 100644
index 00000000000..529bbd42d35
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-088.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-088.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-089.xht.ini
new file mode 100644
index 00000000000..ee7a9e5f88b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-089.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-090.xht.ini
new file mode 100644
index 00000000000..5d344138fef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-090.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-091.xht.ini
new file mode 100644
index 00000000000..231beff30b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-091.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-092.xht.ini
new file mode 100644
index 00000000000..11532c1db95
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-092.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-100.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-100.xht.ini
new file mode 100644
index 00000000000..ab285bee736
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-100.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-100.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-101.xht.ini
new file mode 100644
index 00000000000..e4b570b5132
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-101.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-102.xht.ini
new file mode 100644
index 00000000000..6fdd642373f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-102.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-109.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-109.xht.ini
new file mode 100644
index 00000000000..c814c13837d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-109.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-109.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-110.xht.ini
new file mode 100644
index 00000000000..997363df3bc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-110.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-111.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-111.xht.ini
new file mode 100644
index 00000000000..4730c3a161c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-111.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-111.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-112.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-112.xht.ini
new file mode 100644
index 00000000000..ab10c5fef78
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-112.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-112.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-001.xht.ini
new file mode 100644
index 00000000000..6ad39416502
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-002.xht.ini
new file mode 100644
index 00000000000..f6bc084c264
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-003.xht.ini
new file mode 100644
index 00000000000..7698046eb1c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-004.xht.ini
new file mode 100644
index 00000000000..70415ec2d62
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-005.xht.ini
new file mode 100644
index 00000000000..b63dfc523bc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-006.xht.ini
new file mode 100644
index 00000000000..4cf7d031883
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-007.xht.ini
new file mode 100644
index 00000000000..6126f1381be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-009.xht.ini
new file mode 100644
index 00000000000..ed820db11cd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-012.xht.ini
new file mode 100644
index 00000000000..b98b4c70413
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-013.xht.ini
new file mode 100644
index 00000000000..95164bb539e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-014.xht.ini
new file mode 100644
index 00000000000..a7503323a33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-015.xht.ini
new file mode 100644
index 00000000000..d16a888aadc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-right-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[margin-right-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-001.xht.ini
new file mode 100644
index 00000000000..7f293ad1394
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-shorthand-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-002.xht.ini
new file mode 100644
index 00000000000..b02d90942f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-shorthand-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-003.xht.ini
new file mode 100644
index 00000000000..b0b6269b382
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-shorthand-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-004.xht.ini
new file mode 100644
index 00000000000..23aa69d98fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-shorthand-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-shorthand-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-091.xht.ini
new file mode 100644
index 00000000000..d8aade0b259
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-091.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-092.xht.ini
new file mode 100644
index 00000000000..c781f48f04c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-092.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-001.xht.ini
new file mode 100644
index 00000000000..d0156125d32
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-002.xht.ini
new file mode 100644
index 00000000000..04a5a4638de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-003.xht.ini
new file mode 100644
index 00000000000..361aa4b91da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-004.xht.ini
new file mode 100644
index 00000000000..bbd00accccf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-005.xht.ini
new file mode 100644
index 00000000000..cd063022217
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-006.xht.ini
new file mode 100644
index 00000000000..960026c3876
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-007.xht.ini
new file mode 100644
index 00000000000..33aaa723f76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-008.xht.ini
new file mode 100644
index 00000000000..707f5dad6a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/margin-top-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[margin-top-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-001.xht.ini
new file mode 100644
index 00000000000..eb40f327d75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-002.xht.ini
new file mode 100644
index 00000000000..e9e01b81d79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-001.xht.ini
new file mode 100644
index 00000000000..9ca58d712b8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-002.xht.ini
new file mode 100644
index 00000000000..ba45d28eae8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-003.xht.ini
new file mode 100644
index 00000000000..d6c303b2576
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-004.xht.ini
new file mode 100644
index 00000000000..6672d0ace35
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-005.xht.ini
new file mode 100644
index 00000000000..8fd7beb4d2d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-006.xht.ini
new file mode 100644
index 00000000000..3ef283fedfd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-009.xht.ini
new file mode 100644
index 00000000000..e93c47666d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-012.xht.ini
new file mode 100644
index 00000000000..6bc19b6ba7c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-015.xht.ini
new file mode 100644
index 00000000000..d8aa2ff7141
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini
new file mode 100644
index 00000000000..3daf153f463
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-080.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini
new file mode 100644
index 00000000000..778188b1571
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-083.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini
new file mode 100644
index 00000000000..d782803602b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-084.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-001.xht.ini
new file mode 100644
index 00000000000..4ac59cdee3f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-002.xht.ini
new file mode 100644
index 00000000000..84557a08731
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-003.xht.ini
new file mode 100644
index 00000000000..cb1e5087443
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-004.xht.ini
new file mode 100644
index 00000000000..1c967d8498e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-005.xht.ini
new file mode 100644
index 00000000000..7cae89f7273
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-006.xht.ini
new file mode 100644
index 00000000000..0467dee9016
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-007.xht.ini
new file mode 100644
index 00000000000..6aebdc4577e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-bottom-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[padding-bottom-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-em-inherit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-em-inherit-001.xht.ini
new file mode 100644
index 00000000000..e079df4ec17
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-em-inherit-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-em-inherit-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-003.xht.ini
new file mode 100644
index 00000000000..3cd69228193
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-006.xht.ini
new file mode 100644
index 00000000000..66d7737cfe4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-006.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-007.xht.ini
new file mode 100644
index 00000000000..01ce5e8f033
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-007.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-017.xht.ini
new file mode 100644
index 00000000000..94d5994599f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-017.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-018.xht.ini
new file mode 100644
index 00000000000..5cf655777e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-018.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-025.xht.ini
new file mode 100644
index 00000000000..0b2ad25734a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-025.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-028.xht.ini
new file mode 100644
index 00000000000..bbee9ba8567
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-028.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-029.xht.ini
new file mode 100644
index 00000000000..1e1581db0ef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-029.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-039.xht.ini
new file mode 100644
index 00000000000..e60d676a423
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-039.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-040.xht.ini
new file mode 100644
index 00000000000..8dc9566a48f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-040.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-050.xht.ini
new file mode 100644
index 00000000000..f6e6072554d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-050.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-051.xht.ini
new file mode 100644
index 00000000000..9712b0ae0d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-051.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-058.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-058.xht.ini
new file mode 100644
index 00000000000..9df7e20b71b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-058.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-058.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-061.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-061.xht.ini
new file mode 100644
index 00000000000..b8856a59225
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-061.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-061.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-062.xht.ini
new file mode 100644
index 00000000000..6d8bcbe5bcd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-062.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-069.xht.ini
new file mode 100644
index 00000000000..188200f5ad8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-069.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-072.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-072.xht.ini
new file mode 100644
index 00000000000..5e38b9129e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-072.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-072.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-073.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-073.xht.ini
new file mode 100644
index 00000000000..182835675c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-073.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-073.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-080.xht.ini
new file mode 100644
index 00000000000..93913daabe6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-080.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-083.xht.ini
new file mode 100644
index 00000000000..098beeb1db6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-083.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-084.xht.ini
new file mode 100644
index 00000000000..da08fdf0727
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-084.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-091.xht.ini
new file mode 100644
index 00000000000..6b13c790690
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-091.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-094.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-094.xht.ini
new file mode 100644
index 00000000000..a092904b50d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-094.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-094.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-095.xht.ini
new file mode 100644
index 00000000000..4345ee2a147
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-095.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-103.xht.ini
new file mode 100644
index 00000000000..a01248ffacf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-103.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-001.xht.ini
new file mode 100644
index 00000000000..af281008925
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-002.xht.ini
new file mode 100644
index 00000000000..42f73886230
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-003.xht.ini
new file mode 100644
index 00000000000..6cd0499a9f7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-004.xht.ini
new file mode 100644
index 00000000000..43350a4a691
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-008.xht.ini
new file mode 100644
index 00000000000..8e9cce132d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-left-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[padding-left-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini
new file mode 100644
index 00000000000..f3c8ca13fcc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-percentage-inherit-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-percentage-inherit-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-001.xht.ini
new file mode 100644
index 00000000000..1eae6f07588
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-002.xht.ini
new file mode 100644
index 00000000000..b38c24b1ea7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-003.xht.ini
new file mode 100644
index 00000000000..a3e9982ccc2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-004.xht.ini
new file mode 100644
index 00000000000..95eb763f829
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-004.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-005.xht.ini
new file mode 100644
index 00000000000..5eeedea1004
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-005.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-006.xht.ini
new file mode 100644
index 00000000000..b58f5719999
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-006.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-007.xht.ini
new file mode 100644
index 00000000000..e0c2a2d98de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-007.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-012.xht.ini
new file mode 100644
index 00000000000..87466093a9f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-012.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-013.xht.ini
new file mode 100644
index 00000000000..a8fe0dcf9cc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-013.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-015.xht.ini
new file mode 100644
index 00000000000..dc0c4677402
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-015.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-016.xht.ini
new file mode 100644
index 00000000000..bee9aa102c0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-016.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-017.xht.ini
new file mode 100644
index 00000000000..73e2258eb27
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-017.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-018.xht.ini
new file mode 100644
index 00000000000..6db8e11566e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-018.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-023.xht.ini
new file mode 100644
index 00000000000..da253995108
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-023.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-024.xht.ini
new file mode 100644
index 00000000000..a619eb8cd18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-024.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-025.xht.ini
new file mode 100644
index 00000000000..970d4d085b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-025.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-026.xht.ini
new file mode 100644
index 00000000000..dbaf454bb86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-026.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-027.xht.ini
new file mode 100644
index 00000000000..582bd62f8f1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-027.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-028.xht.ini
new file mode 100644
index 00000000000..4cf6b0a0d2a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-028.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-029.xht.ini
new file mode 100644
index 00000000000..507f7f1f742
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-029.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-034.xht.ini
new file mode 100644
index 00000000000..98361f61edb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-034.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-035.xht.ini
new file mode 100644
index 00000000000..dc9cd06c784
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-035.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-037.xht.ini
new file mode 100644
index 00000000000..7bd22812ea6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-037.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-038.xht.ini
new file mode 100644
index 00000000000..cae57da9348
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-038.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-039.xht.ini
new file mode 100644
index 00000000000..98daa5a1496
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-039.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-040.xht.ini
new file mode 100644
index 00000000000..f35170bb3c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-040.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-045.xht.ini
new file mode 100644
index 00000000000..8e66c3d10ad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-045.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-046.xht.ini
new file mode 100644
index 00000000000..35d2af6f90b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-046.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-048.xht.ini
new file mode 100644
index 00000000000..445606006af
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-048.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-049.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-049.xht.ini
new file mode 100644
index 00000000000..77db262c7ed
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-049.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-049.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-050.xht.ini
new file mode 100644
index 00000000000..d526e4aa3bf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-050.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-051.xht.ini
new file mode 100644
index 00000000000..893726501ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-051.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-056.xht.ini
new file mode 100644
index 00000000000..f4fa9d48398
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-056.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-057.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-057.xht.ini
new file mode 100644
index 00000000000..47336458617
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-057.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-057.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-058.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-058.xht.ini
new file mode 100644
index 00000000000..08f5b60311d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-058.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-058.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-059.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-059.xht.ini
new file mode 100644
index 00000000000..5d5fde6ddc3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-059.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-059.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-060.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-060.xht.ini
new file mode 100644
index 00000000000..b0f4913db68
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-060.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-060.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-061.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-061.xht.ini
new file mode 100644
index 00000000000..abf08a86d96
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-061.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-061.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-062.xht.ini
new file mode 100644
index 00000000000..808bd738481
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-062.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-067.xht.ini
new file mode 100644
index 00000000000..4e67ff4013b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-067.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-068.xht.ini
new file mode 100644
index 00000000000..eb7c48dc925
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-068.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-069.xht.ini
new file mode 100644
index 00000000000..80aa920f45c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-069.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-070.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-070.xht.ini
new file mode 100644
index 00000000000..30d69e42c7c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-070.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-070.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-071.xht.ini
new file mode 100644
index 00000000000..9c756f9b928
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-071.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-072.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-072.xht.ini
new file mode 100644
index 00000000000..d9294550b68
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-072.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-072.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-073.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-073.xht.ini
new file mode 100644
index 00000000000..af108b0720c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-073.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-073.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-078.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-078.xht.ini
new file mode 100644
index 00000000000..0577377f400
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-078.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-078.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-079.xht.ini
new file mode 100644
index 00000000000..85a97fe1a38
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-079.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-080.xht.ini
new file mode 100644
index 00000000000..a6200506cda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-080.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-081.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-081.xht.ini
new file mode 100644
index 00000000000..e49b7d72010
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-081.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-081.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-082.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-082.xht.ini
new file mode 100644
index 00000000000..16a24617b33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-082.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-082.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-083.xht.ini
new file mode 100644
index 00000000000..f63c477b342
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-083.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-084.xht.ini
new file mode 100644
index 00000000000..20edc83f200
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-084.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-089.xht.ini
new file mode 100644
index 00000000000..32b503fb9fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-089.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-090.xht.ini
new file mode 100644
index 00000000000..81953097069
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-090.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-091.xht.ini
new file mode 100644
index 00000000000..c1eb6d2473b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-091.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-092.xht.ini
new file mode 100644
index 00000000000..e85f63c5fb0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-092.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-093.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-093.xht.ini
new file mode 100644
index 00000000000..b17f640e866
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-093.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-093.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-094.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-094.xht.ini
new file mode 100644
index 00000000000..009e1fd333a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-094.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-094.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-095.xht.ini
new file mode 100644
index 00000000000..4fef8ccfe6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-095.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-100.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-100.xht.ini
new file mode 100644
index 00000000000..8a7dceefdab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-100.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-100.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-101.xht.ini
new file mode 100644
index 00000000000..16993de787f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-101.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-102.xht.ini
new file mode 100644
index 00000000000..59495de4215
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-102.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-103.xht.ini
new file mode 100644
index 00000000000..d896d47101b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-103.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-001.xht.ini
new file mode 100644
index 00000000000..d685cf95763
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-002.xht.ini
new file mode 100644
index 00000000000..08ad8ea7cd1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-003.xht.ini
new file mode 100644
index 00000000000..da125477e52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-004.xht.ini
new file mode 100644
index 00000000000..17406c6f117
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-005.xht.ini
new file mode 100644
index 00000000000..5e084843681
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-006.xht.ini
new file mode 100644
index 00000000000..d2fe6c031b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-007.xht.ini
new file mode 100644
index 00000000000..85859b41865
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-009.xht.ini
new file mode 100644
index 00000000000..01df4e1b273
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-013.xht.ini
new file mode 100644
index 00000000000..6ec4984e6ad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-014.xht.ini
new file mode 100644
index 00000000000..5934a3c1d25
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-015.xht.ini
new file mode 100644
index 00000000000..c8c570931b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-right-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[padding-right-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-080.xht.ini
new file mode 100644
index 00000000000..759cfe7040b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-080.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-083.xht.ini
new file mode 100644
index 00000000000..9fa74751a3e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-083.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-084.xht.ini
new file mode 100644
index 00000000000..b384dd719ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-084.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-001.xht.ini
new file mode 100644
index 00000000000..746eb17cd15
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-002.xht.ini
new file mode 100644
index 00000000000..948085ed6d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-003.xht.ini
new file mode 100644
index 00000000000..a74d3a1c3da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-004.xht.ini
new file mode 100644
index 00000000000..8cffcae5e81
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-005.xht.ini
new file mode 100644
index 00000000000..3afce624bde
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-006.xht.ini
new file mode 100644
index 00000000000..49279861f66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-007.xht.ini
new file mode 100644
index 00000000000..ff7aacd6ba0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-015.xht.ini
new file mode 100644
index 00000000000..70fd090c766
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/margin-padding-clear/padding-top-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[padding-top-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/auto-margins-root-element.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/auto-margins-root-element.html.ini
new file mode 100644
index 00000000000..df82a7feae2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/auto-margins-root-element.html.ini
@@ -0,0 +1,4 @@
+[auto-margins-root-element.html]
+ [Root element auto margins resolve]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-001.xht.ini
new file mode 100644
index 00000000000..6efb0c8c2c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-001.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-context-height-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-002.xht.ini
new file mode 100644
index 00000000000..78396ee399c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-002.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-context-height-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-003.xht.ini
new file mode 100644
index 00000000000..4114b94bb61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-context-height-003.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-context-height-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-001.xht.ini
new file mode 100644
index 00000000000..3a01d8ad9e4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-001.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-003.xht.ini
new file mode 100644
index 00000000000..2ff6df13e82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-003.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-006.xht.ini
new file mode 100644
index 00000000000..eac2f919bd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-006.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-008.xht.ini
new file mode 100644
index 00000000000..a76ac3c0bff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-008.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-009.xht.ini
new file mode 100644
index 00000000000..38562a1602c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-009.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-011.xht.ini
new file mode 100644
index 00000000000..f8bce2bdcbc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-011.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-012.xht.ini
new file mode 100644
index 00000000000..a095752790e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-012.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-015.xht.ini
new file mode 100644
index 00000000000..27d98f802fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-015.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-016.xht.ini
new file mode 100644
index 00000000000..5ec72be121c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-formatting-contexts-016.xht.ini
@@ -0,0 +1,2 @@
+[block-formatting-contexts-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..88fa181d6f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-append-002-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-ref.xht.ini
new file mode 100644
index 00000000000..b1a97cec93b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-append-002-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002.xht.ini
new file mode 100644
index 00000000000..cf6f9b63842
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-append-002.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-append-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-001.xht.ini
new file mode 100644
index 00000000000..9db08636660
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-001.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-empty-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-002.xht.ini
new file mode 100644
index 00000000000..75f6245abb9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-002.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-empty-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-004.xht.ini
new file mode 100644
index 00000000000..9091bfed9e8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-empty-004.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-empty-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-float-between-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-float-between-001.xht.ini
new file mode 100644
index 00000000000..e3f3d5bf485
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-float-between-001.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-float-between-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..e67bcc0bced
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-001-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-ref.xht.ini
new file mode 100644
index 00000000000..ef047fe6f16
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-001-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001a.xht.ini
new file mode 100644
index 00000000000..ca4f8d02ea1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-001a.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..c4a1b3a20f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-002-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-ref.xht.ini
new file mode 100644
index 00000000000..90e3017d4e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-002-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002a.xht.ini
new file mode 100644
index 00000000000..5338583f2ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-002a.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-002a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..7802b2438e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-003-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-ref.xht.ini
new file mode 100644
index 00000000000..1e0e8c8848d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-003-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003.xht.ini
new file mode 100644
index 00000000000..9dc4f81aade
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-003.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..6f8c9e08846
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-004-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-ref.xht.ini
new file mode 100644
index 00000000000..5884af38ba2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-004-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004.xht.ini
new file mode 100644
index 00000000000..7d8572005d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-004.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..d46e21bef33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-007-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-ref.xht.ini
new file mode 100644
index 00000000000..3e0f219f419
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-007-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007.xht.ini
new file mode 100644
index 00000000000..54138348b05
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-007.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..da65304fb54
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-008-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-ref.xht.ini
new file mode 100644
index 00000000000..c961eb294c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-008-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008a.xht.ini
new file mode 100644
index 00000000000..baadacdf7f7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-008a.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-008a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..6b1d1329746
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-009-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-ref.xht.ini
new file mode 100644
index 00000000000..9cadfe97a6e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-009-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009.xht.ini
new file mode 100644
index 00000000000..8be71a06ebc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-009.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..29672e2e209
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-010-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-ref.xht.ini
new file mode 100644
index 00000000000..f12c9ff3562
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-010-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010.xht.ini
new file mode 100644
index 00000000000..e0796894032
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-010.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..58988bd0a8b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-011-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-ref.xht.ini
new file mode 100644
index 00000000000..55504bc7584
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-011-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011.xht.ini
new file mode 100644
index 00000000000..8f941830214
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-011.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..17b07928667
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-012-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-ref.xht.ini
new file mode 100644
index 00000000000..bfbdc0c80b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-012-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012.xht.ini
new file mode 100644
index 00000000000..257eca42bee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-012.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..8702633b375
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-013-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-ref.xht.ini
new file mode 100644
index 00000000000..d9bdbf22aaa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-013-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013.xht.ini
new file mode 100644
index 00000000000..a02aef0d05c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-013.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..432cfd1c758
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-014-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-ref.xht.ini
new file mode 100644
index 00000000000..4972a926dff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-014-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014.xht.ini
new file mode 100644
index 00000000000..2827a29812b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-014.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..ea6dfe9dd47
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-015-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-ref.xht.ini
new file mode 100644
index 00000000000..510126ba15e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-015-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015.xht.ini
new file mode 100644
index 00000000000..576fd05e089
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-015.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..cfccae2e4b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-016-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-ref.xht.ini
new file mode 100644
index 00000000000..558faf73e5a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-016-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016a.xht.ini
new file mode 100644
index 00000000000..a252b198ced
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-016a.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-016a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-017.xht.ini
new file mode 100644
index 00000000000..ee12e32491e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-insert-017.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-insert-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..f58174cce07
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-001-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-ref.xht.ini
new file mode 100644
index 00000000000..574e3490ae8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-001-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001.xht.ini
new file mode 100644
index 00000000000..25898fdc1c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-001.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..cbaccb7dae5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-003-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-ref.xht.ini
new file mode 100644
index 00000000000..f08fbaaf5fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-003-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003.xht.ini
new file mode 100644
index 00000000000..c233569c74e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-003.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..bce5eb4d42b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-004-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-ref.xht.ini
new file mode 100644
index 00000000000..8a6638e035e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-004-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004.xht.ini
new file mode 100644
index 00000000000..25373839b85
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-004.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..95fe0514f22
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-005-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-ref.xht.ini
new file mode 100644
index 00000000000..3e5a1c653c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-005-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005.xht.ini
new file mode 100644
index 00000000000..79803a5c8df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-005.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-nosplit-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-nosplit-ref.xht.ini
new file mode 100644
index 00000000000..2da8b33f76c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-nosplit-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-006-nosplit-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-ref.xht.ini
new file mode 100644
index 00000000000..63cf110f6d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006-ref.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-006-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006.xht.ini
new file mode 100644
index 00000000000..afb9bb97aa3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-remove-006.xht.ini
@@ -0,0 +1,2 @@
+[block-in-inline-remove-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-height-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-height-011.xht.ini
new file mode 100644
index 00000000000..9a6c179052f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-height-011.xht.ini
@@ -0,0 +1,2 @@
+[block-non-replaced-height-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..ca91a5c2f50
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[block-non-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-004.xht.ini
new file mode 100644
index 00000000000..218aa82f73e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-004.xht.ini
@@ -0,0 +1,2 @@
+[block-non-replaced-width-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-007.xht.ini
new file mode 100644
index 00000000000..2972d69ca47
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-non-replaced-width-007.xht.ini
@@ -0,0 +1,2 @@
+[block-non-replaced-width-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-004.xht.ini
new file mode 100644
index 00000000000..212fae693d4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-004.xht.ini
@@ -0,0 +1,2 @@
+[block-replaced-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-005.xht.ini
new file mode 100644
index 00000000000..a54cfb5a9e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-005.xht.ini
@@ -0,0 +1,2 @@
+[block-replaced-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-006.xht.ini
new file mode 100644
index 00000000000..755725795ad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-006.xht.ini
@@ -0,0 +1,2 @@
+[block-replaced-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-007.xht.ini
new file mode 100644
index 00000000000..feb0b61f02d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-height-007.xht.ini
@@ -0,0 +1,2 @@
+[block-replaced-height-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-002.xht.ini
new file mode 100644
index 00000000000..192328fcc76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-002.xht.ini
@@ -0,0 +1,2 @@
+[block-replaced-width-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini
new file mode 100644
index 00000000000..6b28c0a7732
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-replaced-width-006.xht.ini
@@ -0,0 +1,2 @@
+[block-replaced-width-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-013.xht.ini
new file mode 100644
index 00000000000..3ffad1bf1a8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-013.xht.ini
@@ -0,0 +1,2 @@
+[blocks-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-016.xht.ini
new file mode 100644
index 00000000000..581ea87127f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-016.xht.ini
@@ -0,0 +1,2 @@
+[blocks-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-017.xht.ini
new file mode 100644
index 00000000000..117ecbab923
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-017.xht.ini
@@ -0,0 +1,2 @@
+[blocks-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-018.xht.ini
new file mode 100644
index 00000000000..1c5cc6facb8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-018.xht.ini
@@ -0,0 +1,2 @@
+[blocks-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-019.xht.ini
new file mode 100644
index 00000000000..701285001c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-019.xht.ini
@@ -0,0 +1,2 @@
+[blocks-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-021.xht.ini
new file mode 100644
index 00000000000..8df6897991e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-021.xht.ini
@@ -0,0 +1,2 @@
+[blocks-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-025.xht.ini
new file mode 100644
index 00000000000..98320b8f27d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/blocks-025.xht.ini
@@ -0,0 +1,2 @@
+[blocks-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-bottom.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-bottom.html.ini
new file mode 100644
index 00000000000..56e3de1d873
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-bottom.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-margin-bottom.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-left.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-left.html.ini
new file mode 100644
index 00000000000..f6567edc05f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-left.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-margin-left.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-right.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-right.html.ini
new file mode 100644
index 00000000000..98d5997441d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-right.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-margin-right.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-top.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-top.html.ini
new file mode 100644
index 00000000000..dff659b0d1b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-margin-top.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-margin-top.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-bottom.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-bottom.html.ini
new file mode 100644
index 00000000000..ae23839ee75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-bottom.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-padding-bottom.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-left.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-left.html.ini
new file mode 100644
index 00000000000..81e8730905f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-left.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-padding-left.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-right.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-right.html.ini
new file mode 100644
index 00000000000..56606b18ab5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-right.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-padding-right.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-top.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-top.html.ini
new file mode 100644
index 00000000000..99bda1e6c8d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/containing-block-percent-padding-top.html.ini
@@ -0,0 +1,4 @@
+[containing-block-percent-padding-top.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/dynamic-percentage-height.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/dynamic-percentage-height.html.ini
new file mode 100644
index 00000000000..c5b4581b12e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/dynamic-percentage-height.html.ini
@@ -0,0 +1,2 @@
+[dynamic-percentage-height.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/float-percentage-resolution-quirks-mode.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/float-percentage-resolution-quirks-mode.html.ini
new file mode 100644
index 00000000000..0f0d8404e60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/float-percentage-resolution-quirks-mode.html.ini
@@ -0,0 +1,2 @@
+[float-percentage-resolution-quirks-mode.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-080.xht.ini
new file mode 100644
index 00000000000..9cd3c2d1df3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-080.xht.ini
@@ -0,0 +1,2 @@
+[height-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-083.xht.ini
new file mode 100644
index 00000000000..abe4bad2417
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-083.xht.ini
@@ -0,0 +1,2 @@
+[height-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-084.xht.ini
new file mode 100644
index 00000000000..eb236539a8d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-084.xht.ini
@@ -0,0 +1,2 @@
+[height-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-113.xht.ini
new file mode 100644
index 00000000000..97e7d112d3c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-113.xht.ini
@@ -0,0 +1,2 @@
+[height-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-004.xht.ini
new file mode 100644
index 00000000000..a5c4ed4462d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[height-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-013.xht.ini
new file mode 100644
index 00000000000..a45bd0d675e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[height-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-014.xht.ini
new file mode 100644
index 00000000000..68dfdfef786
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[height-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-percentage-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-percentage-003.xht.ini
new file mode 100644
index 00000000000..030729ac98f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/height-percentage-003.xht.ini
@@ -0,0 +1,2 @@
+[height-percentage-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
new file mode 100644
index 00000000000..8efb7024ae4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/hit-test-anonymous-block.html.ini
@@ -0,0 +1,4 @@
+[hit-test-anonymous-block.html]
+ [Hit test beside line of text inside anonymous block]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..8839906d7c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-non-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-004.xht.ini
new file mode 100644
index 00000000000..21f67e9c038
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-non-replaced-width-004.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-non-replaced-width-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-004.xht.ini
new file mode 100644
index 00000000000..851eec59297
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-004.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-005.xht.ini
new file mode 100644
index 00000000000..d39fbf30b24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-005.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-006.xht.ini
new file mode 100644
index 00000000000..0ac271c9c92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-006.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-007.xht.ini
new file mode 100644
index 00000000000..525a0612db1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-007.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-height-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-009.xht.ini
new file mode 100644
index 00000000000..bbb4fcf2b94
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-height-009.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-height-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-001.xht.ini
new file mode 100644
index 00000000000..d1ab88794fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-width-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-002.xht.ini
new file mode 100644
index 00000000000..fc1879514be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-width-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..06d027b801a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-006.xht.ini
new file mode 100644
index 00000000000..1d04747bb49
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-006.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-width-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-007.xht.ini
new file mode 100644
index 00000000000..e6d0bcd46cc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-007.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-width-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-008.xht.ini
new file mode 100644
index 00000000000..c07c70978ef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-replaced-width-008.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-replaced-width-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-001.xht.ini
new file mode 100644
index 00000000000..9d395c40f40
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-valign-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-002.xht.ini
new file mode 100644
index 00000000000..87d6b4c2085
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-valign-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-valign-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001a.xht.ini
new file mode 100644
index 00000000000..327adc331d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001a.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-width-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001b.xht.ini
new file mode 100644
index 00000000000..73dfc216ffb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-001b.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-width-001b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002a.xht.ini
new file mode 100644
index 00000000000..8c1580d17cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002a.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-width-002a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002b.xht.ini
new file mode 100644
index 00000000000..c5b3d4b3484
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-width-002b.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-width-002b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-zorder-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-zorder-003.xht.ini
new file mode 100644
index 00000000000..ed84063bcd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-block-zorder-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-zorder-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-002.xht.ini
new file mode 100644
index 00000000000..d424532840f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-non-replaced-height-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-003.xht.ini
new file mode 100644
index 00000000000..576851c895d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-non-replaced-height-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-non-replaced-height-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-004.xht.ini
new file mode 100644
index 00000000000..b13b8c57648
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-004.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-005.xht.ini
new file mode 100644
index 00000000000..ab760ed1aad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-005.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-006.xht.ini
new file mode 100644
index 00000000000..67d112ec9ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-006.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-007.xht.ini
new file mode 100644
index 00000000000..f6a7c44063d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-007.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-009.xht.ini
new file mode 100644
index 00000000000..601ddfea6d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-009.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-010.xht.ini
new file mode 100644
index 00000000000..db68d37d7a3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-010.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-011.xht.ini
new file mode 100644
index 00000000000..337a7e7e162
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-height-011.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-height-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini
new file mode 100644
index 00000000000..f90e509741a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-002.xht.ini
new file mode 100644
index 00000000000..7ec0020cec9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..3d4fde00dc2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini
new file mode 100644
index 00000000000..3b1738d27e4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-006.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-008.xht.ini
new file mode 100644
index 00000000000..4e67e9772cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-008.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-009.xht.ini
new file mode 100644
index 00000000000..42436ce24e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-009.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-012.xht.ini
new file mode 100644
index 00000000000..bf3a285e8a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-012.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-013.xht.ini
new file mode 100644
index 00000000000..143954342f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-013.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-015.xht.ini
new file mode 100644
index 00000000000..68033d62a6f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-015.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-016.xht.ini
new file mode 100644
index 00000000000..aa3c1e00555
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-016.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-017.xht.ini
new file mode 100644
index 00000000000..fd6fb9fb361
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-replaced-width-017.xht.ini
@@ -0,0 +1,2 @@
+[inline-replaced-width-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002a.xht.ini
new file mode 100644
index 00000000000..aa7af50cc73
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002a.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-002a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002b.xht.ini
new file mode 100644
index 00000000000..d6388439cf3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-002b.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-002b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-valign-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-valign-001.xht.ini
new file mode 100644
index 00000000000..64afaabbbb3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-valign-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-valign-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-width-002a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-width-002a.xht.ini
new file mode 100644
index 00000000000..802484cf4ac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-width-002a.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-width-002a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-001.xht.ini
new file mode 100644
index 00000000000..d47d4399115
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-zorder-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-002.xht.ini
new file mode 100644
index 00000000000..e9c72c84eeb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-zorder-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-005.xht.ini
new file mode 100644
index 00000000000..c207198aefe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inline-table-zorder-005.xht.ini
@@ -0,0 +1,2 @@
+[inline-table-zorder-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-002.xht.ini
new file mode 100644
index 00000000000..e75f6075d6c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-002.xht.ini
@@ -0,0 +1,2 @@
+[inlines-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-013.xht.ini
new file mode 100644
index 00000000000..1476c082aa7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-013.xht.ini
@@ -0,0 +1,2 @@
+[inlines-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini
new file mode 100644
index 00000000000..08323ae34d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-016.xht.ini
@@ -0,0 +1,2 @@
+[inlines-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-017.xht.ini
new file mode 100644
index 00000000000..3a787ecadbe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-017.xht.ini
@@ -0,0 +1,2 @@
+[inlines-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-020.xht.ini
new file mode 100644
index 00000000000..27e2169bd5e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/inlines-020.xht.ini
@@ -0,0 +1,2 @@
+[inlines-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/intrinsic-size-with-negative-margins.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/intrinsic-size-with-negative-margins.html.ini
new file mode 100644
index 00000000000..f80d263fca1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/intrinsic-size-with-negative-margins.html.ini
@@ -0,0 +1,2 @@
+[intrinsic-size-with-negative-margins.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-height-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-height-block.html.ini
new file mode 100644
index 00000000000..79c0cdd9cab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-height-block.html.ini
@@ -0,0 +1,2 @@
+[margin-collapse-through-percentage-height-block.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini
new file mode 100644
index 00000000000..5100ee5c5a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-percentage-padding.html.ini
@@ -0,0 +1,2 @@
+[margin-collapse-through-percentage-padding.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-zero-height-block.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-zero-height-block.html.ini
new file mode 100644
index 00000000000..48d090f286b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapse-through-zero-height-block.html.ini
@@ -0,0 +1,2 @@
+[margin-collapse-through-zero-height-block.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-001.html.ini
new file mode 100644
index 00000000000..8447f55fe0a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-001.html.ini
@@ -0,0 +1,2 @@
+[margin-collapsing-in-table-caption-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-002.html.ini
new file mode 100644
index 00000000000..770c5517817
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/margin-collapsing-in-table-caption-002.html.ini
@@ -0,0 +1,2 @@
+[margin-collapsing-in-table-caption-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-080.xht.ini
new file mode 100644
index 00000000000..351db055b7e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-080.xht.ini
@@ -0,0 +1,2 @@
+[max-height-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-083.xht.ini
new file mode 100644
index 00000000000..06624227561
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-083.xht.ini
@@ -0,0 +1,2 @@
+[max-height-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-084.xht.ini
new file mode 100644
index 00000000000..0ddf4d68820
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-084.xht.ini
@@ -0,0 +1,2 @@
+[max-height-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-005.xht.ini
new file mode 100644
index 00000000000..5812f06953c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[max-height-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-006.xht.ini
new file mode 100644
index 00000000000..9252428ef09
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[max-height-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-separates-margin.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-separates-margin.html.ini
new file mode 100644
index 00000000000..a6cbf633e79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-height-separates-margin.html.ini
@@ -0,0 +1,2 @@
+[max-height-separates-margin.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-080.xht.ini
new file mode 100644
index 00000000000..bcd0b2f51b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-080.xht.ini
@@ -0,0 +1,2 @@
+[max-width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-083.xht.ini
new file mode 100644
index 00000000000..6e8aa1fd7be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-083.xht.ini
@@ -0,0 +1,2 @@
+[max-width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-084.xht.ini
new file mode 100644
index 00000000000..74776d945a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-084.xht.ini
@@ -0,0 +1,2 @@
+[max-width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-105.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-105.xht.ini
new file mode 100644
index 00000000000..12f93fdbd92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-105.xht.ini
@@ -0,0 +1,2 @@
+[max-width-105.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-106.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-106.xht.ini
new file mode 100644
index 00000000000..bb0bd22b304
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-106.xht.ini
@@ -0,0 +1,2 @@
+[max-width-106.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-107.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-107.xht.ini
new file mode 100644
index 00000000000..3b2292bb49a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-107.xht.ini
@@ -0,0 +1,2 @@
+[max-width-107.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-110.xht.ini
new file mode 100644
index 00000000000..fe45cea6bd3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-110.xht.ini
@@ -0,0 +1,2 @@
+[max-width-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-001.xht.ini
new file mode 100644
index 00000000000..192ee1c4d89
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[max-width-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-002.xht.ini
new file mode 100644
index 00000000000..02f55d4dbbd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[max-width-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-003.xht.ini
new file mode 100644
index 00000000000..6b529b29644
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[max-width-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-004.xht.ini
new file mode 100644
index 00000000000..dd156b5fea4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[max-width-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-005.xht.ini
new file mode 100644
index 00000000000..53ce2670d44
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[max-width-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-006.xht.ini
new file mode 100644
index 00000000000..7d62d814540
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[max-width-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-percentage-001.xht.ini
new file mode 100644
index 00000000000..7c001675a7e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/max-width-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[max-width-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-080.xht.ini
new file mode 100644
index 00000000000..67becbac15b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-080.xht.ini
@@ -0,0 +1,2 @@
+[min-height-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-083.xht.ini
new file mode 100644
index 00000000000..39f24aa0cb7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-083.xht.ini
@@ -0,0 +1,2 @@
+[min-height-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-084.xht.ini
new file mode 100644
index 00000000000..07a25410827
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-084.xht.ini
@@ -0,0 +1,2 @@
+[min-height-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-005.xht.ini
new file mode 100644
index 00000000000..7539c116c20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[min-height-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-006.xht.ini
new file mode 100644
index 00000000000..870ffe1270e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[min-height-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-separates-margin.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-separates-margin.html.ini
new file mode 100644
index 00000000000..4c4407f7f22
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-height-separates-margin.html.ini
@@ -0,0 +1,2 @@
+[min-height-separates-margin.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-080.xht.ini
new file mode 100644
index 00000000000..db7e60f5e64
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-080.xht.ini
@@ -0,0 +1,2 @@
+[min-width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-083.xht.ini
new file mode 100644
index 00000000000..f9bd03e83fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-083.xht.ini
@@ -0,0 +1,2 @@
+[min-width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-084.xht.ini
new file mode 100644
index 00000000000..a39591e1fc0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-084.xht.ini
@@ -0,0 +1,2 @@
+[min-width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-002.xht.ini
new file mode 100644
index 00000000000..c28133d7708
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-003.xht.ini
new file mode 100644
index 00000000000..7aa94a02f80
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-004.xht.ini
new file mode 100644
index 00000000000..a529c5d574c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-005.xht.ini
new file mode 100644
index 00000000000..30171a4853d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-006.xht.ini
new file mode 100644
index 00000000000..7417021dc57
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-007.xht.ini
new file mode 100644
index 00000000000..cbcd21219dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-013.xht.ini
new file mode 100644
index 00000000000..408acf76c34
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-014.xht.ini
new file mode 100644
index 00000000000..b6d42d4e024
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[min-width-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-percentage-001.xht.ini
new file mode 100644
index 00000000000..8b6b6192750
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/min-width-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[min-width-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/negative-margin-shrinking-container-size-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/negative-margin-shrinking-container-size-002.html.ini
new file mode 100644
index 00000000000..f2992e953ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/negative-margin-shrinking-container-size-002.html.ini
@@ -0,0 +1,2 @@
+[negative-margin-shrinking-container-size-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-001.xht.ini
new file mode 100644
index 00000000000..d4c4ce64a0c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-001.xht.ini
@@ -0,0 +1,2 @@
+[replaced-intrinsic-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-002.xht.ini
new file mode 100644
index 00000000000..bf85cf0048b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-002.xht.ini
@@ -0,0 +1,2 @@
+[replaced-intrinsic-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-003.xht.ini
new file mode 100644
index 00000000000..d49fb0e55d1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-003.xht.ini
@@ -0,0 +1,2 @@
+[replaced-intrinsic-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-004.xht.ini
new file mode 100644
index 00000000000..854b97ab5e2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-004.xht.ini
@@ -0,0 +1,2 @@
+[replaced-intrinsic-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-005.xht.ini
new file mode 100644
index 00000000000..954ad52ba1c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/replaced-intrinsic-005.xht.ini
@@ -0,0 +1,2 @@
+[replaced-intrinsic-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/root-box-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/root-box-001.xht.ini
new file mode 100644
index 00000000000..8fa4cfb85ac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/root-box-001.xht.ini
@@ -0,0 +1,2 @@
+[root-box-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-max-height.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-max-height.html.ini
new file mode 100644
index 00000000000..1ecf647d659
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-max-height.html.ini
@@ -0,0 +1,4 @@
+[unresolvable-max-height.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-min-height.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-min-height.html.ini
new file mode 100644
index 00000000000..1b6bb0de230
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/unresolvable-min-height.html.ini
@@ -0,0 +1,4 @@
+[unresolvable-min-height.html]
+ [#container 1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-080.xht.ini
new file mode 100644
index 00000000000..ad2c053dc75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-080.xht.ini
@@ -0,0 +1,2 @@
+[width-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-083.xht.ini
new file mode 100644
index 00000000000..b007cc26285
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-083.xht.ini
@@ -0,0 +1,2 @@
+[width-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-084.xht.ini
new file mode 100644
index 00000000000..3434e4cbbfc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-084.xht.ini
@@ -0,0 +1,2 @@
+[width-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-001.xht.ini
new file mode 100644
index 00000000000..c22118bca24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-002.xht.ini
new file mode 100644
index 00000000000..32c2ed9ddfb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-003.xht.ini
new file mode 100644
index 00000000000..fd1087a5359
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-004.xht.ini
new file mode 100644
index 00000000000..6fdeea57071
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-005.xht.ini
new file mode 100644
index 00000000000..af0506888e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-006.xht.ini
new file mode 100644
index 00000000000..2acc68dac95
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-007.xht.ini
new file mode 100644
index 00000000000..1117aee741c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-013.xht.ini
new file mode 100644
index 00000000000..fc0ef5a5765
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-014.xht.ini
new file mode 100644
index 00000000000..d5affce741c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[width-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-001.xht.ini
new file mode 100644
index 00000000000..fd192bf7ee7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[width-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-002.xht.ini
new file mode 100644
index 00000000000..cd36a0d3a38
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/width-percentage-002.xht.ini
@@ -0,0 +1,2 @@
+[width-percentage-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-003.xht.ini
new file mode 100644
index 00000000000..a7c02218dae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-003.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-004.xht.ini
new file mode 100644
index 00000000000..d5edb75b0ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-004.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-005.xht.ini
new file mode 100644
index 00000000000..acbe4a16f4d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-005.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-006.xht.ini
new file mode 100644
index 00000000000..e259855a28e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-006.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini
new file mode 100644
index 00000000000..a8181f873e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-008.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-010.xht.ini
new file mode 100644
index 00000000000..ffa0aa5f51d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-010.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-011.xht.ini
new file mode 100644
index 00000000000..ff562b47bae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-011.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-012.xht.ini
new file mode 100644
index 00000000000..5cd0779a01b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-height-012.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-height-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-002.xht.ini
new file mode 100644
index 00000000000..cfe10370f17
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-002.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-003.xht.ini
new file mode 100644
index 00000000000..02d77b8b351
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-003.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-004.xht.ini
new file mode 100644
index 00000000000..520f8f51740
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-004.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-005.xht.ini
new file mode 100644
index 00000000000..f0a70485254
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-005.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-006.xht.ini
new file mode 100644
index 00000000000..b49a7b20e06
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-006.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-007.xht.ini
new file mode 100644
index 00000000000..e08ad47fc61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-007.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-008.xht.ini
new file mode 100644
index 00000000000..a95d829cf2a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-008.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-009.xht.ini
new file mode 100644
index 00000000000..ac43e849bf2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-009.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-010.xht.ini
new file mode 100644
index 00000000000..26bf546864a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-010.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-011.xht.ini
new file mode 100644
index 00000000000..8a350b6f3b9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-011.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-012.xht.ini
new file mode 100644
index 00000000000..bbeee78f08a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-max-height-012.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-max-height-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-002.xht.ini
new file mode 100644
index 00000000000..f5a667ecb82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-002.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-005.xht.ini
new file mode 100644
index 00000000000..a5c04fe02e7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-005.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-012.xht.ini
new file mode 100644
index 00000000000..18c3d658702
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-012.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-017.xht.ini
new file mode 100644
index 00000000000..de55a3a770f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-017.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-018.xht.ini
new file mode 100644
index 00000000000..057bc38889b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-018.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-019.xht.ini
new file mode 100644
index 00000000000..87cf1332032
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-019.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-020.xht.ini
new file mode 100644
index 00000000000..4f61629c159
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-020.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-021.xht.ini
new file mode 100644
index 00000000000..b69397bb822
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-021.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-022.xht.ini
new file mode 100644
index 00000000000..7c8a38fe848
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-022.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-023.xht.ini
new file mode 100644
index 00000000000..156e1a5dd50
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-023.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-024.xht.ini
new file mode 100644
index 00000000000..8befc137000
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-024.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-025.xht.ini
new file mode 100644
index 00000000000..576c0925493
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-025.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-026.xht.ini
new file mode 100644
index 00000000000..4191c50c362
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-non-replaced-width-026.xht.ini
@@ -0,0 +1,2 @@
+[absolute-non-replaced-width-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-004.xht.ini
new file mode 100644
index 00000000000..665ed871ed1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-004.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-005.xht.ini
new file mode 100644
index 00000000000..ecf1c13b37b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-005.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-006.xht.ini
new file mode 100644
index 00000000000..cbacfa484f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-006.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-011.xht.ini
new file mode 100644
index 00000000000..d72b8dde375
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-011.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-012.xht.ini
new file mode 100644
index 00000000000..692d976ec99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-012.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-013.xht.ini
new file mode 100644
index 00000000000..b2eb4a9ea63
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-013.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-018.xht.ini
new file mode 100644
index 00000000000..4e88c55df79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-018.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-019.xht.ini
new file mode 100644
index 00000000000..615721a370e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-019.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-020.xht.ini
new file mode 100644
index 00000000000..10ac42e0a10
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-020.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-025.xht.ini
new file mode 100644
index 00000000000..1833dcd8f20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-025.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-026.xht.ini
new file mode 100644
index 00000000000..2de13eb97cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-026.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-027.xht.ini
new file mode 100644
index 00000000000..2944c943c59
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-027.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-032.xht.ini
new file mode 100644
index 00000000000..a05b7ae9834
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-032.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-033.xht.ini
new file mode 100644
index 00000000000..42bd4bd5c87
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-033.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-034.xht.ini
new file mode 100644
index 00000000000..03cd430e010
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-034.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-036.xht.ini
new file mode 100644
index 00000000000..c880ccbf26b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-height-036.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-height-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-002.xht.ini
new file mode 100644
index 00000000000..36bcce5bb67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-002.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-003.xht.ini
new file mode 100644
index 00000000000..04ed5c63ddb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-003.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-004.xht.ini
new file mode 100644
index 00000000000..197553a9802
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-004.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-009.xht.ini
new file mode 100644
index 00000000000..550c96237a3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-009.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-010.xht.ini
new file mode 100644
index 00000000000..aa6c22617ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-010.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-011.xht.ini
new file mode 100644
index 00000000000..a5477fdecab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-011.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-015.xht.ini
new file mode 100644
index 00000000000..0fc908e1852
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-015.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-020.xht.ini
new file mode 100644
index 00000000000..4fe605a11cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-020.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-022.xht.ini
new file mode 100644
index 00000000000..41f56ae8658
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-022.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-023.xht.ini
new file mode 100644
index 00000000000..b3d0730fde8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-023.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-024.xht.ini
new file mode 100644
index 00000000000..597a0c12773
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-024.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-025.xht.ini
new file mode 100644
index 00000000000..b8dd1082d73
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-025.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-027.xht.ini
new file mode 100644
index 00000000000..b5c76fcef6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-027.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-029.xht.ini
new file mode 100644
index 00000000000..8ee0d73bedb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-029.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-030.xht.ini
new file mode 100644
index 00000000000..dd5192c0f09
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-030.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-031.xht.ini
new file mode 100644
index 00000000000..4d71480bd52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-031.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-032.xht.ini
new file mode 100644
index 00000000000..91d1910dae6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-032.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-034.xht.ini
new file mode 100644
index 00000000000..95d132dc8a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-034.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-036.xht.ini
new file mode 100644
index 00000000000..3c66a4a8c18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-036.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-037.xht.ini
new file mode 100644
index 00000000000..6178ea5b4a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-037.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-038.xht.ini
new file mode 100644
index 00000000000..9cd80453ec1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-038.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-039.xht.ini
new file mode 100644
index 00000000000..202c2958b16
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-039.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-041.xht.ini
new file mode 100644
index 00000000000..72f6b85df77
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-041.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-043.xht.ini
new file mode 100644
index 00000000000..799e9d31ac7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-043.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-048.xht.ini
new file mode 100644
index 00000000000..98f58e48c8a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-048.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-050.xht.ini
new file mode 100644
index 00000000000..484690a3a2c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-050.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-051.xht.ini
new file mode 100644
index 00000000000..9241928bed9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-051.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-052.xht.ini
new file mode 100644
index 00000000000..8c9fd86fa75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-052.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-053.xht.ini
new file mode 100644
index 00000000000..a6e575e508a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-053.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-055.xht.ini
new file mode 100644
index 00000000000..b426c3ef831
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-055.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-057.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-057.xht.ini
new file mode 100644
index 00000000000..12a1a5e70a6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-057.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-057.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-062.xht.ini
new file mode 100644
index 00000000000..e617e5b83fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-062.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-064.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-064.xht.ini
new file mode 100644
index 00000000000..e21342adbd0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-064.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-064.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-065.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-065.xht.ini
new file mode 100644
index 00000000000..f1a205422f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-065.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-065.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-066.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-066.xht.ini
new file mode 100644
index 00000000000..9b324365f21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-066.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-066.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-067.xht.ini
new file mode 100644
index 00000000000..c590eb2ed88
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-067.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-069.xht.ini
new file mode 100644
index 00000000000..1fdb249b5ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-069.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-071.xht.ini
new file mode 100644
index 00000000000..9821c39718c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-071.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-076.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-076.xht.ini
new file mode 100644
index 00000000000..ed6836dc12d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/absolute-replaced-width-076.xht.ini
@@ -0,0 +1,2 @@
+[absolute-replaced-width-076.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-001.xht.ini
new file mode 100644
index 00000000000..121fd5f30db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-001.xht.ini
@@ -0,0 +1,2 @@
+[abspos-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-007.xht.ini
new file mode 100644
index 00000000000..b33a02aa958
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-007.xht.ini
@@ -0,0 +1,2 @@
+[abspos-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-008.xht.ini
new file mode 100644
index 00000000000..110707b0969
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-008.xht.ini
@@ -0,0 +1,2 @@
+[abspos-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-009.xht.ini
new file mode 100644
index 00000000000..eb5fc34231c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-009.xht.ini
@@ -0,0 +1,2 @@
+[abspos-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-013.xht.ini
new file mode 100644
index 00000000000..2ee0d65debe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-013.xht.ini
@@ -0,0 +1,2 @@
+[abspos-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-014.xht.ini
new file mode 100644
index 00000000000..9ea84b2793d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-014.xht.ini
@@ -0,0 +1,2 @@
+[abspos-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-015.xht.ini
new file mode 100644
index 00000000000..3459f74aa9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-015.xht.ini
@@ -0,0 +1,2 @@
+[abspos-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-016.xht.ini
new file mode 100644
index 00000000000..41854d24429
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-016.xht.ini
@@ -0,0 +1,2 @@
+[abspos-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-017.xht.ini
new file mode 100644
index 00000000000..a4508e0485d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-017.xht.ini
@@ -0,0 +1,2 @@
+[abspos-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-019.xht.ini
new file mode 100644
index 00000000000..55bf512725d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-019.xht.ini
@@ -0,0 +1,2 @@
+[abspos-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-024.xht.ini
new file mode 100644
index 00000000000..1a49cae446c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-024.xht.ini
@@ -0,0 +1,2 @@
+[abspos-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-025.xht.ini
new file mode 100644
index 00000000000..79dd9963b43
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-025.xht.ini
@@ -0,0 +1,2 @@
+[abspos-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-026.xht.ini
new file mode 100644
index 00000000000..fb15592dc87
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-026.xht.ini
@@ -0,0 +1,2 @@
+[abspos-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-028.xht.ini
new file mode 100644
index 00000000000..904d7e5379c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-028.xht.ini
@@ -0,0 +1,2 @@
+[abspos-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-block-level-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-block-level-001.html.ini
new file mode 100644
index 00000000000..288e23b6065
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-block-level-001.html.ini
@@ -0,0 +1,2 @@
+[abspos-block-level-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-float-with-inline-container.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-float-with-inline-container.html.ini
new file mode 100644
index 00000000000..3f98bb1fa20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-float-with-inline-container.html.ini
@@ -0,0 +1,2 @@
+[abspos-float-with-inline-container.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-007.xht.ini
new file mode 100644
index 00000000000..752e5a79b6a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-007.xht.ini
@@ -0,0 +1,2 @@
+[abspos-inline-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-008.xht.ini
new file mode 100644
index 00000000000..f77c2c83d5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-inline-008.xht.ini
@@ -0,0 +1,2 @@
+[abspos-inline-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-negative-margin-001.html.ini
new file mode 100644
index 00000000000..073aef19466
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-negative-margin-001.html.ini
@@ -0,0 +1,2 @@
+[abspos-negative-margin-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-002.xht.ini
new file mode 100644
index 00000000000..573004ccfb3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-002.xht.ini
@@ -0,0 +1,2 @@
+[abspos-overflow-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-003.xht.ini
new file mode 100644
index 00000000000..1282797e20b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-003.xht.ini
@@ -0,0 +1,2 @@
+[abspos-overflow-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-005.xht.ini
new file mode 100644
index 00000000000..f00b1cf7971
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-005.xht.ini
@@ -0,0 +1,2 @@
+[abspos-overflow-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-006.xht.ini
new file mode 100644
index 00000000000..b2d135790fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-006.xht.ini
@@ -0,0 +1,2 @@
+[abspos-overflow-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-008.xht.ini
new file mode 100644
index 00000000000..b158f5c1641
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-008.xht.ini
@@ -0,0 +1,2 @@
+[abspos-overflow-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-009.xht.ini
new file mode 100644
index 00000000000..d5f4b0c8980
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-overflow-009.xht.ini
@@ -0,0 +1,2 @@
+[abspos-overflow-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-005.xht.ini
new file mode 100644
index 00000000000..91f9321aed3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-005.xht.ini
@@ -0,0 +1,2 @@
+[abspos-width-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini
new file mode 100644
index 00000000000..4d53d32f1c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/abspos-width-change-inline-container-001.html.ini
@@ -0,0 +1,2 @@
+[abspos-width-change-inline-container-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-091.xht.ini
new file mode 100644
index 00000000000..5569cb72a46
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-091.xht.ini
@@ -0,0 +1,2 @@
+[bottom-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-092.xht.ini
new file mode 100644
index 00000000000..295ff899394
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-092.xht.ini
@@ -0,0 +1,2 @@
+[bottom-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-001.xht.ini
new file mode 100644
index 00000000000..26de7e10f79
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-002.xht.ini
new file mode 100644
index 00000000000..c648f287b00
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-003.xht.ini
new file mode 100644
index 00000000000..3e3934d7a1b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-004.xht.ini
new file mode 100644
index 00000000000..68b21015bb5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-005.xht.ini
new file mode 100644
index 00000000000..aae90c56a6c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-006.xht.ini
new file mode 100644
index 00000000000..7bef0ad514c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-007.xht.ini
new file mode 100644
index 00000000000..2a65fee619e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-009.xht.ini
new file mode 100644
index 00000000000..10b95119308
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-012.xht.ini
new file mode 100644
index 00000000000..657bcafc668
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-013.xht.ini
new file mode 100644
index 00000000000..c56a02e9466
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-014.xht.ini
new file mode 100644
index 00000000000..b5d7dc7f53a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-015.xht.ini
new file mode 100644
index 00000000000..e23a578356d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[bottom-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-offset-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-offset-percentage-001.xht.ini
new file mode 100644
index 00000000000..4f0220cbfd5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/bottom-offset-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[bottom-offset-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/inline-static-position-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/inline-static-position-001.html.ini
new file mode 100644
index 00000000000..1e94cec851b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/inline-static-position-001.html.ini
@@ -0,0 +1,2 @@
+[inline-static-position-001.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-007.xht.ini
new file mode 100644
index 00000000000..eafa00eac72
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-007.xht.ini
@@ -0,0 +1,2 @@
+[left-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-008.xht.ini
new file mode 100644
index 00000000000..a25fafbae02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-008.xht.ini
@@ -0,0 +1,2 @@
+[left-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-019.xht.ini
new file mode 100644
index 00000000000..639025a23c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-019.xht.ini
@@ -0,0 +1,2 @@
+[left-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-020.xht.ini
new file mode 100644
index 00000000000..db4a729cb2f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-020.xht.ini
@@ -0,0 +1,2 @@
+[left-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-031.xht.ini
new file mode 100644
index 00000000000..93a6889d235
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-031.xht.ini
@@ -0,0 +1,2 @@
+[left-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-032.xht.ini
new file mode 100644
index 00000000000..3645cc27dbb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-032.xht.ini
@@ -0,0 +1,2 @@
+[left-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-043.xht.ini
new file mode 100644
index 00000000000..1e9ae965ee9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-043.xht.ini
@@ -0,0 +1,2 @@
+[left-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-044.xht.ini
new file mode 100644
index 00000000000..68be8ce95a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-044.xht.ini
@@ -0,0 +1,2 @@
+[left-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-055.xht.ini
new file mode 100644
index 00000000000..99f4194f556
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-055.xht.ini
@@ -0,0 +1,2 @@
+[left-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-056.xht.ini
new file mode 100644
index 00000000000..a876a27c48d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-056.xht.ini
@@ -0,0 +1,2 @@
+[left-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-067.xht.ini
new file mode 100644
index 00000000000..0232f962c3b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-067.xht.ini
@@ -0,0 +1,2 @@
+[left-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-068.xht.ini
new file mode 100644
index 00000000000..1f8d7e63a60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-068.xht.ini
@@ -0,0 +1,2 @@
+[left-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-079.xht.ini
new file mode 100644
index 00000000000..1f30a64836b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-079.xht.ini
@@ -0,0 +1,2 @@
+[left-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-080.xht.ini
new file mode 100644
index 00000000000..ce542b1a402
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-080.xht.ini
@@ -0,0 +1,2 @@
+[left-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-091.xht.ini
new file mode 100644
index 00000000000..68db091bb5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-091.xht.ini
@@ -0,0 +1,2 @@
+[left-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-092.xht.ini
new file mode 100644
index 00000000000..99f8b469475
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-092.xht.ini
@@ -0,0 +1,2 @@
+[left-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-103.xht.ini
new file mode 100644
index 00000000000..d106a9de7c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-103.xht.ini
@@ -0,0 +1,2 @@
+[left-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-104.xht.ini
new file mode 100644
index 00000000000..c9e626dc714
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-104.xht.ini
@@ -0,0 +1,2 @@
+[left-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-113.xht.ini
new file mode 100644
index 00000000000..987b70fa0db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-113.xht.ini
@@ -0,0 +1,2 @@
+[left-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-013.xht.ini
new file mode 100644
index 00000000000..9260c672582
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[left-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-014.xht.ini
new file mode 100644
index 00000000000..43978527a38
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[left-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-003.xht.ini
new file mode 100644
index 00000000000..06e3bfc629c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-003.xht.ini
@@ -0,0 +1,2 @@
+[left-offset-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-001.xht.ini
new file mode 100644
index 00000000000..4201d44a005
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[left-offset-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-002.xht.ini
new file mode 100644
index 00000000000..1da7d09df26
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/left-offset-percentage-002.xht.ini
@@ -0,0 +1,2 @@
+[left-offset-percentage-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/line-break-after-leading-float.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/line-break-after-leading-float.html.ini
new file mode 100644
index 00000000000..379db792998
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/line-break-after-leading-float.html.ini
@@ -0,0 +1,4 @@
+[line-break-after-leading-float.html]
+ [Checks line wrapping after leading floating objects.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-004.xht.ini
new file mode 100644
index 00000000000..e3bbf731534
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-004.xht.ini
@@ -0,0 +1,2 @@
+[position-absolute-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-006.xht.ini
new file mode 100644
index 00000000000..335ba28d7ea
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-absolute-006.xht.ini
@@ -0,0 +1,2 @@
+[position-absolute-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-001.xht.ini
new file mode 100644
index 00000000000..43c27e5dcee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-002.xht.ini
new file mode 100644
index 00000000000..0d4bd47bff9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-003.xht.ini
new file mode 100644
index 00000000000..332ccfad9db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-004.xht.ini
new file mode 100644
index 00000000000..7267bde90d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-005.xht.ini
new file mode 100644
index 00000000000..a7075ebb3c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-006.xht.ini
new file mode 100644
index 00000000000..56e2a22e279
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-007.xht.ini
new file mode 100644
index 00000000000..6d4e98d9e3f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-009.xht.ini
new file mode 100644
index 00000000000..fe55d56b597
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-012.xht.ini
new file mode 100644
index 00000000000..f6e7074ac0e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-013.xht.ini
new file mode 100644
index 00000000000..e0421d0e8dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-014.xht.ini
new file mode 100644
index 00000000000..dafe0fed6c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-015.xht.ini
new file mode 100644
index 00000000000..b21f6095047
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[position-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-004.xht.ini
new file mode 100644
index 00000000000..36eb296aa67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-004.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-005.xht.ini
new file mode 100644
index 00000000000..a90f8db30d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-005.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-007.xht.ini
new file mode 100644
index 00000000000..c8a791dcead
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-007.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-010.xht.ini
new file mode 100644
index 00000000000..c2391ca9766
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-010.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-014.xht.ini
new file mode 100644
index 00000000000..cfb0c9b7531
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-014.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-016.xht.ini
new file mode 100644
index 00000000000..4b17f872f40
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-016.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-018.xht.ini
new file mode 100644
index 00000000000..c6ad434264c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-018.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-019.xht.ini
new file mode 100644
index 00000000000..ae8d3911782
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-019.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-029.xht.ini
new file mode 100644
index 00000000000..82c2d2baddf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-029.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-030.xht.ini
new file mode 100644
index 00000000000..dcbcaa21ca7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-030.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-031.xht.ini
new file mode 100644
index 00000000000..3b9a15f284c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-031.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-032.xht.ini
new file mode 100644
index 00000000000..fe049ea1775
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-032.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-038.xht.ini
new file mode 100644
index 00000000000..e4630b3779d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-relative-038.xht.ini
@@ -0,0 +1,2 @@
+[position-relative-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini
new file mode 100644
index 00000000000..b8665fc1939
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/position-static-001.xht.ini
@@ -0,0 +1,2 @@
+[position-static-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-001.xht.ini
new file mode 100644
index 00000000000..02db7dbcb24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-001.xht.ini
@@ -0,0 +1,2 @@
+[positioning-float-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-002.xht.ini
new file mode 100644
index 00000000000..1fa701e8c6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/positioning-float-002.xht.ini
@@ -0,0 +1,2 @@
+[positioning-float-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-003.xht.ini
new file mode 100644
index 00000000000..7939603b140
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-003.xht.ini
@@ -0,0 +1,2 @@
+[relpos-calcs-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-004.xht.ini
new file mode 100644
index 00000000000..486b4c65a43
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-004.xht.ini
@@ -0,0 +1,2 @@
+[relpos-calcs-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-006.xht.ini
new file mode 100644
index 00000000000..0c067e44232
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-calcs-006.xht.ini
@@ -0,0 +1,2 @@
+[relpos-calcs-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini
new file mode 100644
index 00000000000..dc9f187af1a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable-2.html.ini
@@ -0,0 +1,2 @@
+[relpos-percentage-left-in-scrollable-2.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini
new file mode 100644
index 00000000000..23666a9e530
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-left-in-scrollable.html.ini
@@ -0,0 +1,2 @@
+[relpos-percentage-left-in-scrollable.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini
new file mode 100644
index 00000000000..6a108dfa746
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/relpos-percentage-top-in-scrollable.html.ini
@@ -0,0 +1,2 @@
+[relpos-percentage-top-in-scrollable.html]
+ expected: ERROR
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-091.xht.ini
new file mode 100644
index 00000000000..428d03e4a57
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-091.xht.ini
@@ -0,0 +1,2 @@
+[right-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-092.xht.ini
new file mode 100644
index 00000000000..bff7d29bcb9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-092.xht.ini
@@ -0,0 +1,2 @@
+[right-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-113.xht.ini
new file mode 100644
index 00000000000..5b6c9db5376
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-113.xht.ini
@@ -0,0 +1,2 @@
+[right-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-001.xht.ini
new file mode 100644
index 00000000000..7c7d8e3e123
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-002.xht.ini
new file mode 100644
index 00000000000..fc157f07ab1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-003.xht.ini
new file mode 100644
index 00000000000..eb5fbac601c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-004.xht.ini
new file mode 100644
index 00000000000..cbfc5dde966
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-005.xht.ini
new file mode 100644
index 00000000000..370e627cf3f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-006.xht.ini
new file mode 100644
index 00000000000..f1401c866d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-007.xht.ini
new file mode 100644
index 00000000000..f1139e8ab01
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-009.xht.ini
new file mode 100644
index 00000000000..58f48c865ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-012.xht.ini
new file mode 100644
index 00000000000..cb476661222
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-013.xht.ini
new file mode 100644
index 00000000000..058b117bf99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-014.xht.ini
new file mode 100644
index 00000000000..f2aa33a8499
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-015.xht.ini
new file mode 100644
index 00000000000..6835468f74a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/right-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[right-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/toogle-abspos-on-relpos-inline-child.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/toogle-abspos-on-relpos-inline-child.html.ini
new file mode 100644
index 00000000000..928300474c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/toogle-abspos-on-relpos-inline-child.html.ini
@@ -0,0 +1,2 @@
+[toogle-abspos-on-relpos-inline-child.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-019.xht.ini
new file mode 100644
index 00000000000..53db8f680f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-019.xht.ini
@@ -0,0 +1,2 @@
+[top-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-020.xht.ini
new file mode 100644
index 00000000000..9a46b7a4469
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-020.xht.ini
@@ -0,0 +1,2 @@
+[top-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-031.xht.ini
new file mode 100644
index 00000000000..dd183d70d9c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-031.xht.ini
@@ -0,0 +1,2 @@
+[top-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-032.xht.ini
new file mode 100644
index 00000000000..6700a486965
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-032.xht.ini
@@ -0,0 +1,2 @@
+[top-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-043.xht.ini
new file mode 100644
index 00000000000..86b1a0dd144
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-043.xht.ini
@@ -0,0 +1,2 @@
+[top-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-044.xht.ini
new file mode 100644
index 00000000000..bab64f8f10b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-044.xht.ini
@@ -0,0 +1,2 @@
+[top-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-055.xht.ini
new file mode 100644
index 00000000000..224706da2d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-055.xht.ini
@@ -0,0 +1,2 @@
+[top-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-056.xht.ini
new file mode 100644
index 00000000000..46068fdae21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-056.xht.ini
@@ -0,0 +1,2 @@
+[top-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-067.xht.ini
new file mode 100644
index 00000000000..072d3512b66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-067.xht.ini
@@ -0,0 +1,2 @@
+[top-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-068.xht.ini
new file mode 100644
index 00000000000..c1bf56600b2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-068.xht.ini
@@ -0,0 +1,2 @@
+[top-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-079.xht.ini
new file mode 100644
index 00000000000..b3c8ad9608f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-079.xht.ini
@@ -0,0 +1,2 @@
+[top-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-080.xht.ini
new file mode 100644
index 00000000000..b23713e93d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-080.xht.ini
@@ -0,0 +1,2 @@
+[top-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-091.xht.ini
new file mode 100644
index 00000000000..4142dfb38f3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-091.xht.ini
@@ -0,0 +1,2 @@
+[top-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-092.xht.ini
new file mode 100644
index 00000000000..6c707330958
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-092.xht.ini
@@ -0,0 +1,2 @@
+[top-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-103.xht.ini
new file mode 100644
index 00000000000..65913a68a12
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-103.xht.ini
@@ -0,0 +1,2 @@
+[top-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-104.xht.ini
new file mode 100644
index 00000000000..0bdfbdff679
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-104.xht.ini
@@ -0,0 +1,2 @@
+[top-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-113.xht.ini
new file mode 100644
index 00000000000..77230d218dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-113.xht.ini
@@ -0,0 +1,2 @@
+[top-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-001.xht.ini
new file mode 100644
index 00000000000..c9007fc8873
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[top-offset-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-002.xht.ini
new file mode 100644
index 00000000000..a3cf8681178
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/positioning/top-offset-percentage-002.xht.ini
@@ -0,0 +1,2 @@
+[top-offset-percentage-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/sec5/first-line-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/sec5/first-line-000.xht.ini
new file mode 100644
index 00000000000..8ac2a9ae3a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/sec5/first-line-000.xht.ini
@@ -0,0 +1,2 @@
+[first-line-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selector/lang-pseudoclass-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selector/lang-pseudoclass-002.xht.ini
new file mode 100644
index 00000000000..803cd9688a2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selector/lang-pseudoclass-002.xht.ini
@@ -0,0 +1,2 @@
+[lang-pseudoclass-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/before-first-letter-selector-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/before-first-letter-selector-001.xht.ini
new file mode 100644
index 00000000000..12f6d27de0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/before-first-letter-selector-001.xht.ini
@@ -0,0 +1,2 @@
+[before-first-letter-selector-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-001.xht.ini
new file mode 100644
index 00000000000..d8f13396196
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-001.xht.ini
@@ -0,0 +1,2 @@
+[default-attribute-selector-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-002.xht.ini
new file mode 100644
index 00000000000..fea092ac637
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-002.xht.ini
@@ -0,0 +1,2 @@
+[default-attribute-selector-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-003.xht.ini
new file mode 100644
index 00000000000..f18480d4044
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-003.xht.ini
@@ -0,0 +1,2 @@
+[default-attribute-selector-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-004.xht.ini
new file mode 100644
index 00000000000..5fd7296acb9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/default-attribute-selector-004.xht.ini
@@ -0,0 +1,2 @@
+[default-attribute-selector-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-001.xht.ini
new file mode 100644
index 00000000000..8c159c0cd3d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-001.xht.ini
new file mode 100644
index 00000000000..4149f9d6373
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-dynamic-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-002.xht.ini
new file mode 100644
index 00000000000..7c04b075b16
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-dynamic-002.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-dynamic-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-001.xht.ini
new file mode 100644
index 00000000000..2bc03cbc70f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-002.xht.ini
new file mode 100644
index 00000000000..e98c28a2dfe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-002.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-003.xht.ini
new file mode 100644
index 00000000000..cd46441fda4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-003.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-004.xht.ini
new file mode 100644
index 00000000000..9fa91f47792
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-004.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-005.xht.ini
new file mode 100644
index 00000000000..08f40f52976
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-005.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-006.xht.ini
new file mode 100644
index 00000000000..95088cdaa17
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-006.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-007.xht.ini
new file mode 100644
index 00000000000..450a00993ac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-nested-007.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-nested-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-001.xht.ini
new file mode 100644
index 00000000000..5a50c8528bd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-002.xht.ini
new file mode 100644
index 00000000000..19ddbb368ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-002.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-003.xht.ini
new file mode 100644
index 00000000000..1d4f55fd3b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-003.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-004.xht.ini
new file mode 100644
index 00000000000..4555eb6d652
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-004.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-005.xht.ini
new file mode 100644
index 00000000000..93a92c1f3f0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-005.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-006.xht.ini
new file mode 100644
index 00000000000..8b902e53069
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-006.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-007.xht.ini
new file mode 100644
index 00000000000..bde6eede6d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-007.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-008.xht.ini
new file mode 100644
index 00000000000..987468d49b2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-008.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-009.xht.ini
new file mode 100644
index 00000000000..9ca9b751e01
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-009.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-010.xht.ini
new file mode 100644
index 00000000000..80d02fecb84
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-010.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-012.xht.ini
new file mode 100644
index 00000000000..f3306475eba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-012.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-013.xht.ini
new file mode 100644
index 00000000000..c8092720583
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-013.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-014.xht.ini
new file mode 100644
index 00000000000..15e379cfedf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-014.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-015.xht.ini
new file mode 100644
index 00000000000..e1aca1a3cfe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-015.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-016.xht.ini
new file mode 100644
index 00000000000..def1736e81c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-016.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-017.xht.ini
new file mode 100644
index 00000000000..90ce0caa390
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-017.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-018.xht.ini
new file mode 100644
index 00000000000..3f526b34f12
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-018.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-019.xht.ini
new file mode 100644
index 00000000000..93bb08829a6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-019.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-020.xht.ini
new file mode 100644
index 00000000000..764e438de33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-020.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-021.xht.ini
new file mode 100644
index 00000000000..d8b21941d7c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-021.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-022.xht.ini
new file mode 100644
index 00000000000..3f09c33e74d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-022.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-023.xht.ini
new file mode 100644
index 00000000000..374a41d6d04
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-023.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-024.xht.ini
new file mode 100644
index 00000000000..98f344cb5fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-024.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-025.xht.ini
new file mode 100644
index 00000000000..04797fded61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-025.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-026.xht.ini
new file mode 100644
index 00000000000..47dfbb0ae02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-026.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-027.xht.ini
new file mode 100644
index 00000000000..538e8950eb8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-027.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-028.xht.ini
new file mode 100644
index 00000000000..7700f78e51f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-028.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-029.xht.ini
new file mode 100644
index 00000000000..e373039a5d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-029.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-030.xht.ini
new file mode 100644
index 00000000000..5fa90e88b9c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-030.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-031.xht.ini
new file mode 100644
index 00000000000..21cc55a4cda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-031.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-032.xht.ini
new file mode 100644
index 00000000000..4e9080d2ade
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-032.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-033.xht.ini
new file mode 100644
index 00000000000..65a4f302126
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-033.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-034.xht.ini
new file mode 100644
index 00000000000..e0d564ab47b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-034.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-035.xht.ini
new file mode 100644
index 00000000000..e9bd03a35d4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-035.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-036.xht.ini
new file mode 100644
index 00000000000..123543622be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-036.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-037.xht.ini
new file mode 100644
index 00000000000..34370215193
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-037.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-038.xht.ini
new file mode 100644
index 00000000000..21271acaaee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-038.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-039.xht.ini
new file mode 100644
index 00000000000..a0af77d0316
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-039.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-040.xht.ini
new file mode 100644
index 00000000000..a07498a13ad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-040.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-041.xht.ini
new file mode 100644
index 00000000000..0bb08fa326e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-041.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-042.xht.ini
new file mode 100644
index 00000000000..c383cb1a918
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-042.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-043.xht.ini
new file mode 100644
index 00000000000..15c8044d2b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-043.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-044.xht.ini
new file mode 100644
index 00000000000..b382fe2ca97
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-044.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-045.xht.ini
new file mode 100644
index 00000000000..e6c75209dba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-045.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-046.xht.ini
new file mode 100644
index 00000000000..ce4360ce173
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-046.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-047.xht.ini
new file mode 100644
index 00000000000..01d528c901a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-047.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-047.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-048.xht.ini
new file mode 100644
index 00000000000..6eb513b3892
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-048.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-049.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-049.xht.ini
new file mode 100644
index 00000000000..5bebf2f6e27
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-049.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-049.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-050.xht.ini
new file mode 100644
index 00000000000..02afe011e55
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-050.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-051.xht.ini
new file mode 100644
index 00000000000..3b3bdaa21c5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-051.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-052.xht.ini
new file mode 100644
index 00000000000..881eff358a5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-052.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-053.xht.ini
new file mode 100644
index 00000000000..d9fd94b2297
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-053.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-054.xht.ini
new file mode 100644
index 00000000000..ca82a7a9875
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-054.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-055.xht.ini
new file mode 100644
index 00000000000..0b747226bfd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-055.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-056.xht.ini
new file mode 100644
index 00000000000..11b8e9773cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-056.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-057.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-057.xht.ini
new file mode 100644
index 00000000000..0bfacf2526e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-057.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-057.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-058.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-058.xht.ini
new file mode 100644
index 00000000000..4ec7f2fd9c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-058.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-058.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-059.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-059.xht.ini
new file mode 100644
index 00000000000..c2d3ba4e980
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-059.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-059.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-060.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-060.xht.ini
new file mode 100644
index 00000000000..135fc854f51
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-060.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-060.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-061.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-061.xht.ini
new file mode 100644
index 00000000000..73da334eba9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-061.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-061.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-062.xht.ini
new file mode 100644
index 00000000000..63dea5791b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-062.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-063.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-063.xht.ini
new file mode 100644
index 00000000000..8fbf4c3af63
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-063.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-063.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-064.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-064.xht.ini
new file mode 100644
index 00000000000..aeff7571da5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-064.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-064.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-065.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-065.xht.ini
new file mode 100644
index 00000000000..3ffd0251466
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-065.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-065.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-066.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-066.xht.ini
new file mode 100644
index 00000000000..dc916788d98
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-066.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-066.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-067.xht.ini
new file mode 100644
index 00000000000..83625c26a4b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-067.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-068.xht.ini
new file mode 100644
index 00000000000..9d392a08124
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-068.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-069.xht.ini
new file mode 100644
index 00000000000..768a03e9753
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-069.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-070.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-070.xht.ini
new file mode 100644
index 00000000000..344ec1d32fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-070.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-070.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-071.xht.ini
new file mode 100644
index 00000000000..e6d7651fa91
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-071.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-072.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-072.xht.ini
new file mode 100644
index 00000000000..214012996fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-072.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-072.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-073.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-073.xht.ini
new file mode 100644
index 00000000000..e5831ea0c01
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-073.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-073.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-074.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-074.xht.ini
new file mode 100644
index 00000000000..e0693ff795c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-074.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-074.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-075.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-075.xht.ini
new file mode 100644
index 00000000000..1acae619dc8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-075.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-075.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-076.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-076.xht.ini
new file mode 100644
index 00000000000..3163e5af60d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-076.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-076.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-077.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-077.xht.ini
new file mode 100644
index 00000000000..51d481a8a60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-077.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-077.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-078.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-078.xht.ini
new file mode 100644
index 00000000000..2b68a2b0d6f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-078.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-078.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-079.xht.ini
new file mode 100644
index 00000000000..0758e2e8c18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-079.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-080.xht.ini
new file mode 100644
index 00000000000..5e84865d938
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-080.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-081.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-081.xht.ini
new file mode 100644
index 00000000000..a8275d19038
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-081.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-081.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-082.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-082.xht.ini
new file mode 100644
index 00000000000..7f1e4a2c6d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-082.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-082.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-083.xht.ini
new file mode 100644
index 00000000000..8e0f9afd9a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-083.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-084.xht.ini
new file mode 100644
index 00000000000..14a6e991546
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-084.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-085.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-085.xht.ini
new file mode 100644
index 00000000000..9a6e3abd921
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-085.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-085.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-086.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-086.xht.ini
new file mode 100644
index 00000000000..8654a2638c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-086.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-086.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-087.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-087.xht.ini
new file mode 100644
index 00000000000..f9201456e9a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-087.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-087.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-088.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-088.xht.ini
new file mode 100644
index 00000000000..eff10f9e7fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-088.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-088.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-089.xht.ini
new file mode 100644
index 00000000000..5d6f5717ccc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-089.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-090.xht.ini
new file mode 100644
index 00000000000..8feaff03af9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-090.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-091.xht.ini
new file mode 100644
index 00000000000..f38352f133d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-091.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-092.xht.ini
new file mode 100644
index 00000000000..1802c47d708
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-092.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-093.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-093.xht.ini
new file mode 100644
index 00000000000..367505fbf06
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-093.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-093.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-094.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-094.xht.ini
new file mode 100644
index 00000000000..b53d485c885
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-094.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-094.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-095.xht.ini
new file mode 100644
index 00000000000..ee1f9429991
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-095.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-096.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-096.xht.ini
new file mode 100644
index 00000000000..6b5ab276865
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-096.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-096.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-097.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-097.xht.ini
new file mode 100644
index 00000000000..15a20aacb08
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-097.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-097.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-098.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-098.xht.ini
new file mode 100644
index 00000000000..1e8ab51b212
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-098.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-098.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-099.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-099.xht.ini
new file mode 100644
index 00000000000..f9c3a5dcb97
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-099.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-099.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-100.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-100.xht.ini
new file mode 100644
index 00000000000..e080a9c2edf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-100.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-100.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-101.xht.ini
new file mode 100644
index 00000000000..bbd42f06f8f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-101.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-102.xht.ini
new file mode 100644
index 00000000000..c9ab1bf2aac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-102.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-103.xht.ini
new file mode 100644
index 00000000000..48efd2f06c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-103.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-104.xht.ini
new file mode 100644
index 00000000000..4369058c823
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-104.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-105.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-105.xht.ini
new file mode 100644
index 00000000000..b291e966696
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-105.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-105.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-106.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-106.xht.ini
new file mode 100644
index 00000000000..3cfdfa17d8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-106.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-106.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-107.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-107.xht.ini
new file mode 100644
index 00000000000..f0942891028
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-107.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-107.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-108.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-108.xht.ini
new file mode 100644
index 00000000000..c84f15495a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-108.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-108.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-109.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-109.xht.ini
new file mode 100644
index 00000000000..0725ec4e354
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-109.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-109.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-110.xht.ini
new file mode 100644
index 00000000000..31fc58fe227
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-110.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-111.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-111.xht.ini
new file mode 100644
index 00000000000..fda6e347483
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-111.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-111.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-112.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-112.xht.ini
new file mode 100644
index 00000000000..14aa90be228
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-112.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-112.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-113.xht.ini
new file mode 100644
index 00000000000..737b79ddba4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-113.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-115.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-115.xht.ini
new file mode 100644
index 00000000000..5e983b78e13
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-115.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-115.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-116.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-116.xht.ini
new file mode 100644
index 00000000000..02084f283fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-116.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-116.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-117.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-117.xht.ini
new file mode 100644
index 00000000000..0410039bddc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-117.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-117.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-118.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-118.xht.ini
new file mode 100644
index 00000000000..e7c944cf5bc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-118.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-118.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-119.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-119.xht.ini
new file mode 100644
index 00000000000..45e74ead2e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-119.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-119.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-120.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-120.xht.ini
new file mode 100644
index 00000000000..9c61d405853
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-120.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-120.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-121.xht.ini
new file mode 100644
index 00000000000..55f73a1b7c8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-121.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-122.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-122.xht.ini
new file mode 100644
index 00000000000..4638cceefb2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-122.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-122.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-123.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-123.xht.ini
new file mode 100644
index 00000000000..d68fbe98362
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-123.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-123.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-124.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-124.xht.ini
new file mode 100644
index 00000000000..f79bf85aa58
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-124.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-124.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-125.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-125.xht.ini
new file mode 100644
index 00000000000..24873e0af4c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-125.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-125.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-126.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-126.xht.ini
new file mode 100644
index 00000000000..160e042b684
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-126.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-126.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-127.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-127.xht.ini
new file mode 100644
index 00000000000..91d07df4a10
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-127.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-127.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-128.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-128.xht.ini
new file mode 100644
index 00000000000..925b9a680a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-128.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-128.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-129.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-129.xht.ini
new file mode 100644
index 00000000000..7b3c7f27fa3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-129.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-129.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-130.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-130.xht.ini
new file mode 100644
index 00000000000..2ca3a8587d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-130.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-130.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-131.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-131.xht.ini
new file mode 100644
index 00000000000..79ca44ea9a5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-131.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-131.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-132.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-132.xht.ini
new file mode 100644
index 00000000000..1be84353af6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-132.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-132.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-133.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-133.xht.ini
new file mode 100644
index 00000000000..046ab863340
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-133.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-133.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-134.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-134.xht.ini
new file mode 100644
index 00000000000..010a6358bc2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-134.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-134.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-135.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-135.xht.ini
new file mode 100644
index 00000000000..bcfa7077c90
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-135.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-135.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-136.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-136.xht.ini
new file mode 100644
index 00000000000..0604469c867
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-136.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-136.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-137.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-137.xht.ini
new file mode 100644
index 00000000000..0924b3ab28a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-137.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-137.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-138.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-138.xht.ini
new file mode 100644
index 00000000000..5937a2254c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-138.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-138.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-139.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-139.xht.ini
new file mode 100644
index 00000000000..5873b225e92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-139.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-139.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-140.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-140.xht.ini
new file mode 100644
index 00000000000..a37ecd26bce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-140.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-140.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-141.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-141.xht.ini
new file mode 100644
index 00000000000..2e10871c5fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-141.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-141.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-142.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-142.xht.ini
new file mode 100644
index 00000000000..4c029eaab35
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-142.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-142.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-143.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-143.xht.ini
new file mode 100644
index 00000000000..9b485cb318b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-143.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-143.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-144.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-144.xht.ini
new file mode 100644
index 00000000000..ce31f65d48d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-144.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-144.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-145.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-145.xht.ini
new file mode 100644
index 00000000000..ac8ba5a26fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-145.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-145.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-146.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-146.xht.ini
new file mode 100644
index 00000000000..bad94356022
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-146.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-146.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-147.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-147.xht.ini
new file mode 100644
index 00000000000..50e41992131
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-147.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-147.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-148.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-148.xht.ini
new file mode 100644
index 00000000000..de0c9a290b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-148.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-148.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-149.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-149.xht.ini
new file mode 100644
index 00000000000..0eae4ccd7bd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-149.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-149.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-150.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-150.xht.ini
new file mode 100644
index 00000000000..344d3cb20b9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-150.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-150.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-151.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-151.xht.ini
new file mode 100644
index 00000000000..7defb7eb604
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-151.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-151.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-152.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-152.xht.ini
new file mode 100644
index 00000000000..c68de1e0ad5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-152.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-152.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-153.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-153.xht.ini
new file mode 100644
index 00000000000..025682cbaa2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-153.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-153.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-154.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-154.xht.ini
new file mode 100644
index 00000000000..bf90996ca8f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-154.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-154.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-155.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-155.xht.ini
new file mode 100644
index 00000000000..1cf7110c338
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-155.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-155.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-156.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-156.xht.ini
new file mode 100644
index 00000000000..06c86ba8338
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-156.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-156.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-157.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-157.xht.ini
new file mode 100644
index 00000000000..eb726976791
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-157.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-157.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-158.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-158.xht.ini
new file mode 100644
index 00000000000..c07f637d864
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-158.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-158.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-159.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-159.xht.ini
new file mode 100644
index 00000000000..6d8ba61f450
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-159.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-159.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-160.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-160.xht.ini
new file mode 100644
index 00000000000..afc5527775f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-160.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-160.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-161.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-161.xht.ini
new file mode 100644
index 00000000000..412459ef445
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-161.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-161.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-162.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-162.xht.ini
new file mode 100644
index 00000000000..df414412c31
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-162.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-162.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-163.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-163.xht.ini
new file mode 100644
index 00000000000..8e32b66c831
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-163.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-163.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-164.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-164.xht.ini
new file mode 100644
index 00000000000..e641fbc6b5b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-164.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-164.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-165.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-165.xht.ini
new file mode 100644
index 00000000000..9e1bdf6fd9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-165.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-165.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-166.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-166.xht.ini
new file mode 100644
index 00000000000..fba1996ce3f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-166.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-166.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-167.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-167.xht.ini
new file mode 100644
index 00000000000..5070957ec91
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-167.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-167.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-168.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-168.xht.ini
new file mode 100644
index 00000000000..9ebccbec876
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-168.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-168.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-169.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-169.xht.ini
new file mode 100644
index 00000000000..58309011d50
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-169.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-169.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-170.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-170.xht.ini
new file mode 100644
index 00000000000..fa6af7c24fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-170.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-170.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-171.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-171.xht.ini
new file mode 100644
index 00000000000..c138b99bd24
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-171.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-171.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-172.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-172.xht.ini
new file mode 100644
index 00000000000..d7894d9e4f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-172.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-172.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-173.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-173.xht.ini
new file mode 100644
index 00000000000..7dceb73d14b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-173.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-173.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-174.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-174.xht.ini
new file mode 100644
index 00000000000..2fe837b1ef7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-174.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-174.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-175.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-175.xht.ini
new file mode 100644
index 00000000000..7997d79a2d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-175.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-175.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-176.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-176.xht.ini
new file mode 100644
index 00000000000..551291a2877
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-176.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-176.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-177.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-177.xht.ini
new file mode 100644
index 00000000000..9366bb2368f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-177.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-177.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-178.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-178.xht.ini
new file mode 100644
index 00000000000..053d2b85567
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-178.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-178.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-179.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-179.xht.ini
new file mode 100644
index 00000000000..057edcb28f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-179.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-179.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-180.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-180.xht.ini
new file mode 100644
index 00000000000..8a77db16ed1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-180.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-180.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-181.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-181.xht.ini
new file mode 100644
index 00000000000..9441412ffb1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-181.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-181.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-182.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-182.xht.ini
new file mode 100644
index 00000000000..1206c9294df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-182.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-182.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-183.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-183.xht.ini
new file mode 100644
index 00000000000..9e1de240c52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-183.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-183.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-185.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-185.xht.ini
new file mode 100644
index 00000000000..d2e8883605f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-185.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-185.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-186.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-186.xht.ini
new file mode 100644
index 00000000000..b66584c7ed9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-186.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-186.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-187.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-187.xht.ini
new file mode 100644
index 00000000000..297a7b3da05
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-187.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-187.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-188.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-188.xht.ini
new file mode 100644
index 00000000000..6fae7d41528
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-188.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-188.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-189.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-189.xht.ini
new file mode 100644
index 00000000000..8e94b2f9c6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-189.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-189.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-190.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-190.xht.ini
new file mode 100644
index 00000000000..d02d3c017f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-190.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-190.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-191.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-191.xht.ini
new file mode 100644
index 00000000000..1840c42affc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-191.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-191.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-192.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-192.xht.ini
new file mode 100644
index 00000000000..4a9d7850feb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-192.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-192.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-193.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-193.xht.ini
new file mode 100644
index 00000000000..8fa7454698d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-193.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-193.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-194.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-194.xht.ini
new file mode 100644
index 00000000000..876fa6af3ed
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-194.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-194.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-195.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-195.xht.ini
new file mode 100644
index 00000000000..fb3df7f0996
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-195.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-195.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-196.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-196.xht.ini
new file mode 100644
index 00000000000..faa8cdda1f3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-196.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-196.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-197.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-197.xht.ini
new file mode 100644
index 00000000000..3af2558dd9f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-197.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-197.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-198.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-198.xht.ini
new file mode 100644
index 00000000000..c8d5acc1a7a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-198.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-198.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-199.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-199.xht.ini
new file mode 100644
index 00000000000..e69f2990632
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-199.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-199.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-200.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-200.xht.ini
new file mode 100644
index 00000000000..835372d49ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-200.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-200.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-201.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-201.xht.ini
new file mode 100644
index 00000000000..4960caada14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-201.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-201.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-202.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-202.xht.ini
new file mode 100644
index 00000000000..3c0c059a4a9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-202.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-202.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-203.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-203.xht.ini
new file mode 100644
index 00000000000..43292f0ba3c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-203.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-203.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-204.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-204.xht.ini
new file mode 100644
index 00000000000..3ff8d3f3a02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-204.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-204.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-205.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-205.xht.ini
new file mode 100644
index 00000000000..ffe8fde0ebb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-205.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-205.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-206.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-206.xht.ini
new file mode 100644
index 00000000000..c8f00a9bd5b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-206.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-206.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-207.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-207.xht.ini
new file mode 100644
index 00000000000..48d27cbe8e8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-207.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-207.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-208.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-208.xht.ini
new file mode 100644
index 00000000000..d02aac88418
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-208.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-208.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-211.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-211.xht.ini
new file mode 100644
index 00000000000..92de5fb01ce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-211.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-211.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-212.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-212.xht.ini
new file mode 100644
index 00000000000..d357f9d3b9d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-212.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-212.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-213.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-213.xht.ini
new file mode 100644
index 00000000000..197ba36ad40
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-213.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-213.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-214.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-214.xht.ini
new file mode 100644
index 00000000000..70c63d78e66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-214.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-214.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-215.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-215.xht.ini
new file mode 100644
index 00000000000..43e64e5a3cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-215.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-215.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-216.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-216.xht.ini
new file mode 100644
index 00000000000..1c8c7de48df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-216.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-216.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-217.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-217.xht.ini
new file mode 100644
index 00000000000..da1fd1d4931
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-217.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-217.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-218.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-218.xht.ini
new file mode 100644
index 00000000000..2a767f52e8a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-218.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-218.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-219.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-219.xht.ini
new file mode 100644
index 00000000000..9da196d099a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-219.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-219.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-220.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-220.xht.ini
new file mode 100644
index 00000000000..51ce14fb5b2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-220.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-220.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-221.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-221.xht.ini
new file mode 100644
index 00000000000..8aa48a5df9b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-221.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-221.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-222.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-222.xht.ini
new file mode 100644
index 00000000000..29dc643ffda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-222.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-222.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-223.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-223.xht.ini
new file mode 100644
index 00000000000..6790388f4ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-223.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-223.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-224.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-224.xht.ini
new file mode 100644
index 00000000000..e52685c1649
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-224.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-224.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-225.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-225.xht.ini
new file mode 100644
index 00000000000..c80f9fa8839
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-225.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-225.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-226.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-226.xht.ini
new file mode 100644
index 00000000000..30a54cb3b6b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-226.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-226.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-227.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-227.xht.ini
new file mode 100644
index 00000000000..35d5caeae8d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-227.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-227.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-228.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-228.xht.ini
new file mode 100644
index 00000000000..310898fa94b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-228.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-228.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-229.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-229.xht.ini
new file mode 100644
index 00000000000..60b05db6cde
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-229.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-229.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-230.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-230.xht.ini
new file mode 100644
index 00000000000..ccac74d86f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-230.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-230.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-231.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-231.xht.ini
new file mode 100644
index 00000000000..ad302c32f89
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-231.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-231.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-232.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-232.xht.ini
new file mode 100644
index 00000000000..9631774c970
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-232.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-232.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-233.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-233.xht.ini
new file mode 100644
index 00000000000..a29b9d2d796
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-233.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-233.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-234.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-234.xht.ini
new file mode 100644
index 00000000000..b0d655885f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-234.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-234.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-235.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-235.xht.ini
new file mode 100644
index 00000000000..296fbfd1398
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-235.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-235.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-236.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-236.xht.ini
new file mode 100644
index 00000000000..1a041d4997b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-236.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-236.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-237.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-237.xht.ini
new file mode 100644
index 00000000000..bf65b57352b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-237.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-237.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-238.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-238.xht.ini
new file mode 100644
index 00000000000..63d55125cd6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-238.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-238.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-239.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-239.xht.ini
new file mode 100644
index 00000000000..ac1ba1d271f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-239.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-239.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-240.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-240.xht.ini
new file mode 100644
index 00000000000..f68a125b576
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-240.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-240.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-241.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-241.xht.ini
new file mode 100644
index 00000000000..807c600e42e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-241.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-241.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-242.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-242.xht.ini
new file mode 100644
index 00000000000..70acb91f7f0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-242.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-242.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-243.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-243.xht.ini
new file mode 100644
index 00000000000..b6298d515c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-243.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-243.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-244.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-244.xht.ini
new file mode 100644
index 00000000000..04d27215397
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-244.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-244.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-245.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-245.xht.ini
new file mode 100644
index 00000000000..c08ea3b184d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-245.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-245.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-246.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-246.xht.ini
new file mode 100644
index 00000000000..c95624a9b63
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-246.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-246.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-247.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-247.xht.ini
new file mode 100644
index 00000000000..5dfcd9f7c77
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-247.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-247.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-248.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-248.xht.ini
new file mode 100644
index 00000000000..df86007f514
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-248.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-248.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-249.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-249.xht.ini
new file mode 100644
index 00000000000..628704ccade
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-249.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-249.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-250.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-250.xht.ini
new file mode 100644
index 00000000000..8a97fb683cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-250.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-250.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-251.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-251.xht.ini
new file mode 100644
index 00000000000..75129e7cb12
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-251.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-251.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-252.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-252.xht.ini
new file mode 100644
index 00000000000..42341f83f3e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-252.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-252.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-253.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-253.xht.ini
new file mode 100644
index 00000000000..387a4ed7f95
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-253.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-253.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-254.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-254.xht.ini
new file mode 100644
index 00000000000..b570405d1f3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-254.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-254.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-255.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-255.xht.ini
new file mode 100644
index 00000000000..b12487ab86b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-255.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-255.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-256.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-256.xht.ini
new file mode 100644
index 00000000000..d0e1bbf6276
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-256.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-256.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-257.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-257.xht.ini
new file mode 100644
index 00000000000..9c8afeb1b58
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-257.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-257.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-258.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-258.xht.ini
new file mode 100644
index 00000000000..8948a75e11d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-258.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-258.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-259.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-259.xht.ini
new file mode 100644
index 00000000000..9b14ea3fddc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-259.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-259.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-260.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-260.xht.ini
new file mode 100644
index 00000000000..69db930546d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-260.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-260.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-262.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-262.xht.ini
new file mode 100644
index 00000000000..a9dea60dc8c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-262.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-262.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-263.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-263.xht.ini
new file mode 100644
index 00000000000..1c347085c21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-263.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-263.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-264.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-264.xht.ini
new file mode 100644
index 00000000000..e6a328a3990
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-264.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-264.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-265.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-265.xht.ini
new file mode 100644
index 00000000000..0024570cc1f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-265.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-265.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-266.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-266.xht.ini
new file mode 100644
index 00000000000..9ad9125f730
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-266.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-266.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-267.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-267.xht.ini
new file mode 100644
index 00000000000..567b612933d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-267.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-267.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-268.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-268.xht.ini
new file mode 100644
index 00000000000..b98b0be46dd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-268.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-268.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-269.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-269.xht.ini
new file mode 100644
index 00000000000..3bcf971e56a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-269.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-269.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-270.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-270.xht.ini
new file mode 100644
index 00000000000..8c915759d0d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-270.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-270.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-271.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-271.xht.ini
new file mode 100644
index 00000000000..4e2068af962
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-271.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-271.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-272.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-272.xht.ini
new file mode 100644
index 00000000000..38f92a8359a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-272.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-272.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-273.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-273.xht.ini
new file mode 100644
index 00000000000..74f449529f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-273.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-273.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-274.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-274.xht.ini
new file mode 100644
index 00000000000..b32b3dbd664
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-274.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-274.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-275.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-275.xht.ini
new file mode 100644
index 00000000000..ac60c4032d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-275.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-275.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-276.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-276.xht.ini
new file mode 100644
index 00000000000..b618c64c913
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-276.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-276.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-277.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-277.xht.ini
new file mode 100644
index 00000000000..7fbb34a5ed6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-277.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-277.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-278.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-278.xht.ini
new file mode 100644
index 00000000000..9522bd5c3f3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-278.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-278.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-279.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-279.xht.ini
new file mode 100644
index 00000000000..f6b06dfb56d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-279.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-279.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-280.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-280.xht.ini
new file mode 100644
index 00000000000..4f5b40f6bc3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-280.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-280.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-281.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-281.xht.ini
new file mode 100644
index 00000000000..b66a9ebc3c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-281.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-281.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-282.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-282.xht.ini
new file mode 100644
index 00000000000..1c197418c86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-282.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-282.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-283.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-283.xht.ini
new file mode 100644
index 00000000000..dd67e7d516b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-283.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-283.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-284.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-284.xht.ini
new file mode 100644
index 00000000000..f0bdb74d5a6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-284.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-284.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-285.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-285.xht.ini
new file mode 100644
index 00000000000..0c131628799
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-285.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-285.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-286.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-286.xht.ini
new file mode 100644
index 00000000000..765c088a203
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-286.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-286.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-287.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-287.xht.ini
new file mode 100644
index 00000000000..622a08f912b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-287.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-287.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-288.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-288.xht.ini
new file mode 100644
index 00000000000..940223018fa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-288.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-288.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-289.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-289.xht.ini
new file mode 100644
index 00000000000..985bf422a10
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-289.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-289.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-290.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-290.xht.ini
new file mode 100644
index 00000000000..9a95d3318ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-290.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-290.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-291.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-291.xht.ini
new file mode 100644
index 00000000000..62d1d009b82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-291.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-291.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-292.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-292.xht.ini
new file mode 100644
index 00000000000..a47575bb075
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-292.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-292.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-293.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-293.xht.ini
new file mode 100644
index 00000000000..d60d2f292de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-293.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-293.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-294.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-294.xht.ini
new file mode 100644
index 00000000000..68865235245
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-294.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-294.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-295.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-295.xht.ini
new file mode 100644
index 00000000000..66a32cbdef2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-295.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-295.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-296.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-296.xht.ini
new file mode 100644
index 00000000000..0b280c5b853
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-296.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-296.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-297.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-297.xht.ini
new file mode 100644
index 00000000000..f309172a4a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-297.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-297.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-298.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-298.xht.ini
new file mode 100644
index 00000000000..d388d90eb9e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-298.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-298.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-299.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-299.xht.ini
new file mode 100644
index 00000000000..ac37d70f7cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-299.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-299.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-300.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-300.xht.ini
new file mode 100644
index 00000000000..209c3d9c952
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-300.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-300.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-301.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-301.xht.ini
new file mode 100644
index 00000000000..390bc7096b8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-301.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-301.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-302.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-302.xht.ini
new file mode 100644
index 00000000000..31b94bda535
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-302.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-302.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-303.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-303.xht.ini
new file mode 100644
index 00000000000..44f33b276e2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-303.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-303.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-304.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-304.xht.ini
new file mode 100644
index 00000000000..848873f3123
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-304.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-304.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-305.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-305.xht.ini
new file mode 100644
index 00000000000..d47e26c239b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-305.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-305.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-306.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-306.xht.ini
new file mode 100644
index 00000000000..1d625e0cd05
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-306.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-306.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-307.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-307.xht.ini
new file mode 100644
index 00000000000..b0f8aff7f34
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-307.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-307.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-308.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-308.xht.ini
new file mode 100644
index 00000000000..4b4bb58098a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-308.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-308.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-309.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-309.xht.ini
new file mode 100644
index 00000000000..401eccd76ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-309.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-309.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-310.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-310.xht.ini
new file mode 100644
index 00000000000..676b4721d72
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-310.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-310.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-311.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-311.xht.ini
new file mode 100644
index 00000000000..7302375fd8b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-311.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-311.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-312.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-312.xht.ini
new file mode 100644
index 00000000000..cbcdc66ec73
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-312.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-312.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-313.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-313.xht.ini
new file mode 100644
index 00000000000..bfdd94d608f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-313.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-313.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-314.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-314.xht.ini
new file mode 100644
index 00000000000..772eff69e66
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-314.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-314.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-315.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-315.xht.ini
new file mode 100644
index 00000000000..90273ce092f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-315.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-315.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-316.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-316.xht.ini
new file mode 100644
index 00000000000..930f0a7530b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-316.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-316.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-317.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-317.xht.ini
new file mode 100644
index 00000000000..2f1502b69fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-317.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-317.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-318.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-318.xht.ini
new file mode 100644
index 00000000000..5915b637e9b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-318.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-318.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-319.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-319.xht.ini
new file mode 100644
index 00000000000..29d8e6eaa14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-319.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-319.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-320.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-320.xht.ini
new file mode 100644
index 00000000000..612210db2e8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-320.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-320.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-321.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-321.xht.ini
new file mode 100644
index 00000000000..fa347e632a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-321.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-321.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-322.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-322.xht.ini
new file mode 100644
index 00000000000..65e36b0ef28
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-322.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-322.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-323.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-323.xht.ini
new file mode 100644
index 00000000000..11cfe97633e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-323.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-323.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-324.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-324.xht.ini
new file mode 100644
index 00000000000..3d8e79ed3ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-324.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-324.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-325.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-325.xht.ini
new file mode 100644
index 00000000000..b63bf4be1f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-325.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-325.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-326.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-326.xht.ini
new file mode 100644
index 00000000000..7cc620fb7c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-326.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-326.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-327.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-327.xht.ini
new file mode 100644
index 00000000000..3e050a2c38d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-327.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-327.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-328.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-328.xht.ini
new file mode 100644
index 00000000000..2f667685d2c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-328.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-328.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-329.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-329.xht.ini
new file mode 100644
index 00000000000..87a69ec4bef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-329.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-329.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-330.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-330.xht.ini
new file mode 100644
index 00000000000..aaf74b7db53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-330.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-330.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-331.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-331.xht.ini
new file mode 100644
index 00000000000..0161ae558fe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-331.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-331.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-332.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-332.xht.ini
new file mode 100644
index 00000000000..a74622382ef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-332.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-332.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-333.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-333.xht.ini
new file mode 100644
index 00000000000..bbdb33e4f02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-333.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-333.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-334.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-334.xht.ini
new file mode 100644
index 00000000000..7622a416b0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-334.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-334.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-335.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-335.xht.ini
new file mode 100644
index 00000000000..8abcd07f2e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-335.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-335.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-336.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-336.xht.ini
new file mode 100644
index 00000000000..5df2303fe19
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-336.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-336.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-337.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-337.xht.ini
new file mode 100644
index 00000000000..ce69cfb679e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-337.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-337.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-338.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-338.xht.ini
new file mode 100644
index 00000000000..d78d3920044
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-338.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-338.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-339.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-339.xht.ini
new file mode 100644
index 00000000000..bf46629ccd6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-339.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-339.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-340.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-340.xht.ini
new file mode 100644
index 00000000000..9f9a48fc806
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-340.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-340.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-341.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-341.xht.ini
new file mode 100644
index 00000000000..3ff13555ef3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-341.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-341.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-342.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-342.xht.ini
new file mode 100644
index 00000000000..03b4d4b7581
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-342.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-342.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-343.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-343.xht.ini
new file mode 100644
index 00000000000..1ea5e4525b0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-343.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-343.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-344.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-344.xht.ini
new file mode 100644
index 00000000000..18a2c696e62
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-344.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-344.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-345.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-345.xht.ini
new file mode 100644
index 00000000000..7677cbff5d3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-345.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-345.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-346.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-346.xht.ini
new file mode 100644
index 00000000000..54432fc620e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-346.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-346.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-347.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-347.xht.ini
new file mode 100644
index 00000000000..22fe051ddae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-347.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-347.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-348.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-348.xht.ini
new file mode 100644
index 00000000000..56411921667
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-348.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-348.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-349.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-349.xht.ini
new file mode 100644
index 00000000000..37b78600b30
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-349.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-349.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-350.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-350.xht.ini
new file mode 100644
index 00000000000..8ba014f8969
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-350.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-350.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-351.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-351.xht.ini
new file mode 100644
index 00000000000..0f87c6b90ef
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-351.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-351.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-352.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-352.xht.ini
new file mode 100644
index 00000000000..a555e11f31c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-352.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-352.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-353.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-353.xht.ini
new file mode 100644
index 00000000000..8cca7725526
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-353.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-353.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-354.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-354.xht.ini
new file mode 100644
index 00000000000..d49b42ee055
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-354.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-354.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-355.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-355.xht.ini
new file mode 100644
index 00000000000..418b58584fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-355.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-355.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-356.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-356.xht.ini
new file mode 100644
index 00000000000..fd5d925b46e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-356.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-356.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-357.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-357.xht.ini
new file mode 100644
index 00000000000..cbe62658587
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-357.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-357.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-359.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-359.xht.ini
new file mode 100644
index 00000000000..1ed3543b821
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-359.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-359.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-360.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-360.xht.ini
new file mode 100644
index 00000000000..e90fcfa32a9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-360.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-360.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-361.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-361.xht.ini
new file mode 100644
index 00000000000..c61faf454c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-361.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-361.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-362.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-362.xht.ini
new file mode 100644
index 00000000000..7f89f6e2bf1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-362.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-362.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-363.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-363.xht.ini
new file mode 100644
index 00000000000..5494a7a903f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-363.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-363.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-364.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-364.xht.ini
new file mode 100644
index 00000000000..ea0e168d065
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-364.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-364.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-365.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-365.xht.ini
new file mode 100644
index 00000000000..cb298bfb45d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-365.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-365.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-366.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-366.xht.ini
new file mode 100644
index 00000000000..d6ad429ffd7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-366.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-366.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-367.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-367.xht.ini
new file mode 100644
index 00000000000..9eb44a105cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-367.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-367.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-368.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-368.xht.ini
new file mode 100644
index 00000000000..49757792f76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-368.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-368.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-369.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-369.xht.ini
new file mode 100644
index 00000000000..74a01387506
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-369.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-369.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-370.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-370.xht.ini
new file mode 100644
index 00000000000..811ff15e467
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-370.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-370.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-371.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-371.xht.ini
new file mode 100644
index 00000000000..33188dc91dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-371.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-371.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-372.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-372.xht.ini
new file mode 100644
index 00000000000..018400a3c1b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-372.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-372.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-373.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-373.xht.ini
new file mode 100644
index 00000000000..14f7040e58d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-373.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-373.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-374.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-374.xht.ini
new file mode 100644
index 00000000000..8562b93c9c0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-374.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-374.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-375.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-375.xht.ini
new file mode 100644
index 00000000000..79c2538c381
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-375.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-375.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-376.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-376.xht.ini
new file mode 100644
index 00000000000..9e566f93812
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-376.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-376.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-377.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-377.xht.ini
new file mode 100644
index 00000000000..c0de5fa78be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-377.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-377.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-378.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-378.xht.ini
new file mode 100644
index 00000000000..3b7eadeb7ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-378.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-378.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-379.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-379.xht.ini
new file mode 100644
index 00000000000..1c84d488d0f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-379.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-379.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-380.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-380.xht.ini
new file mode 100644
index 00000000000..05d31e74fd0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-380.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-380.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-381.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-381.xht.ini
new file mode 100644
index 00000000000..47c275a7524
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-381.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-381.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-382.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-382.xht.ini
new file mode 100644
index 00000000000..b6098840cbb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-382.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-382.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-383.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-383.xht.ini
new file mode 100644
index 00000000000..bc38cc7d8a2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-383.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-383.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-384.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-384.xht.ini
new file mode 100644
index 00000000000..255aa40f563
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-384.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-384.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-385.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-385.xht.ini
new file mode 100644
index 00000000000..36f39cb28d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-385.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-385.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-386.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-386.xht.ini
new file mode 100644
index 00000000000..25f3e9df983
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-386.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-386.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-387.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-387.xht.ini
new file mode 100644
index 00000000000..b428dbcf84c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-387.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-387.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-388.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-388.xht.ini
new file mode 100644
index 00000000000..ee4522be9ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-388.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-388.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-389.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-389.xht.ini
new file mode 100644
index 00000000000..d5033b7702c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-389.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-389.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-390.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-390.xht.ini
new file mode 100644
index 00000000000..8fb41b70dcd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-390.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-390.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-391.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-391.xht.ini
new file mode 100644
index 00000000000..fa190cdd88b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-391.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-391.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-392.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-392.xht.ini
new file mode 100644
index 00000000000..b90d9c01cb2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-392.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-392.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-393.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-393.xht.ini
new file mode 100644
index 00000000000..3b5d91902c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-393.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-393.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-394.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-394.xht.ini
new file mode 100644
index 00000000000..7b452be7242
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-394.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-394.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-395.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-395.xht.ini
new file mode 100644
index 00000000000..97f23aa9d13
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-395.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-395.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-396.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-396.xht.ini
new file mode 100644
index 00000000000..c4b3f440562
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-396.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-396.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-397.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-397.xht.ini
new file mode 100644
index 00000000000..7b6b79a412e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-397.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-397.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-398.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-398.xht.ini
new file mode 100644
index 00000000000..42d17b359c3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-398.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-398.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-399.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-399.xht.ini
new file mode 100644
index 00000000000..d875c32af20
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-399.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-399.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-400.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-400.xht.ini
new file mode 100644
index 00000000000..99b8b112eee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-400.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-400.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-401.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-401.xht.ini
new file mode 100644
index 00000000000..b22c51202b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-401.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-401.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-402.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-402.xht.ini
new file mode 100644
index 00000000000..e39556d39c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-402.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-402.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-403.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-403.xht.ini
new file mode 100644
index 00000000000..f09b96df47d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-403.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-403.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-404.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-404.xht.ini
new file mode 100644
index 00000000000..fcd75b014d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-404.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-404.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-405.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-405.xht.ini
new file mode 100644
index 00000000000..375bf51a084
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-405.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-405.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-406.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-406.xht.ini
new file mode 100644
index 00000000000..73ce87e3b61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-406.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-406.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-407.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-407.xht.ini
new file mode 100644
index 00000000000..25f8913dfaf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-407.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-407.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-408.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-408.xht.ini
new file mode 100644
index 00000000000..c96d7d90fd1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-408.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-408.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-409.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-409.xht.ini
new file mode 100644
index 00000000000..e55c683a578
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-409.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-409.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-410.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-410.xht.ini
new file mode 100644
index 00000000000..d4f7e041a03
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-410.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-410.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-411.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-411.xht.ini
new file mode 100644
index 00000000000..414a4fcb10c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-411.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-411.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-412.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-412.xht.ini
new file mode 100644
index 00000000000..cc01b45b73f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-punctuation-412.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-punctuation-412.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-001.xht.ini
new file mode 100644
index 00000000000..c76a471634e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-quote-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-002.xht.ini
new file mode 100644
index 00000000000..c8f62d9a7ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-002.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-quote-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-003.xht.ini
new file mode 100644
index 00000000000..0373c15650c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-003.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-quote-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-004.xht.ini
new file mode 100644
index 00000000000..ff7f8e6818e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-004.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-quote-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-005.xht.ini
new file mode 100644
index 00000000000..3405fc747ca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-005.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-quote-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-006.xht.ini
new file mode 100644
index 00000000000..7aa2ccb4227
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-quote-006.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-quote-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-000.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-000.xht.ini
new file mode 100644
index 00000000000..fb274076bf4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-000.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-000.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-001.xht.ini
new file mode 100644
index 00000000000..f71d075b3df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-001.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-003.xht.ini
new file mode 100644
index 00000000000..48f477d036d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-003.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-004.xht.ini
new file mode 100644
index 00000000000..faf827cccdb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-004.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-007.xht.ini
new file mode 100644
index 00000000000..c006021a56a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-007.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-008.xht.ini
new file mode 100644
index 00000000000..ec4af304cb4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-008.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-019.xht.ini
new file mode 100644
index 00000000000..b32a0c68330
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-019.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-028.xht.ini
new file mode 100644
index 00000000000..303f5e9c05c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-letter-selector-028.xht.ini
@@ -0,0 +1,2 @@
+[first-letter-selector-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-001.xht.ini
new file mode 100644
index 00000000000..47abdc0fadb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-001.xht.ini
@@ -0,0 +1,2 @@
+[first-line-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-floats-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-floats-002.xht.ini
new file mode 100644
index 00000000000..bee6ae923eb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-floats-002.xht.ini
@@ -0,0 +1,2 @@
+[first-line-floats-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-012.xht.ini
new file mode 100644
index 00000000000..76933068694
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-012.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-015.xht.ini
new file mode 100644
index 00000000000..652a17c0122
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-015.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-016.xht.ini
new file mode 100644
index 00000000000..9ebbcec8497
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-016.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-018.xht.ini
new file mode 100644
index 00000000000..4c72de8e529
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-018.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-019.xht.ini
new file mode 100644
index 00000000000..b2ba32649d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-019.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-020.xht.ini
new file mode 100644
index 00000000000..013dba5388f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-020.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-021.xht.ini
new file mode 100644
index 00000000000..5154b39f398
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-pseudo-021.xht.ini
@@ -0,0 +1,2 @@
+[first-line-pseudo-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-selector-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-selector-013.xht.ini
new file mode 100644
index 00000000000..a64d413f1d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/first-line-selector-013.xht.ini
@@ -0,0 +1,2 @@
+[first-line-selector-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-005.xht.ini
new file mode 100644
index 00000000000..d69bffd166e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-005.xht.ini
@@ -0,0 +1,2 @@
+[lang-selector-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-006.xht.ini
new file mode 100644
index 00000000000..cc564d2ee4b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/lang-selector-006.xht.ini
@@ -0,0 +1,2 @@
+[lang-selector-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-002.xht.ini
new file mode 100644
index 00000000000..d73787fbc06
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-002.xht.ini
@@ -0,0 +1,2 @@
+[pseudo-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-006.xht.ini
new file mode 100644
index 00000000000..5711ca8dbeb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-006.xht.ini
@@ -0,0 +1,2 @@
+[pseudo-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-007.xht.ini
new file mode 100644
index 00000000000..e3370899981
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/selectors/pseudo-007.xht.ini
@@ -0,0 +1,2 @@
+[pseudo-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini
new file mode 100644
index 00000000000..805fb5ef146
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/composite-change-after-scroll-preserves-stacking-order.html.ini
@@ -0,0 +1,2 @@
+[composite-change-after-scroll-preserves-stacking-order.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini
new file mode 100644
index 00000000000..cd8ee521d3d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-parent-stacking-context.html.ini
@@ -0,0 +1,2 @@
+[opacity-change-parent-stacking-context.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini
new file mode 100644
index 00000000000..2e6fd71a501
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/stacking-context/opacity-change-twice-stacking-context.html.ini
@@ -0,0 +1,2 @@
+[opacity-change-twice-stacking-context.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-010.xht.ini
new file mode 100644
index 00000000000..497a2181409
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-010.xht.ini
@@ -0,0 +1,2 @@
+[at-charset-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-011.xht.ini
new file mode 100644
index 00000000000..ff1db62ab31
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-011.xht.ini
@@ -0,0 +1,2 @@
+[at-charset-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-012.xht.ini
new file mode 100644
index 00000000000..8caa8c3c971
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/at-charset-012.xht.ini
@@ -0,0 +1,2 @@
+[at-charset-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-003.xht.ini
new file mode 100644
index 00000000000..c482b07c3d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-003.xht.ini
@@ -0,0 +1,2 @@
+[case-sensitive-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-004.xht.ini
new file mode 100644
index 00000000000..bebe7500c99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-004.xht.ini
@@ -0,0 +1,2 @@
+[case-sensitive-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-005.xht.ini
new file mode 100644
index 00000000000..3c448219e43
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/case-sensitive-005.xht.ini
@@ -0,0 +1,2 @@
+[case-sensitive-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/characters-0080-009F-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/characters-0080-009F-001.xht.ini
new file mode 100644
index 00000000000..edbda69270a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/characters-0080-009F-001.xht.ini
@@ -0,0 +1,2 @@
+[characters-0080-009F-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/charset-attr-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/charset-attr-001.xht.ini
new file mode 100644
index 00000000000..ff1db162127
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/charset-attr-001.xht.ini
@@ -0,0 +1,2 @@
+[charset-attr-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-001.xht.ini
new file mode 100644
index 00000000000..9f7367b715e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-001.xht.ini
@@ -0,0 +1,2 @@
+[counters-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-003.xht.ini
new file mode 100644
index 00000000000..0b1671304a3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-003.xht.ini
@@ -0,0 +1,2 @@
+[counters-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-004.xht.ini
new file mode 100644
index 00000000000..c269faa88e2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-004.xht.ini
@@ -0,0 +1,2 @@
+[counters-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-005.xht.ini
new file mode 100644
index 00000000000..2acef3ba6f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-005.xht.ini
@@ -0,0 +1,2 @@
+[counters-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-006.xht.ini
new file mode 100644
index 00000000000..ed6701ecc88
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-006.xht.ini
@@ -0,0 +1,2 @@
+[counters-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-007.xht.ini
new file mode 100644
index 00000000000..9dbf503a384
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-007.xht.ini
@@ -0,0 +1,2 @@
+[counters-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-008.xht.ini
new file mode 100644
index 00000000000..82b82fdb708
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-008.xht.ini
@@ -0,0 +1,2 @@
+[counters-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-009.xht.ini
new file mode 100644
index 00000000000..215df48e5af
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-009.xht.ini
@@ -0,0 +1,2 @@
+[counters-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-010.xht.ini
new file mode 100644
index 00000000000..411883aec01
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/counters-010.xht.ini
@@ -0,0 +1,2 @@
+[counters-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/declarations-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/declarations-009.xht.ini
new file mode 100644
index 00000000000..534f429278e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/declarations-009.xht.ini
@@ -0,0 +1,2 @@
+[declarations-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/syntax/uri-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/uri-013.xht.ini
new file mode 100644
index 00000000000..2ab88ce7f21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/syntax/uri-013.xht.ini
@@ -0,0 +1,2 @@
+[uri-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/anonymous-table-box-width-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/anonymous-table-box-width-001.xht.ini
new file mode 100644
index 00000000000..28346b3de29
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/anonymous-table-box-width-001.xht.ini
@@ -0,0 +1,2 @@
+[anonymous-table-box-width-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-001.xht.ini
new file mode 100644
index 00000000000..cc15e3d6178
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-001.xht.ini
@@ -0,0 +1,2 @@
+[border-collapse-dynamic-row-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-002.xht.ini
new file mode 100644
index 00000000000..41977c87e6e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-002.xht.ini
@@ -0,0 +1,2 @@
+[border-collapse-dynamic-row-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-003.xht.ini
new file mode 100644
index 00000000000..96bb18e51f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-collapse-dynamic-row-003.xht.ini
@@ -0,0 +1,2 @@
+[border-collapse-dynamic-row-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001a.xht.ini
new file mode 100644
index 00000000000..9484e1d8057
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001a.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-element-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001b.xht.ini
new file mode 100644
index 00000000000..a5b4e04cf02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001b.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-element-001b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001c.xht.ini
new file mode 100644
index 00000000000..7b6ecc32c4c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001c.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-element-001c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001d.xht.ini
new file mode 100644
index 00000000000..b3edbbc8e7f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001d.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-element-001d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001e.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001e.xht.ini
new file mode 100644
index 00000000000..e1491b7dd3c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-conflict-element-001e.xht.ini
@@ -0,0 +1,2 @@
+[border-conflict-element-001e.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-spacing-percentage-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-spacing-percentage-001.xht.ini
new file mode 100644
index 00000000000..72dd7ce8a53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/border-spacing-percentage-001.xht.ini
@@ -0,0 +1,2 @@
+[border-spacing-percentage-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-position-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-position-001.xht.ini
new file mode 100644
index 00000000000..4dbeae98742
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-position-001.xht.ini
@@ -0,0 +1,2 @@
+[caption-position-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-006.xht.ini
new file mode 100644
index 00000000000..6f29c8befb5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-007.xht.ini
new file mode 100644
index 00000000000..fb449a5f070
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-008.xht.ini
new file mode 100644
index 00000000000..1065189ac29
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-009.xht.ini
new file mode 100644
index 00000000000..0eb716ec044
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-010.xht.ini
new file mode 100644
index 00000000000..ecd8fa88f55
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-010.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-011.xht.ini
new file mode 100644
index 00000000000..5dd2590cb1c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-011.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-012.xht.ini
new file mode 100644
index 00000000000..65c46ff0a75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-013.xht.ini
new file mode 100644
index 00000000000..b5471a03bda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-014.xht.ini
new file mode 100644
index 00000000000..e0966065d5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-015.xht.ini
new file mode 100644
index 00000000000..2f2675cece7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-017.xht.ini
new file mode 100644
index 00000000000..aff6327732c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/caption-side-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[caption-side-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-001.xht.ini
new file mode 100644
index 00000000000..abddf3911b3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-001.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-003.xht.ini
new file mode 100644
index 00000000000..7fb8503eead
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-003.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-004.xht.ini
new file mode 100644
index 00000000000..3b8a5b0dc8b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-004.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-007.xht.ini
new file mode 100644
index 00000000000..321f7ff4b22
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-007.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-008.xht.ini
new file mode 100644
index 00000000000..f25121149e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-008.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-009.xht.ini
new file mode 100644
index 00000000000..762c5baed53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-009.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010a.xht.ini
new file mode 100644
index 00000000000..e9bf7e68d55
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010a.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-010a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010b.xht.ini
new file mode 100644
index 00000000000..eb0cbc88ca1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/collapsing-border-model-010b.xht.ini
@@ -0,0 +1,2 @@
+[collapsing-border-model-010b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/column-visibility-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/column-visibility-004.xht.ini
new file mode 100644
index 00000000000..a8f26b3611b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/column-visibility-004.xht.ini
@@ -0,0 +1,2 @@
+[column-visibility-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-008.xht.ini
new file mode 100644
index 00000000000..65c796c82db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-009.xht.ini
new file mode 100644
index 00000000000..dd33034b4ac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-010.xht.ini
new file mode 100644
index 00000000000..8f2036b17e4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-010.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-011.xht.ini
new file mode 100644
index 00000000000..d98081ecc7f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-011.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-012.xht.ini
new file mode 100644
index 00000000000..47d69f27b04
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-013.xht.ini
new file mode 100644
index 00000000000..1a64ea53c6a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-014.xht.ini
new file mode 100644
index 00000000000..226f84cb5f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-017.xht.ini
new file mode 100644
index 00000000000..e46762fdb65
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/empty-cells-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[empty-cells-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-002a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-002a.xht.ini
new file mode 100644
index 00000000000..95812a95a18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-002a.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-002a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a01.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a01.xht.ini
new file mode 100644
index 00000000000..520059fb85d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a01.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003a01.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a02.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a02.xht.ini
new file mode 100644
index 00000000000..0e16108b883
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a02.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003a02.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a03.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a03.xht.ini
new file mode 100644
index 00000000000..44083ca295d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a03.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003a03.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a04.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a04.xht.ini
new file mode 100644
index 00000000000..0dc9004be45
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a04.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003a04.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a05.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a05.xht.ini
new file mode 100644
index 00000000000..4b17e46b7a8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a05.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003a05.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a06.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a06.xht.ini
new file mode 100644
index 00000000000..fa50c3011ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003a06.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003a06.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b01.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b01.xht.ini
new file mode 100644
index 00000000000..a2eb9d76325
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b01.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b01.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b02.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b02.xht.ini
new file mode 100644
index 00000000000..1ffc770f94a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b02.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b02.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b03.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b03.xht.ini
new file mode 100644
index 00000000000..89bf3660b25
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b03.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b03.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b04.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b04.xht.ini
new file mode 100644
index 00000000000..5d74d444b47
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b04.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b04.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b05.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b05.xht.ini
new file mode 100644
index 00000000000..f6daa39f735
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b05.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b05.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b06.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b06.xht.ini
new file mode 100644
index 00000000000..ff9c943aabc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b06.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b06.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b07.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b07.xht.ini
new file mode 100644
index 00000000000..8d064f14feb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b07.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b07.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b08.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b08.xht.ini
new file mode 100644
index 00000000000..1ac28e11028
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b08.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b08.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b09.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b09.xht.ini
new file mode 100644
index 00000000000..0c94c573916
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b09.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b09.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b10.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b10.xht.ini
new file mode 100644
index 00000000000..5216a678904
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b10.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b10.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b11.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b11.xht.ini
new file mode 100644
index 00000000000..44bd69aaa5d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b11.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b11.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b12.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b12.xht.ini
new file mode 100644
index 00000000000..9bf7c48d5e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003b12.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003b12.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c01.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c01.xht.ini
new file mode 100644
index 00000000000..7997b2df600
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c01.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c01.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c02.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c02.xht.ini
new file mode 100644
index 00000000000..f45a17492f2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c02.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c02.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c03.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c03.xht.ini
new file mode 100644
index 00000000000..bc7bdd43de7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c03.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c03.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c04.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c04.xht.ini
new file mode 100644
index 00000000000..9f21980c160
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c04.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c04.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c05.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c05.xht.ini
new file mode 100644
index 00000000000..d9e02340a21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c05.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c05.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c06.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c06.xht.ini
new file mode 100644
index 00000000000..e6a1cd91f1e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c06.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c06.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c07.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c07.xht.ini
new file mode 100644
index 00000000000..32abd51caf4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c07.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c07.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c08.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c08.xht.ini
new file mode 100644
index 00000000000..6a59c294df0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003c08.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003c08.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d01.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d01.xht.ini
new file mode 100644
index 00000000000..b04612af63e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d01.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003d01.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d02.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d02.xht.ini
new file mode 100644
index 00000000000..521d83c6bbf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d02.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003d02.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d03.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d03.xht.ini
new file mode 100644
index 00000000000..4d133e4ecb6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d03.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003d03.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d04.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d04.xht.ini
new file mode 100644
index 00000000000..0dc73e7a7fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d04.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003d04.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d05.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d05.xht.ini
new file mode 100644
index 00000000000..2e95996169c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d05.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003d05.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d06.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d06.xht.ini
new file mode 100644
index 00000000000..d644433e7fc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003d06.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003d06.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e01.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e01.xht.ini
new file mode 100644
index 00000000000..ac4dc094bac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e01.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e01.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e02.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e02.xht.ini
new file mode 100644
index 00000000000..0c612408fd2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e02.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e02.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e03.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e03.xht.ini
new file mode 100644
index 00000000000..57ae7439250
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e03.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e03.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e04.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e04.xht.ini
new file mode 100644
index 00000000000..6223ac5514a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e04.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e04.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e05.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e05.xht.ini
new file mode 100644
index 00000000000..ad8f467cd4a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e05.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e05.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e06.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e06.xht.ini
new file mode 100644
index 00000000000..2c5b3573eac
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e06.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e06.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e07.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e07.xht.ini
new file mode 100644
index 00000000000..992c95d7f1a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e07.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e07.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e08.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e08.xht.ini
new file mode 100644
index 00000000000..2229fd68f72
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e08.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e08.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e09.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e09.xht.ini
new file mode 100644
index 00000000000..975703becce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e09.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e09.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e10.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e10.xht.ini
new file mode 100644
index 00000000000..1729d8ed270
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e10.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e10.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e11.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e11.xht.ini
new file mode 100644
index 00000000000..c68abad62fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e11.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e11.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e12.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e12.xht.ini
new file mode 100644
index 00000000000..9bf489dc19c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003e12.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003e12.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f01.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f01.xht.ini
new file mode 100644
index 00000000000..b0638b4a84f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f01.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f01.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f02.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f02.xht.ini
new file mode 100644
index 00000000000..8fcad93b7e2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f02.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f02.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f03.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f03.xht.ini
new file mode 100644
index 00000000000..bb669562829
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f03.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f03.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f04.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f04.xht.ini
new file mode 100644
index 00000000000..2fac48ecc06
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f04.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f04.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f05.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f05.xht.ini
new file mode 100644
index 00000000000..00957756ac4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f05.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f05.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f06.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f06.xht.ini
new file mode 100644
index 00000000000..fdf1ce8e25e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f06.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f06.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f07.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f07.xht.ini
new file mode 100644
index 00000000000..8615dc4a13b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f07.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f07.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f08.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f08.xht.ini
new file mode 100644
index 00000000000..02211151900
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-003f08.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-003f08.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-017.xht.ini
new file mode 100644
index 00000000000..67eeb2283f6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-017.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-018.xht.ini
new file mode 100644
index 00000000000..12249988f34
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-018.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-019.xht.ini
new file mode 100644
index 00000000000..aa137e60d59
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-019.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-020.xht.ini
new file mode 100644
index 00000000000..a2104178ed0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-020.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-021.xht.ini
new file mode 100644
index 00000000000..1d280301286
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-021.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-022.xht.ini
new file mode 100644
index 00000000000..1c2dec056d2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-022.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-023.xht.ini
new file mode 100644
index 00000000000..a79a648b47d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-023.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-025.xht.ini
new file mode 100644
index 00000000000..c57b2d96b7d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-025.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-026.xht.ini
new file mode 100644
index 00000000000..383f4fa9e1e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-026.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-027.xht.ini
new file mode 100644
index 00000000000..372cb6b045d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-027.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-028.xht.ini
new file mode 100644
index 00000000000..eda6802b634
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-028.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-029.xht.ini
new file mode 100644
index 00000000000..4a5b916b9c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-029.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-030.xht.ini
new file mode 100644
index 00000000000..93defe891d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-030.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-031.xht.ini
new file mode 100644
index 00000000000..0879e32f142
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/fixed-table-layout-031.xht.ini
@@ -0,0 +1,2 @@
+[fixed-table-layout-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-table-cell-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-table-cell-001.xht.ini
new file mode 100644
index 00000000000..6fea2a4bc5e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-table-cell-001.xht.ini
@@ -0,0 +1,2 @@
+[height-table-cell-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001.xht.ini
new file mode 100644
index 00000000000..571ef76379b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001.xht.ini
@@ -0,0 +1,2 @@
+[height-width-inline-table-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001a.xht.ini
new file mode 100644
index 00000000000..9f3b1bde264
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001a.xht.ini
@@ -0,0 +1,2 @@
+[height-width-inline-table-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001b.xht.ini
new file mode 100644
index 00000000000..7a2de295034
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001b.xht.ini
@@ -0,0 +1,2 @@
+[height-width-inline-table-001b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001c.xht.ini
new file mode 100644
index 00000000000..2be1f26fd63
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001c.xht.ini
@@ -0,0 +1,2 @@
+[height-width-inline-table-001c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001d.xht.ini
new file mode 100644
index 00000000000..2dab81e6017
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001d.xht.ini
@@ -0,0 +1,2 @@
+[height-width-inline-table-001d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001e.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001e.xht.ini
new file mode 100644
index 00000000000..7bf7416a30e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-inline-table-001e.xht.ini
@@ -0,0 +1,2 @@
+[height-width-inline-table-001e.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001.xht.ini
new file mode 100644
index 00000000000..b8444d7a4ab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001.xht.ini
@@ -0,0 +1,2 @@
+[height-width-table-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001a.xht.ini
new file mode 100644
index 00000000000..c63f911ca04
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001a.xht.ini
@@ -0,0 +1,2 @@
+[height-width-table-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001b.xht.ini
new file mode 100644
index 00000000000..2ea213a18bf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001b.xht.ini
@@ -0,0 +1,2 @@
+[height-width-table-001b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001c.xht.ini
new file mode 100644
index 00000000000..c4df897dc76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001c.xht.ini
@@ -0,0 +1,2 @@
+[height-width-table-001c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001d.xht.ini
new file mode 100644
index 00000000000..2634e6b790e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001d.xht.ini
@@ -0,0 +1,2 @@
+[height-width-table-001d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001e.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001e.xht.ini
new file mode 100644
index 00000000000..f9847e3a50b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/height-width-table-001e.xht.ini
@@ -0,0 +1,2 @@
+[height-width-table-001e.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/padding-applies-to-013a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/padding-applies-to-013a.xht.ini
new file mode 100644
index 00000000000..a2a55d1df7c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/padding-applies-to-013a.xht.ini
@@ -0,0 +1,2 @@
+[padding-applies-to-013a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-001.xht.ini
new file mode 100644
index 00000000000..723b6885faa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-001.xht.ini
@@ -0,0 +1,2 @@
+[row-visibility-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-002.xht.ini
new file mode 100644
index 00000000000..61fbc5acc76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/row-visibility-002.xht.ini
@@ -0,0 +1,2 @@
+[row-visibility-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003a.xht.ini
new file mode 100644
index 00000000000..f0fb22d7cdb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003a.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-003a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003b.xht.ini
new file mode 100644
index 00000000000..4e4e2a07538
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-003b.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-003b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004a.xht.ini
new file mode 100644
index 00000000000..81b492ba93c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004a.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-004a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004b.xht.ini
new file mode 100644
index 00000000000..4e9cd35b5aa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004b.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-004b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004c.xht.ini
new file mode 100644
index 00000000000..66bf8eb7017
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004c.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-004c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004d.xht.ini
new file mode 100644
index 00000000000..4991c6dd8d6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004d.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-004d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004e.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004e.xht.ini
new file mode 100644
index 00000000000..74c677d679b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-004e.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-004e.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-007.xht.ini
new file mode 100644
index 00000000000..4212826241c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-007.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-008.xht.ini
new file mode 100644
index 00000000000..7535b349492
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-008.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-009.xht.ini
new file mode 100644
index 00000000000..2a6b14fa145
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/separated-border-model-009.xht.ini
@@ -0,0 +1,2 @@
+[separated-border-model-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-011.xht.ini
new file mode 100644
index 00000000000..d230ae4bafb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-011.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-012.xht.ini
new file mode 100644
index 00000000000..e08d936cda1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-012.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-015.xht.ini
new file mode 100644
index 00000000000..65758d60ef4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-015.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-016.xht.ini
new file mode 100644
index 00000000000..d4477181430
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-016.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-017.xht.ini
new file mode 100644
index 00000000000..ba7c827e2ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-017.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-018.xht.ini
new file mode 100644
index 00000000000..bc5562ed223
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-018.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-019.xht.ini
new file mode 100644
index 00000000000..6c1b4facab6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-019.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-020.xht.ini
new file mode 100644
index 00000000000..17a5bcdfab4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-020.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-059.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-059.xht.ini
new file mode 100644
index 00000000000..bd7f7c29b84
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-059.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-059.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-060.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-060.xht.ini
new file mode 100644
index 00000000000..7a133b9a708
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-060.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-060.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-061.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-061.xht.ini
new file mode 100644
index 00000000000..849f9a8f3da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-061.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-061.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-062.xht.ini
new file mode 100644
index 00000000000..7a3a6cbd4ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-062.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-063.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-063.xht.ini
new file mode 100644
index 00000000000..80c0866b91b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-063.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-063.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-064.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-064.xht.ini
new file mode 100644
index 00000000000..5883298b599
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-064.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-064.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-065.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-065.xht.ini
new file mode 100644
index 00000000000..d8b598e1bba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-065.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-065.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-066.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-066.xht.ini
new file mode 100644
index 00000000000..b7ca756b6b4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-066.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-066.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-067.xht.ini
new file mode 100644
index 00000000000..8da63e0f898
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-067.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-068.xht.ini
new file mode 100644
index 00000000000..a1e48535209
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-068.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-069.xht.ini
new file mode 100644
index 00000000000..f7b15e03f5e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-069.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-070.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-070.xht.ini
new file mode 100644
index 00000000000..067295b2e2f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-070.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-070.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-071.xht.ini
new file mode 100644
index 00000000000..b7f2cb6e4f5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-071.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-072.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-072.xht.ini
new file mode 100644
index 00000000000..ce492ace3c2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-072.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-072.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-073.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-073.xht.ini
new file mode 100644
index 00000000000..49c9f431fb4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-073.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-073.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-074.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-074.xht.ini
new file mode 100644
index 00000000000..b47564cf97b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-074.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-074.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-075.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-075.xht.ini
new file mode 100644
index 00000000000..61bec01ed6c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-075.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-075.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-076.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-076.xht.ini
new file mode 100644
index 00000000000..c802b73d024
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-076.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-076.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-077.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-077.xht.ini
new file mode 100644
index 00000000000..4a97c286f93
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-077.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-077.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-078.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-078.xht.ini
new file mode 100644
index 00000000000..20473af0d96
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-078.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-078.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-079.xht.ini
new file mode 100644
index 00000000000..be629750587
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-079.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-080.xht.ini
new file mode 100644
index 00000000000..85071f93fc2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-080.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-081.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-081.xht.ini
new file mode 100644
index 00000000000..f23dd59d866
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-081.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-081.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-082.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-082.xht.ini
new file mode 100644
index 00000000000..67e1503813c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-082.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-082.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-083.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-083.xht.ini
new file mode 100644
index 00000000000..b255b53c840
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-083.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-083.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-084.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-084.xht.ini
new file mode 100644
index 00000000000..fe4e59909d9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-084.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-084.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-085.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-085.xht.ini
new file mode 100644
index 00000000000..ed053430a60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-085.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-085.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-086.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-086.xht.ini
new file mode 100644
index 00000000000..46c00c68ebb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-086.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-086.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-087.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-087.xht.ini
new file mode 100644
index 00000000000..074b2092d8e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-087.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-087.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-088.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-088.xht.ini
new file mode 100644
index 00000000000..4f22a3fc590
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-088.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-088.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-089.xht.ini
new file mode 100644
index 00000000000..2b40aea0ce1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-089.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-090.xht.ini
new file mode 100644
index 00000000000..45e1202068f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-090.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-091.xht.ini
new file mode 100644
index 00000000000..dd27ea15fe8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-091.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-092.xht.ini
new file mode 100644
index 00000000000..9a5a1dbe59a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-092.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-093.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-093.xht.ini
new file mode 100644
index 00000000000..59ca4a72824
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-093.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-093.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-094.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-094.xht.ini
new file mode 100644
index 00000000000..6838b84e1a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-094.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-094.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-095.xht.ini
new file mode 100644
index 00000000000..1a1dbded814
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-095.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-096.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-096.xht.ini
new file mode 100644
index 00000000000..f3e247c64cb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-096.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-096.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-097.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-097.xht.ini
new file mode 100644
index 00000000000..c4f894e1f02
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-097.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-097.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-098.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-098.xht.ini
new file mode 100644
index 00000000000..f09a4407f17
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-098.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-098.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-099.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-099.xht.ini
new file mode 100644
index 00000000000..db04171058f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-099.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-099.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-100.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-100.xht.ini
new file mode 100644
index 00000000000..518978e53fe
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-100.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-100.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-101.xht.ini
new file mode 100644
index 00000000000..435fdf1a5a6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-101.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-102.xht.ini
new file mode 100644
index 00000000000..170387d411c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-102.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-103.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-103.xht.ini
new file mode 100644
index 00000000000..8e24928f52e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-103.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-103.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-104.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-104.xht.ini
new file mode 100644
index 00000000000..a53d0914fd3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-104.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-104.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-105.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-105.xht.ini
new file mode 100644
index 00000000000..94ff0122ef6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-105.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-105.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-106.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-106.xht.ini
new file mode 100644
index 00000000000..712d1954514
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-106.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-106.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-107.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-107.xht.ini
new file mode 100644
index 00000000000..1dc9e86e34e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-107.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-107.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-108.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-108.xht.ini
new file mode 100644
index 00000000000..e82ee629b89
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-108.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-108.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-109.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-109.xht.ini
new file mode 100644
index 00000000000..bde7d3ce6cc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-109.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-109.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-110.xht.ini
new file mode 100644
index 00000000000..e61c1e3bb14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-110.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-111.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-111.xht.ini
new file mode 100644
index 00000000000..9f9aafa5900
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-111.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-111.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-112.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-112.xht.ini
new file mode 100644
index 00000000000..d6678b2eb74
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-112.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-112.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-113.xht.ini
new file mode 100644
index 00000000000..d6b80387f53
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-113.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-114.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-114.xht.ini
new file mode 100644
index 00000000000..4e0818ae1cd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-114.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-114.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-123.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-123.xht.ini
new file mode 100644
index 00000000000..66559a57bc8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-123.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-123.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-124.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-124.xht.ini
new file mode 100644
index 00000000000..e91aa62ebc7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-124.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-124.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-125.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-125.xht.ini
new file mode 100644
index 00000000000..96f6e4976d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-125.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-125.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-126.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-126.xht.ini
new file mode 100644
index 00000000000..c9a5ac196fb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-126.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-126.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-127.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-127.xht.ini
new file mode 100644
index 00000000000..976c52bf99c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-127.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-127.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-128.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-128.xht.ini
new file mode 100644
index 00000000000..3c189d614e5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-128.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-128.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-129.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-129.xht.ini
new file mode 100644
index 00000000000..663d86f499c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-129.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-129.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-130.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-130.xht.ini
new file mode 100644
index 00000000000..6d0b0102b5a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-130.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-130.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-131.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-131.xht.ini
new file mode 100644
index 00000000000..dce0b114d51
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-131.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-131.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-132.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-132.xht.ini
new file mode 100644
index 00000000000..692aca74ad5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-132.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-132.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-133.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-133.xht.ini
new file mode 100644
index 00000000000..2831b330d30
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-133.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-133.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-134.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-134.xht.ini
new file mode 100644
index 00000000000..459a7a2df74
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-134.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-134.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-135.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-135.xht.ini
new file mode 100644
index 00000000000..7df5c5c1e6b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-135.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-135.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-136.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-136.xht.ini
new file mode 100644
index 00000000000..04d809ebb51
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-136.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-136.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-137.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-137.xht.ini
new file mode 100644
index 00000000000..21398048f63
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-137.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-137.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-138.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-138.xht.ini
new file mode 100644
index 00000000000..cce1aaffe15
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-138.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-138.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-139.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-139.xht.ini
new file mode 100644
index 00000000000..29390c79ff3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-139.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-139.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-140.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-140.xht.ini
new file mode 100644
index 00000000000..ac1073555af
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-140.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-140.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-141.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-141.xht.ini
new file mode 100644
index 00000000000..5beb3b673ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-141.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-141.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-142.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-142.xht.ini
new file mode 100644
index 00000000000..eadb241686d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-142.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-142.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-143.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-143.xht.ini
new file mode 100644
index 00000000000..f6b157553ca
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-143.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-143.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-144.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-144.xht.ini
new file mode 100644
index 00000000000..0e7fd6f8db0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-144.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-144.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-145.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-145.xht.ini
new file mode 100644
index 00000000000..61fa1f4a5f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-145.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-145.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-146.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-146.xht.ini
new file mode 100644
index 00000000000..c0a110a88e0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-146.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-146.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-147.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-147.xht.ini
new file mode 100644
index 00000000000..ed0627a8cb7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-147.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-147.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-148.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-148.xht.ini
new file mode 100644
index 00000000000..a4a4cd17e60
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-148.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-148.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-149.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-149.xht.ini
new file mode 100644
index 00000000000..f1e430e9703
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-149.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-149.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-150.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-150.xht.ini
new file mode 100644
index 00000000000..765fc41f507
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-150.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-150.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-151.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-151.xht.ini
new file mode 100644
index 00000000000..ab57d588a47
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-151.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-151.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-152.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-152.xht.ini
new file mode 100644
index 00000000000..10e66cc1013
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-152.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-152.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-153.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-153.xht.ini
new file mode 100644
index 00000000000..61071458068
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-153.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-153.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-154.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-154.xht.ini
new file mode 100644
index 00000000000..fdcc65fcf0b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-154.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-154.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-155.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-155.xht.ini
new file mode 100644
index 00000000000..4447e3be2ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-155.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-155.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-156.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-156.xht.ini
new file mode 100644
index 00000000000..b78c3751186
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-156.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-156.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-157.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-157.xht.ini
new file mode 100644
index 00000000000..cc84e04a7d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-157.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-157.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-158.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-158.xht.ini
new file mode 100644
index 00000000000..e36e94f46c1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-158.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-158.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-159.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-159.xht.ini
new file mode 100644
index 00000000000..c24db5c2914
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-159.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-159.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-160.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-160.xht.ini
new file mode 100644
index 00000000000..51e13bcfaaa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-160.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-160.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-161.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-161.xht.ini
new file mode 100644
index 00000000000..3353dd5e3bd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-161.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-161.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-162.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-162.xht.ini
new file mode 100644
index 00000000000..712c5d63801
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-162.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-162.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-163.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-163.xht.ini
new file mode 100644
index 00000000000..adf7ccaafa2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-163.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-163.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-164.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-164.xht.ini
new file mode 100644
index 00000000000..c3d14a5293f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-164.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-164.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-165.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-165.xht.ini
new file mode 100644
index 00000000000..66d9db1666e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-165.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-165.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-166.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-166.xht.ini
new file mode 100644
index 00000000000..a3d6578e298
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-166.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-166.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-167.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-167.xht.ini
new file mode 100644
index 00000000000..a3a684ba80c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-167.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-167.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-168.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-168.xht.ini
new file mode 100644
index 00000000000..57cab473248
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-168.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-168.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-179.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-179.xht.ini
new file mode 100644
index 00000000000..3d62f5e7c01
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-179.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-179.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-180.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-180.xht.ini
new file mode 100644
index 00000000000..78d45bca6c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-180.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-180.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-183.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-183.xht.ini
new file mode 100644
index 00000000000..5b8b29c7819
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-183.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-183.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-184.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-184.xht.ini
new file mode 100644
index 00000000000..a1198c66059
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-184.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-184.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-187.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-187.xht.ini
new file mode 100644
index 00000000000..b1ea0e06232
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-187.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-187.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-188.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-188.xht.ini
new file mode 100644
index 00000000000..48ab6994676
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-188.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-188.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-191.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-191.xht.ini
new file mode 100644
index 00000000000..b27ab3be483
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-191.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-191.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-192.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-192.xht.ini
new file mode 100644
index 00000000000..735631c3c61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-192.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-192.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-195.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-195.xht.ini
new file mode 100644
index 00000000000..484a068b0db
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-195.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-195.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-196.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-196.xht.ini
new file mode 100644
index 00000000000..edc59be6e75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-anonymous-objects-196.xht.ini
@@ -0,0 +1,2 @@
+[table-anonymous-objects-196.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-cell-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-cell-001.xht.ini
new file mode 100644
index 00000000000..f736c1c3588
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-cell-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bc-cell-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-colgroup-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-colgroup-001.xht.ini
new file mode 100644
index 00000000000..223ea972b27
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-colgroup-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bc-colgroup-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-column-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-column-001.xht.ini
new file mode 100644
index 00000000000..33bc44435e6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-column-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bc-column-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-row-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-row-001.xht.ini
new file mode 100644
index 00000000000..2023cc4c99e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-row-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bc-row-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-rowgroup-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-rowgroup-001.xht.ini
new file mode 100644
index 00000000000..8a4e4b202e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-rowgroup-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bc-rowgroup-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-table-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-table-001.xht.ini
new file mode 100644
index 00000000000..d89f8c626b1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bc-table-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bc-table-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-cell-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-cell-001.xht.ini
new file mode 100644
index 00000000000..e754c500942
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-cell-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bs-cell-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-colgroup-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-colgroup-001.xht.ini
new file mode 100644
index 00000000000..2c7bc4c7790
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-colgroup-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bs-colgroup-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-column-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-column-001.xht.ini
new file mode 100644
index 00000000000..1c1b0224f08
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-column-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bs-column-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-row-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-row-001.xht.ini
new file mode 100644
index 00000000000..6825f1c1810
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-row-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bs-row-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-rowgroup-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-rowgroup-001.xht.ini
new file mode 100644
index 00000000000..6c8d8b5ba3d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-rowgroup-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bs-rowgroup-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini
new file mode 100644
index 00000000000..bf18951d72b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-backgrounds-bs-table-001.xht.ini
@@ -0,0 +1,2 @@
+[table-backgrounds-bs-table-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-cell-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-cell-001.xht.ini
new file mode 100644
index 00000000000..95737952dc8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-cell-001.xht.ini
@@ -0,0 +1,2 @@
+[table-cell-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-001.xht.ini
new file mode 100644
index 00000000000..801b1e85291
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-001.xht.ini
@@ -0,0 +1,2 @@
+[table-column-rendering-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-002.xht.ini
new file mode 100644
index 00000000000..63c6c41dffa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-column-rendering-002.xht.ini
@@ -0,0 +1,2 @@
+[table-column-rendering-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008a.xht.ini
new file mode 100644
index 00000000000..c8bbd0b7d36
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008a.xht.ini
@@ -0,0 +1,2 @@
+[table-height-algorithm-008a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008b.xht.ini
new file mode 100644
index 00000000000..389f61f0eaf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008b.xht.ini
@@ -0,0 +1,2 @@
+[table-height-algorithm-008b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008c.xht.ini
new file mode 100644
index 00000000000..aa34e356889
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-height-algorithm-008c.xht.ini
@@ -0,0 +1,2 @@
+[table-height-algorithm-008c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-margin-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-margin-004.xht.ini
new file mode 100644
index 00000000000..bee23241ac5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-margin-004.xht.ini
@@ -0,0 +1,2 @@
+[table-margin-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-001.xht.ini
new file mode 100644
index 00000000000..f9a32f0df92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-001.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-002.xht.ini
new file mode 100644
index 00000000000..226cbcae218
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-002.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-003.xht.ini
new file mode 100644
index 00000000000..bdf0440fbf6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-003.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-004.xht.ini
new file mode 100644
index 00000000000..efaf771f72d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-004.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-005.xht.ini
new file mode 100644
index 00000000000..8bb157dc0cd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-005.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-006.xht.ini
new file mode 100644
index 00000000000..3ea8fdb90ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-006.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-007.xht.ini
new file mode 100644
index 00000000000..9b99d2bcd75
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-vertical-align-baseline-007.xht.ini
@@ -0,0 +1,2 @@
+[table-vertical-align-baseline-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-018.xht.ini
new file mode 100644
index 00000000000..08e1831b912
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-018.xht.ini
@@ -0,0 +1,2 @@
+[table-visual-layout-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026a.xht.ini
new file mode 100644
index 00000000000..40d8743719e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026a.xht.ini
@@ -0,0 +1,2 @@
+[table-visual-layout-026a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026b.xht.ini
new file mode 100644
index 00000000000..d9f68cbf35f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026b.xht.ini
@@ -0,0 +1,2 @@
+[table-visual-layout-026b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026c.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026c.xht.ini
new file mode 100644
index 00000000000..478352f6c0b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026c.xht.ini
@@ -0,0 +1,2 @@
+[table-visual-layout-026c.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026d.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026d.xht.ini
new file mode 100644
index 00000000000..20361d0b6b1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/tables/table-visual-layout-026d.xht.ini
@@ -0,0 +1,2 @@
+[table-visual-layout-026d.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/bidi-span-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/bidi-span-003.html.ini
new file mode 100644
index 00000000000..a6a9aa51c11
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/bidi-span-003.html.ini
@@ -0,0 +1,2 @@
+[bidi-span-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-bidi-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-bidi-011.xht.ini
new file mode 100644
index 00000000000..e1ede1e5ec2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-bidi-011.xht.ini
@@ -0,0 +1,2 @@
+[text-align-bidi-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-001.xht.ini
new file mode 100644
index 00000000000..2bd3488d04f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-001.xht.ini
@@ -0,0 +1,2 @@
+[text-align-white-space-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-002.xht.ini
new file mode 100644
index 00000000000..fefeef6ff93
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-002.xht.ini
@@ -0,0 +1,2 @@
+[text-align-white-space-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-003.xht.ini
new file mode 100644
index 00000000000..629be9fcc3a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-003.xht.ini
@@ -0,0 +1,2 @@
+[text-align-white-space-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-005.xht.ini
new file mode 100644
index 00000000000..78c85f7aefa
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-005.xht.ini
@@ -0,0 +1,2 @@
+[text-align-white-space-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-006.xht.ini
new file mode 100644
index 00000000000..db9b103334b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-006.xht.ini
@@ -0,0 +1,2 @@
+[text-align-white-space-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-007.xht.ini
new file mode 100644
index 00000000000..36557e9be9e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-align-white-space-007.xht.ini
@@ -0,0 +1,2 @@
+[text-align-white-space-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-007.xht.ini
new file mode 100644
index 00000000000..4763ca6cde9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-007.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-008.xht.ini
new file mode 100644
index 00000000000..2c0c49a1159
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-008.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-012.xht.ini
new file mode 100644
index 00000000000..b9b52fb8cc9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-012.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-019.xht.ini
new file mode 100644
index 00000000000..64e27c26054
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-019.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-020.xht.ini
new file mode 100644
index 00000000000..c939563ba14
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-020.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-031.xht.ini
new file mode 100644
index 00000000000..bdc294d9670
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-031.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-032.xht.ini
new file mode 100644
index 00000000000..7fb96dcdcf2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-032.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-043.xht.ini
new file mode 100644
index 00000000000..077e45f38e1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-043.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-044.xht.ini
new file mode 100644
index 00000000000..93f80117f2c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-044.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-055.xht.ini
new file mode 100644
index 00000000000..1e7ab6c1d49
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-055.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-056.xht.ini
new file mode 100644
index 00000000000..39cc0f10588
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-056.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-067.xht.ini
new file mode 100644
index 00000000000..3b542d87896
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-067.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-068.xht.ini
new file mode 100644
index 00000000000..1b6ed107ce0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-068.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-079.xht.ini
new file mode 100644
index 00000000000..f4014e9f046
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-079.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-080.xht.ini
new file mode 100644
index 00000000000..b34f26defc4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-080.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-113-ref-margin.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-113-ref-margin.xht.ini
new file mode 100644
index 00000000000..5585417d27e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-113-ref-margin.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-113-ref-margin.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-114-ref.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-114-ref.xht.ini
new file mode 100644
index 00000000000..dd8ff0295b9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-114-ref.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-114-ref.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-block-margin.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-block-margin.xht.ini
new file mode 100644
index 00000000000..e1df5e74625
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-block-margin.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-115-ref-block-margin.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-inline-margin.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-inline-margin.xht.ini
new file mode 100644
index 00000000000..2f563c0e28c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-115-ref-inline-margin.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-115-ref-inline-margin.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-001.xht.ini
new file mode 100644
index 00000000000..c2191a4d2b0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-001.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-intrinsic-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-002.xht.ini
new file mode 100644
index 00000000000..dc6d60b0a1e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-002.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-intrinsic-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-003.xht.ini
new file mode 100644
index 00000000000..147d3c0b485
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-003.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-intrinsic-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-004.xht.ini
new file mode 100644
index 00000000000..d7f0f80471d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-intrinsic-004.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-intrinsic-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-on-blank-line-rtl-left-align.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-on-blank-line-rtl-left-align.html.ini
new file mode 100644
index 00000000000..1baeb7c20a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-on-blank-line-rtl-left-align.html.ini
@@ -0,0 +1,2 @@
+[text-indent-on-blank-line-rtl-left-align.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-001.xht.ini
new file mode 100644
index 00000000000..9ec19e00630
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-001.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-overflow-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-004.xht.ini
new file mode 100644
index 00000000000..fc33ffd495e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-overflow-004.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-overflow-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001-ref-inline-margin.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001-ref-inline-margin.xht.ini
new file mode 100644
index 00000000000..b04e7da3c52
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001-ref-inline-margin.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-wrap-001-ref-inline-margin.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001.xht.ini
new file mode 100644
index 00000000000..5cdcdc539a5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-indent-wrap-001.xht.ini
@@ -0,0 +1,2 @@
+[text-indent-wrap-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-001.xht.ini
new file mode 100644
index 00000000000..5443a23b97e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-002.xht.ini
new file mode 100644
index 00000000000..70891ca750a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-005.xht.ini
new file mode 100644
index 00000000000..bf9f48549b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-006.xht.ini
new file mode 100644
index 00000000000..ae89048f886
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-007.xht.ini
new file mode 100644
index 00000000000..6393975a60c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-008.xht.ini
new file mode 100644
index 00000000000..c15fdc110bc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-009.xht.ini
new file mode 100644
index 00000000000..78a3a024cc9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-010.xht.ini
new file mode 100644
index 00000000000..8a873c033ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-010.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-011.xht.ini
new file mode 100644
index 00000000000..18a83b80e61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-011.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-014.xht.ini
new file mode 100644
index 00000000000..d781de1c75f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-015.xht.ini
new file mode 100644
index 00000000000..ebd188fa5b6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-001.xht.ini
new file mode 100644
index 00000000000..77cb8d7940b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-001.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-capitalize-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-002.xht.ini
new file mode 100644
index 00000000000..650181b0e93
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-002.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-capitalize-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-003.xht.ini
new file mode 100644
index 00000000000..c3d8e074f56
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-capitalize-003.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-capitalize-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-lowercase-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-lowercase-001.xht.ini
new file mode 100644
index 00000000000..6f7b008b9c4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-lowercase-001.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-lowercase-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-001.xht.ini
new file mode 100644
index 00000000000..d066ce25497
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-001.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-uppercase-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-002.xht.ini
new file mode 100644
index 00000000000..3cd72258585
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/text-transform-uppercase-002.xht.ini
@@ -0,0 +1,2 @@
+[text-transform-uppercase-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-001.xht.ini
new file mode 100644
index 00000000000..218ecc62f44
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-002.xht.ini
new file mode 100644
index 00000000000..b1d1b14db72
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-003.xht.ini
new file mode 100644
index 00000000000..182a9fc2d1e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini
new file mode 100644
index 00000000000..d2813834d88
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-004.xht.ini
@@ -0,0 +1,2 @@
+[white-space-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-005.xht.ini
new file mode 100644
index 00000000000..e746a5e10dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-005.xht.ini
@@ -0,0 +1,2 @@
+[white-space-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-006.xht.ini
new file mode 100644
index 00000000000..686669e1aae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-006.xht.ini
@@ -0,0 +1,2 @@
+[white-space-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-007.xht.ini
new file mode 100644
index 00000000000..adbacb9a585
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-007.xht.ini
@@ -0,0 +1,2 @@
+[white-space-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-001.xht.ini
new file mode 100644
index 00000000000..5f8a2bcc159
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-002.xht.ini
new file mode 100644
index 00000000000..3f51f97803d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini
new file mode 100644
index 00000000000..a577c292396
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-005.xht.ini
new file mode 100644
index 00000000000..ef9020630b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-005.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-006.xht.ini
new file mode 100644
index 00000000000..f6fde256997
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-006.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-007.xht.ini
new file mode 100644
index 00000000000..91926fe0db0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-007.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-008.xht.ini
new file mode 100644
index 00000000000..7dd6c54eb38
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-008.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-009.xht.ini
new file mode 100644
index 00000000000..2f69ebf2167
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-009.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-010.xht.ini
new file mode 100644
index 00000000000..2a0a86f7eb7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-010.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-011.xht.ini
new file mode 100644
index 00000000000..dc157fe2d54
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-011.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-012.xht.ini
new file mode 100644
index 00000000000..14a9d4453f8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-012.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-013.xht.ini
new file mode 100644
index 00000000000..69487f1ba76
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-013.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-014.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-014.xht.ini
new file mode 100644
index 00000000000..8e12c0be185
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-014.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-014.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-015.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-015.xht.ini
new file mode 100644
index 00000000000..060e4df10a9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-applies-to-015.xht.ini
@@ -0,0 +1,2 @@
+[white-space-applies-to-015.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-bidirectionality-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-bidirectionality-001.xht.ini
new file mode 100644
index 00000000000..dbb09056255
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-bidirectionality-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-bidirectionality-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-001.xht.ini
new file mode 100644
index 00000000000..0aef70911fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-002.xht.ini
new file mode 100644
index 00000000000..6ef22ffb360
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-003.xht.ini
new file mode 100644
index 00000000000..93702f75c5c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-001.xht.ini
new file mode 100644
index 00000000000..83500dd16e9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-bidi-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-002.xht.ini
new file mode 100644
index 00000000000..b282639370a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-bidi-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-003.xht.ini
new file mode 100644
index 00000000000..e20b51c88ce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-bidi-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-bidi-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini
new file mode 100644
index 00000000000..9eaa9e1fcc0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-collapsing-breaks-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-collapsing-breaks-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-001.xht.ini
new file mode 100644
index 00000000000..b1cf457e7d1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-mixed-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-002.xht.ini
new file mode 100644
index 00000000000..5d09116f83b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-mixed-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-003.xht.ini
new file mode 100644
index 00000000000..c26dc8a6a9b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-mixed-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-mixed-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-001.xht.ini
new file mode 100644
index 00000000000..a5e94a4d852
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-002.xht.ini
new file mode 100644
index 00000000000..abddf66594a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-003.xht.ini
new file mode 100644
index 00000000000..19f873ca4b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-004.xht.ini
new file mode 100644
index 00000000000..c8dad73e31a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-004.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-005.xht.ini
new file mode 100644
index 00000000000..1f07df8551d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-005.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-006.xht.ini
new file mode 100644
index 00000000000..bbbcd6dc789
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-006.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-007.xht.ini
new file mode 100644
index 00000000000..c190430945c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-007.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-008.xht.ini
new file mode 100644
index 00000000000..3b5bdf3571f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-normal-008.xht.ini
@@ -0,0 +1,2 @@
+[white-space-normal-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-001.xht.ini
new file mode 100644
index 00000000000..147d334c746
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-nowrap-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-005.xht.ini
new file mode 100644
index 00000000000..9fa021d2415
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-005.xht.ini
@@ -0,0 +1,2 @@
+[white-space-nowrap-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-006.xht.ini
new file mode 100644
index 00000000000..cbb34741b41
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-006.xht.ini
@@ -0,0 +1,2 @@
+[white-space-nowrap-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-attribute-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-attribute-001.xht.ini
new file mode 100644
index 00000000000..ee0688f90cf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-nowrap-attribute-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-nowrap-attribute-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-001.xht.ini
new file mode 100644
index 00000000000..8e2d4b13074
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-pre-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-002.xht.ini
new file mode 100644
index 00000000000..f5c3a019215
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-pre-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-005.xht.ini
new file mode 100644
index 00000000000..82b1ea03ef4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-005.xht.ini
@@ -0,0 +1,2 @@
+[white-space-pre-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-006.xht.ini
new file mode 100644
index 00000000000..8bb21f3a146
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-pre-006.xht.ini
@@ -0,0 +1,2 @@
+[white-space-pre-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-001.xht.ini
new file mode 100644
index 00000000000..da7b59befb7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-001.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-002.xht.ini
new file mode 100644
index 00000000000..cd8a8532674
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-002.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-003.xht.ini
new file mode 100644
index 00000000000..0fc87df1507
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-003.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-004.xht.ini
new file mode 100644
index 00000000000..c3ee0255092
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-004.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-008.xht.ini
new file mode 100644
index 00000000000..cfe69f1c37c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-008.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-009.xht.ini
new file mode 100644
index 00000000000..f69d0d49f04
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-009.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-010.xht.ini
new file mode 100644
index 00000000000..4ee5e6af8a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-010.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-011.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-011.xht.ini
new file mode 100644
index 00000000000..4cb47be28f4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-011.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-011.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-012.xht.ini
new file mode 100644
index 00000000000..e36d8e774d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-012.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini
new file mode 100644
index 00000000000..d4163fc0bd8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-013.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini
new file mode 100644
index 00000000000..8ce343d746f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-016.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini
new file mode 100644
index 00000000000..df0a0b0c0a4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-017.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini
new file mode 100644
index 00000000000..f6ed836f1da
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-018.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-019.xht.ini
new file mode 100644
index 00000000000..25a0942c6b7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-019.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-020.xht.ini
new file mode 100644
index 00000000000..e6cb4e84081
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-020.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-021.xht.ini
new file mode 100644
index 00000000000..81db1c9380a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-021.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-022.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-022.xht.ini
new file mode 100644
index 00000000000..d6170466580
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-022.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-022.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-023.xht.ini
new file mode 100644
index 00000000000..f3014856fa3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-023.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-024.xht.ini
new file mode 100644
index 00000000000..9a7510c3279
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-024.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-025.xht.ini
new file mode 100644
index 00000000000..8c7d68e804d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-025.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-026.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-026.xht.ini
new file mode 100644
index 00000000000..5d9327fa61e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-026.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-026.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-027.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-027.xht.ini
new file mode 100644
index 00000000000..47f6f62471a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-027.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-027.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-028.xht.ini
new file mode 100644
index 00000000000..52c84d94115
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-028.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-029.xht.ini
new file mode 100644
index 00000000000..98914d9f700
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-029.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-030.xht.ini
new file mode 100644
index 00000000000..96a24edb780
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-030.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-031.xht.ini
new file mode 100644
index 00000000000..c2ea8debc67
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-031.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-032.xht.ini
new file mode 100644
index 00000000000..81a9afcf73a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-032.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-033.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-033.xht.ini
new file mode 100644
index 00000000000..bb340210632
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-033.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-033.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-034.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-034.xht.ini
new file mode 100644
index 00000000000..b657a0db286
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-034.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-034.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-035.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-035.xht.ini
new file mode 100644
index 00000000000..6c980397b1f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-035.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-035.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-036.xht.ini
new file mode 100644
index 00000000000..26cc402bce6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-036.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-037.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-037.xht.ini
new file mode 100644
index 00000000000..a08baf8c133
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-037.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-037.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-038.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-038.xht.ini
new file mode 100644
index 00000000000..f6ecc1c44cc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-038.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-038.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-039.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-039.xht.ini
new file mode 100644
index 00000000000..6255f399537
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-039.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-039.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-040.xht.ini
new file mode 100644
index 00000000000..73d73909c54
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-040.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-041.xht.ini
new file mode 100644
index 00000000000..dd695dc61a3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-041.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-042.xht.ini
new file mode 100644
index 00000000000..019c52de64e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-042.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-043.xht.ini
new file mode 100644
index 00000000000..e51d1b37ab0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-043.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-044.xht.ini
new file mode 100644
index 00000000000..8c794ba9e35
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-044.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-045.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-045.xht.ini
new file mode 100644
index 00000000000..b61c7120875
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-045.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-045.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini
new file mode 100644
index 00000000000..a4fb2e4fe18
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-046.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini
new file mode 100644
index 00000000000..8046ab670c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-047.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-047.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-050.xht.ini
new file mode 100644
index 00000000000..a08efcd95ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-050.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-051.xht.ini
new file mode 100644
index 00000000000..1b900fa087e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-051.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini
new file mode 100644
index 00000000000..f981ec7b5d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-052.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-053.xht.ini
new file mode 100644
index 00000000000..1ce0689bb6b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-053.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-054.xht.ini
new file mode 100644
index 00000000000..60998182bcf
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-054.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-055.xht.ini
new file mode 100644
index 00000000000..7dea5c57065
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/text/white-space-processing-055.xht.ini
@@ -0,0 +1,2 @@
+[white-space-processing-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-001.xht.ini
new file mode 100644
index 00000000000..40391daf112
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-001.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-002.xht.ini
new file mode 100644
index 00000000000..a2315173735
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-002.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-007.xht.ini
new file mode 100644
index 00000000000..a8dc40c053c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-007.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-008.xht.ini
new file mode 100644
index 00000000000..26703686a86
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-008.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-013.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-013.xht.ini
new file mode 100644
index 00000000000..6c38e9cfddb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-013.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-013.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-018.xht.ini
new file mode 100644
index 00000000000..2779f311458
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-018.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-023.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-023.xht.ini
new file mode 100644
index 00000000000..321d1908dbc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-023.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-023.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-024.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-024.xht.ini
new file mode 100644
index 00000000000..74b3c024e92
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-024.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-024.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-025.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-025.xht.ini
new file mode 100644
index 00000000000..460931bfb7e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-025.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-025.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-030.xht.ini
new file mode 100644
index 00000000000..5ab75080014
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-030.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-031.xht.ini
new file mode 100644
index 00000000000..41ede6ce478
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-031.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-036.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-036.xht.ini
new file mode 100644
index 00000000000..8de8e44c755
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-036.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-036.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-041.xht.ini
new file mode 100644
index 00000000000..235e3c60781
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-041.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-046.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-046.xht.ini
new file mode 100644
index 00000000000..4516cab9c33
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-046.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-046.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-047.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-047.xht.ini
new file mode 100644
index 00000000000..0ad98858bd1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-047.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-047.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-048.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-048.xht.ini
new file mode 100644
index 00000000000..06409bc76c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-048.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-048.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-049.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-049.xht.ini
new file mode 100644
index 00000000000..30b6086516f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-049.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-049.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-050.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-050.xht.ini
new file mode 100644
index 00000000000..1a371522b82
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-050.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-050.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-051.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-051.xht.ini
new file mode 100644
index 00000000000..6a3225beea4
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-051.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-051.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-052.xht.ini
new file mode 100644
index 00000000000..925fd84face
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-052.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-053.xht.ini
new file mode 100644
index 00000000000..4b8ac6bd70a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-053.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-054.xht.ini
new file mode 100644
index 00000000000..317e12044fd
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-054.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-058.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-058.xht.ini
new file mode 100644
index 00000000000..c8d075b48d7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-058.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-058.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-059.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-059.xht.ini
new file mode 100644
index 00000000000..8f7dc4c647d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-059.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-059.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-061.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-061.xht.ini
new file mode 100644
index 00000000000..5fa0ba0003f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-061.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-061.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-062.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-062.xht.ini
new file mode 100644
index 00000000000..e874eb63e71
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-062.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-062.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-069.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-069.xht.ini
new file mode 100644
index 00000000000..fa14eab6530
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-069.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-069.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-070.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-070.xht.ini
new file mode 100644
index 00000000000..b3bac4243ff
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-070.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-070.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-071.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-071.xht.ini
new file mode 100644
index 00000000000..8b18131d0c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-071.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-071.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-072.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-072.xht.ini
new file mode 100644
index 00000000000..c690ecfe59a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-072.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-072.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-073.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-073.xht.ini
new file mode 100644
index 00000000000..bc5b32ff24e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-073.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-073.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-074.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-074.xht.ini
new file mode 100644
index 00000000000..609bf88d3a9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-074.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-074.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-075.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-075.xht.ini
new file mode 100644
index 00000000000..bb90bd5c940
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-075.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-075.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-079.xht.ini
new file mode 100644
index 00000000000..cc9742351af
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-079.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-081.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-081.xht.ini
new file mode 100644
index 00000000000..abe2ca15a98
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-081.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-081.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-082.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-082.xht.ini
new file mode 100644
index 00000000000..d7e327822ab
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-082.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-082.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-089.xht.ini
new file mode 100644
index 00000000000..9f8022567dc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-089.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-090.xht.ini
new file mode 100644
index 00000000000..e09fd813418
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-090.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-091.xht.ini
new file mode 100644
index 00000000000..930bcb0f5b9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-091.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-092.xht.ini
new file mode 100644
index 00000000000..986136d82c9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-092.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-093.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-093.xht.ini
new file mode 100644
index 00000000000..c32c2228305
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-093.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-093.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-094.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-094.xht.ini
new file mode 100644
index 00000000000..5aed0f1432f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-094.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-094.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-095.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-095.xht.ini
new file mode 100644
index 00000000000..38249a502c7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-095.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-095.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-099.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-099.xht.ini
new file mode 100644
index 00000000000..bfb7654edcb
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-099.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-099.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-101.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-101.xht.ini
new file mode 100644
index 00000000000..7ca0f6b18e5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-101.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-101.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-102.xht.ini
new file mode 100644
index 00000000000..a426bf86a12
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-102.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-109.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-109.xht.ini
new file mode 100644
index 00000000000..9f629a542a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-109.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-109.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-110.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-110.xht.ini
new file mode 100644
index 00000000000..2c4fa45b73d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-110.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-110.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-111.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-111.xht.ini
new file mode 100644
index 00000000000..f7e6207c6b0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-111.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-111.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-112.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-112.xht.ini
new file mode 100644
index 00000000000..59b10faad65
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-112.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-112.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-113.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-113.xht.ini
new file mode 100644
index 00000000000..a96179dc31f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-113.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-113.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-114.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-114.xht.ini
new file mode 100644
index 00000000000..3e544942c2f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-114.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-114.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-115.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-115.xht.ini
new file mode 100644
index 00000000000..bfb0f39a572
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-115.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-115.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-119.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-119.xht.ini
new file mode 100644
index 00000000000..66d046499de
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-119.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-119.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-121.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-121.xht.ini
new file mode 100644
index 00000000000..a81c9c8a891
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-121.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-121.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-122.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-122.xht.ini
new file mode 100644
index 00000000000..baf3f35a818
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-122.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-122.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-130.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-130.xht.ini
new file mode 100644
index 00000000000..63051b11f95
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/outline-color-130.xht.ini
@@ -0,0 +1,2 @@
+[outline-color-130.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-001.xht.ini
new file mode 100644
index 00000000000..be6e7916b99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[overflow-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-002.xht.ini
new file mode 100644
index 00000000000..af4aa98281c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-002.xht.ini
@@ -0,0 +1,2 @@
+[overflow-applies-to-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-003.xht.ini
new file mode 100644
index 00000000000..a9c5119ea21
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-003.xht.ini
@@ -0,0 +1,2 @@
+[overflow-applies-to-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-004.xht.ini
new file mode 100644
index 00000000000..4da59c85f68
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/ui/overflow-applies-to-004.xht.ini
@@ -0,0 +1,2 @@
+[overflow-applies-to-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-007.xht.ini
new file mode 100644
index 00000000000..0303b1e605d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-007.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-009.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-009.xht.ini
new file mode 100644
index 00000000000..f5aa5a4bbda
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-009.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-009.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-010.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-010.xht.ini
new file mode 100644
index 00000000000..0065459c210
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-010.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-010.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-012.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-012.xht.ini
new file mode 100644
index 00000000000..9420bd64496
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-012.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-012.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-018.xht.ini
new file mode 100644
index 00000000000..c689beea37c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-018.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-019.xht.ini
new file mode 100644
index 00000000000..8dea9768544
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-019.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-021.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-021.xht.ini
new file mode 100644
index 00000000000..9996b2cd2d0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/numbers-units-021.xht.ini
@@ -0,0 +1,2 @@
+[numbers-units-021.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/units-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-001.xht.ini
new file mode 100644
index 00000000000..22362824980
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-001.xht.ini
@@ -0,0 +1,2 @@
+[units-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/units-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-002.xht.ini
new file mode 100644
index 00000000000..17c17365095
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-002.xht.ini
@@ -0,0 +1,2 @@
+[units-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/units-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-003.xht.ini
new file mode 100644
index 00000000000..c7a695cb3c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-003.xht.ini
@@ -0,0 +1,2 @@
+[units-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/units-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-004.xht.ini
new file mode 100644
index 00000000000..e681ef86863
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-004.xht.ini
@@ -0,0 +1,2 @@
+[units-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/values/units-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-005.xht.ini
new file mode 100644
index 00000000000..d1604bb0585
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/values/units-005.xht.ini
@@ -0,0 +1,2 @@
+[units-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-001.html.ini
new file mode 100644
index 00000000000..cfcb21e0c61
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-001.html.ini
@@ -0,0 +1,2 @@
+[content-height-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-002.html.ini
new file mode 100644
index 00000000000..2f95c9fe17f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-002.html.ini
@@ -0,0 +1,2 @@
+[content-height-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-003.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-003.html.ini
new file mode 100644
index 00000000000..d11202d99ad
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-003.html.ini
@@ -0,0 +1,2 @@
+[content-height-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-005.html.ini
new file mode 100644
index 00000000000..325319d1ea5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/content-height-005.html.ini
@@ -0,0 +1,2 @@
+[content-height-005.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-applies-to-010a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-applies-to-010a.xht.ini
new file mode 100644
index 00000000000..31a945b3ff8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-applies-to-010a.xht.ini
@@ -0,0 +1,2 @@
+[height-applies-to-010a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-percentage-003a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-percentage-003a.xht.ini
new file mode 100644
index 00000000000..a5894fb8710
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/height-percentage-003a.xht.ini
@@ -0,0 +1,2 @@
+[height-percentage-003a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-001.xht.ini
new file mode 100644
index 00000000000..9dee303067d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-baseline-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-002.xht.ini
new file mode 100644
index 00000000000..d08c2f33287
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-002.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-baseline-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-003.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-003.xht.ini
new file mode 100644
index 00000000000..452aa8d314c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-003.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-baseline-003.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-004.xht.ini
new file mode 100644
index 00000000000..e571b3781cc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-004.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-baseline-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-005.xht.ini
new file mode 100644
index 00000000000..25c38efae23
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-005.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-baseline-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-006.xht.ini
new file mode 100644
index 00000000000..b436883f53e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/inline-block-baseline-006.xht.ini
@@ -0,0 +1,2 @@
+[inline-block-baseline-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-203.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-203.html.ini
new file mode 100644
index 00000000000..38d8fc86982
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-203.html.ini
@@ -0,0 +1,2 @@
+[line-height-203.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-205.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-205.html.ini
new file mode 100644
index 00000000000..540feb5e7ee
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visudet/line-height-205.html.ini
@@ -0,0 +1,2 @@
+[line-height-205.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/animation/visibility-interpolation.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/animation/visibility-interpolation.html.ini
new file mode 100644
index 00000000000..d0a3bff30ba
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/animation/visibility-interpolation.html.ini
@@ -0,0 +1,361 @@
+[visibility-interpolation.html]
+ [CSS Animations: property <visibility> from [collapse\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [visible\] at (0) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (-0.3) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [hidden\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [hidden\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [hidden\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [hidden\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [hidden\] to [visible\] at (0) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [hidden\] to [visible\] at (0) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (0.3) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [visible\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [hidden\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [hidden\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (0.3) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [hidden\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (0) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [visible\] at (0) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [visible\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [hidden\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (0.5) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (0) should be [collapse\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [hidden\] to [visible\] at (0) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (0.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (0.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [hidden\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [hidden\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [hidden\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (0.3) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [hidden\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [hidden\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (0.6) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [hidden\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (0.6) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [hidden\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [hidden\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (0.6) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [hidden\] to [visible\] at (-1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [visible\] at (-1) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [visible\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [visible\] at (0.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (-0.3) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [visible\] at (-1) should be [collapse\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [visible\] at (0.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [hidden\] to [visible\] at (-1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [visible\] at (-1) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [visible\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [hidden\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [visible\] at (0) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [hidden\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [hidden\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (0.3) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (-0.3) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [hidden\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [hidden\] to [visible\] at (-1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [hidden\] to [visible\] at (-1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [visible\] at (0.5) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [hidden\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [hidden\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [hidden\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [hidden\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [visible\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [visible\] at (-1) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [visible\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [visible\] at (1.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [hidden\] at (0) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [hidden\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [visible\] at (0) should be [collapse\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [hidden\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (0.6) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [hidden\] at (-1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [hidden\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [hidden\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [hidden\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [visible\] to [visible\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [collapse\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [hidden\] to [visible\] at (0) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [hidden\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (0) should be [hidden\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (1) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (1.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [visible\] to [visible\] at (0.5) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <visibility> from [collapse\] to [visible\] at (0.1) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [visible\] to [visible\] at (1) should be [visible\]]
+ expected: FAIL
+
+ [CSS Animations: property <visibility> from [visible\] to [visible\] at (0) should be [visible\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [collapse\] to [hidden\] at (0.5) should be [hidden\]]
+ expected: FAIL
+
+ [CSS Transitions: property <visibility> from [hidden\] to [visible\] at (0.9) should be [visible\]]
+ expected: FAIL
+
+ [Web Animations: property <visibility> from [collapse\] to [hidden\] at (-0.3) should be [collapse\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-001.xht.ini
new file mode 100644
index 00000000000..a1935bd7061
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-001.xht.ini
@@ -0,0 +1,2 @@
+[clip-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-004.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-004.xht.ini
new file mode 100644
index 00000000000..9e766de6fa6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-004.xht.ini
@@ -0,0 +1,2 @@
+[clip-004.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-005.xht.ini
new file mode 100644
index 00000000000..e1d53c8c228
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-005.xht.ini
@@ -0,0 +1,2 @@
+[clip-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-006.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-006.xht.ini
new file mode 100644
index 00000000000..94cf04c08d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-006.xht.ini
@@ -0,0 +1,2 @@
+[clip-006.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-007.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-007.xht.ini
new file mode 100644
index 00000000000..3bbe5aab1df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-007.xht.ini
@@ -0,0 +1,2 @@
+[clip-007.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-008.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-008.xht.ini
new file mode 100644
index 00000000000..725ad66bb2b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-008.xht.ini
@@ -0,0 +1,2 @@
+[clip-008.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-016.xht.ini
new file mode 100644
index 00000000000..1f5900b19f9
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-016.xht.ini
@@ -0,0 +1,2 @@
+[clip-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-017.xht.ini
new file mode 100644
index 00000000000..0b09bf13030
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-017.xht.ini
@@ -0,0 +1,2 @@
+[clip-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-018.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-018.xht.ini
new file mode 100644
index 00000000000..54d0d1a60d5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-018.xht.ini
@@ -0,0 +1,2 @@
+[clip-018.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-019.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-019.xht.ini
new file mode 100644
index 00000000000..80e54ece2ae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-019.xht.ini
@@ -0,0 +1,2 @@
+[clip-019.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-020.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-020.xht.ini
new file mode 100644
index 00000000000..aee638e7693
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-020.xht.ini
@@ -0,0 +1,2 @@
+[clip-020.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-028.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-028.xht.ini
new file mode 100644
index 00000000000..e59c304dd1b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-028.xht.ini
@@ -0,0 +1,2 @@
+[clip-028.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-029.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-029.xht.ini
new file mode 100644
index 00000000000..4c8331d9272
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-029.xht.ini
@@ -0,0 +1,2 @@
+[clip-029.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-030.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-030.xht.ini
new file mode 100644
index 00000000000..067af37c512
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-030.xht.ini
@@ -0,0 +1,2 @@
+[clip-030.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-031.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-031.xht.ini
new file mode 100644
index 00000000000..d3d5c4ac2a0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-031.xht.ini
@@ -0,0 +1,2 @@
+[clip-031.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-032.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-032.xht.ini
new file mode 100644
index 00000000000..1f15e057f90
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-032.xht.ini
@@ -0,0 +1,2 @@
+[clip-032.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-040.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-040.xht.ini
new file mode 100644
index 00000000000..b0d4e19b41e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-040.xht.ini
@@ -0,0 +1,2 @@
+[clip-040.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-041.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-041.xht.ini
new file mode 100644
index 00000000000..068a8412a4a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-041.xht.ini
@@ -0,0 +1,2 @@
+[clip-041.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-042.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-042.xht.ini
new file mode 100644
index 00000000000..9f85bda37b8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-042.xht.ini
@@ -0,0 +1,2 @@
+[clip-042.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-043.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-043.xht.ini
new file mode 100644
index 00000000000..d04064315e3
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-043.xht.ini
@@ -0,0 +1,2 @@
+[clip-043.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-044.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-044.xht.ini
new file mode 100644
index 00000000000..4290a9ff037
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-044.xht.ini
@@ -0,0 +1,2 @@
+[clip-044.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-052.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-052.xht.ini
new file mode 100644
index 00000000000..da0b8e2363e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-052.xht.ini
@@ -0,0 +1,2 @@
+[clip-052.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-053.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-053.xht.ini
new file mode 100644
index 00000000000..e5b1979c4cc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-053.xht.ini
@@ -0,0 +1,2 @@
+[clip-053.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-054.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-054.xht.ini
new file mode 100644
index 00000000000..26cb18878c6
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-054.xht.ini
@@ -0,0 +1,2 @@
+[clip-054.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-055.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-055.xht.ini
new file mode 100644
index 00000000000..c5df2dc877c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-055.xht.ini
@@ -0,0 +1,2 @@
+[clip-055.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-056.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-056.xht.ini
new file mode 100644
index 00000000000..855fb38a1be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-056.xht.ini
@@ -0,0 +1,2 @@
+[clip-056.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-064.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-064.xht.ini
new file mode 100644
index 00000000000..943802b9b56
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-064.xht.ini
@@ -0,0 +1,2 @@
+[clip-064.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-065.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-065.xht.ini
new file mode 100644
index 00000000000..fb2b04e9176
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-065.xht.ini
@@ -0,0 +1,2 @@
+[clip-065.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-066.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-066.xht.ini
new file mode 100644
index 00000000000..ed1e8e62128
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-066.xht.ini
@@ -0,0 +1,2 @@
+[clip-066.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-067.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-067.xht.ini
new file mode 100644
index 00000000000..c7dfa14fdc1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-067.xht.ini
@@ -0,0 +1,2 @@
+[clip-067.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-068.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-068.xht.ini
new file mode 100644
index 00000000000..927c66c59d8
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-068.xht.ini
@@ -0,0 +1,2 @@
+[clip-068.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-076.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-076.xht.ini
new file mode 100644
index 00000000000..19bfe572d13
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-076.xht.ini
@@ -0,0 +1,2 @@
+[clip-076.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-077.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-077.xht.ini
new file mode 100644
index 00000000000..823846fa197
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-077.xht.ini
@@ -0,0 +1,2 @@
+[clip-077.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-078.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-078.xht.ini
new file mode 100644
index 00000000000..516c626f49d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-078.xht.ini
@@ -0,0 +1,2 @@
+[clip-078.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-079.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-079.xht.ini
new file mode 100644
index 00000000000..afd45391823
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-079.xht.ini
@@ -0,0 +1,2 @@
+[clip-079.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-080.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-080.xht.ini
new file mode 100644
index 00000000000..a549daa0fde
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-080.xht.ini
@@ -0,0 +1,2 @@
+[clip-080.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-088.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-088.xht.ini
new file mode 100644
index 00000000000..3373e66a4e2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-088.xht.ini
@@ -0,0 +1,2 @@
+[clip-088.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-089.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-089.xht.ini
new file mode 100644
index 00000000000..9ae1e897119
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-089.xht.ini
@@ -0,0 +1,2 @@
+[clip-089.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-090.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-090.xht.ini
new file mode 100644
index 00000000000..b28660a9141
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-090.xht.ini
@@ -0,0 +1,2 @@
+[clip-090.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-091.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-091.xht.ini
new file mode 100644
index 00000000000..7eda138fd6d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-091.xht.ini
@@ -0,0 +1,2 @@
+[clip-091.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-092.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-092.xht.ini
new file mode 100644
index 00000000000..664553d49be
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-092.xht.ini
@@ -0,0 +1,2 @@
+[clip-092.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-097.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-097.xht.ini
new file mode 100644
index 00000000000..251452e629a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-097.xht.ini
@@ -0,0 +1,2 @@
+[clip-097.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-098.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-098.xht.ini
new file mode 100644
index 00000000000..7b664ef0234
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-098.xht.ini
@@ -0,0 +1,2 @@
+[clip-098.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-099.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-099.xht.ini
new file mode 100644
index 00000000000..f0729eff363
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-099.xht.ini
@@ -0,0 +1,2 @@
+[clip-099.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-102.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-102.xht.ini
new file mode 100644
index 00000000000..e3557d3485f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/clip-102.xht.ini
@@ -0,0 +1,2 @@
+[clip-102.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-applies-to-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-applies-to-001.xht.ini
new file mode 100644
index 00000000000..be6e7916b99
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-applies-to-001.xht.ini
@@ -0,0 +1,2 @@
+[overflow-applies-to-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001a.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001a.html.ini
new file mode 100644
index 00000000000..81d6ac64849
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001a.html.ini
@@ -0,0 +1,2 @@
+[overflow-propagation-001a.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001b.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001b.html.ini
new file mode 100644
index 00000000000..ca92af5f99d
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001b.html.ini
@@ -0,0 +1,2 @@
+[overflow-propagation-001b.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001c.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001c.html.ini
new file mode 100644
index 00000000000..f62da303dbc
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/overflow-propagation-001c.html.ini
@@ -0,0 +1,2 @@
+[overflow-propagation-001c.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-005.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-005.xht.ini
new file mode 100644
index 00000000000..36e9fb509c0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-005.xht.ini
@@ -0,0 +1,2 @@
+[visibility-005.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-block-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-block-001.xht.ini
new file mode 100644
index 00000000000..3c53c8143a1
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visufx/visibility-block-001.xht.ini
@@ -0,0 +1,2 @@
+[visibility-block-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001a.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001a.xht.ini
new file mode 100644
index 00000000000..48932cc679e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001a.xht.ini
@@ -0,0 +1,2 @@
+[anonymous-boxes-001a.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini
new file mode 100644
index 00000000000..67b06807a43
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/anonymous-boxes-001b.xht.ini
@@ -0,0 +1,2 @@
+[anonymous-boxes-001b.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/box-offsets-rel-pos-002.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/box-offsets-rel-pos-002.xht.ini
new file mode 100644
index 00000000000..a46bac970a7
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/box-offsets-rel-pos-002.xht.ini
@@ -0,0 +1,2 @@
+[box-offsets-rel-pos-002.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-016.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-016.xht.ini
new file mode 100644
index 00000000000..33069e740f0
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-016.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-016.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-017.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-017.xht.ini
new file mode 100644
index 00000000000..9221144b5ce
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/clear-applies-to-017.xht.ini
@@ -0,0 +1,2 @@
+[clear-applies-to-017.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/inline-formatting-context-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/inline-formatting-context-001.xht.ini
new file mode 100644
index 00000000000..c517525efae
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/inline-formatting-context-001.xht.ini
@@ -0,0 +1,2 @@
+[inline-formatting-context-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/left-offset-position-fixed-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/left-offset-position-fixed-001.xht.ini
new file mode 100644
index 00000000000..e677cc5d42e
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/left-offset-position-fixed-001.xht.ini
@@ -0,0 +1,2 @@
+[left-offset-position-fixed-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/visuren/position-absolute-percentage-inherit-001.xht.ini b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/position-absolute-percentage-inherit-001.xht.ini
new file mode 100644
index 00000000000..2a0ad5f976c
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/visuren/position-absolute-percentage-inherit-001.xht.ini
@@ -0,0 +1,2 @@
+[position-absolute-percentage-inherit-001.xht]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-017.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-017.html.ini
deleted file mode 100644
index 0f1ebae4a3e..00000000000
--- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-017.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[transform-input-017.html]
- expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-018.html.ini b/tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-018.html.ini
deleted file mode 100644
index f425dbe5f4a..00000000000
--- a/tests/wpt/metadata-layout-2020/css/css-transforms/transform-input-018.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[transform-input-018.html]
- 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 c6c0c87a48d..23c61ede1a1 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
@@ -11,12 +11,12 @@
[test some point of the element: top right corner]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
[test some point of the element: bottom right corner]
expected: FAIL
[test the top of layer]
expected: FAIL
+ [test some point of the element: top left corner]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
index faa00f45ecf..d4f62ed7113 100644
--- a/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
+++ b/tests/wpt/metadata/FileAPI/url/url-in-tags-revoke.window.js.ini
@@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
- expected: TIMEOUT
+ expected: FAIL
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index 548eb63cd89..cc27a64a40c 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -285,6 +285,15 @@
},
"semantics": {
"embedded-content": {
+ "the-img-element": {
+ "image-loading-lazy-subframe-detached-crash.html": [
+ "86a290d50db16d9f19d08bb8a9ad07b0aa52f66d",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"the-object-element": {
"block-object-with-ruby-crash.html": [
"481a7408e4a4fa91613556b39c9ddc95d568c50c",
@@ -136992,19 +137001,6 @@
{}
]
],
- "font-display-feature-policy-01.tentative.html": [
- "56b040d8faf6dee3740a288af5c1bf486b1c9e08",
- [
- null,
- [
- [
- "/css/css-fonts/font-display/font-display-feature-policy-01.tentative-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"font-display-feature-policy-02.tentative.html": [
"65f76b07846faf193e2b0900f45211303aa290f9",
[
@@ -143235,6 +143231,45 @@
],
{}
]
+ ],
+ "grid-placement-using-named-grid-lines-004.html": [
+ "c33b1a9ee9ec7f972df72b8658bae53c8163fd5e",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "grid-placement-using-named-grid-lines-005.html": [
+ "20d9298955f692b2c42113a747ca52627f29788b",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "grid-placement-using-named-grid-lines-006.html": [
+ "405858f73c5ab17b0a82167fe6399130ac1ddeba",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
},
"subgrid": {
@@ -143642,7 +143677,7 @@
]
],
"repeat-auto-fill-001.html": [
- "e17fc8274f441835888ff57d12bd985d0ece7623",
+ "9e57028c4cc2757eb3ec52cc214f902562413474",
[
null,
[
@@ -143655,7 +143690,7 @@
]
],
"repeat-auto-fill-002.html": [
- "38d0bea0d08e6e1b1691a595ac9a1c2dfea59adb",
+ "80980f14e9f8ccfced29e252114a4337a0dc5aeb",
[
null,
[
@@ -143668,7 +143703,7 @@
]
],
"repeat-auto-fill-003.html": [
- "b58799bd86bd1ad1f7875a6c9da7e8247136e6f8",
+ "3a1d2707c37c6861dc97cd6cdd5f2f3739a431c7",
[
null,
[
@@ -143681,7 +143716,7 @@
]
],
"repeat-auto-fill-004.html": [
- "beacff588a2c6209ee89b8715eccd374b1847ba8",
+ "9dd8f33eb9b0e8815ea2a407087cb344b1f870a2",
[
null,
[
@@ -185381,19 +185416,6 @@
{}
]
],
- "outline-with-padding-001.html": [
- "716491ca25eae11238b7240a3635bdb8a88187cf",
- [
- null,
- [
- [
- "/css/css-ui/reference/outline-with-padding-001-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"resize-change-margin.html": [
"a957ac931e8647958baf0d1891d3e69dd4435c0d",
[
@@ -186788,7 +186810,7 @@
]
],
"max-length-percent-001.html": [
- "ffb6c27db278bc030923745d0e06c47d2af897c3",
+ "6d1e9ed248aff08c2e3ea11c087f9fde7b912707",
[
null,
[
@@ -186814,7 +186836,7 @@
]
],
"min-length-percent-001.html": [
- "73069ecfe1e6d5b198f6e01df48facbe117d6828",
+ "0ffceb827a9b249581a40966a3193cf297a41738",
[
null,
[
@@ -186827,7 +186849,7 @@
]
],
"min-max-percentage-length-interpolation.html": [
- "14af1352d1740d32cd52ab069ab1799f87803f5d",
+ "089d6f0407339cf3f4d7714eddb1f56e3d44c562",
[
null,
[
@@ -237355,7 +237377,7 @@
[]
],
"support.js": [
- "d3b2bb7d1212dd6de0379bf2dce0b23e45f7c7cb",
+ "8dbfa6f1e37d7631bf5f69b9da9b906876c5d2cf",
[]
]
},
@@ -240124,7 +240146,7 @@
[]
],
"sec-ch-ua.py": [
- "a14a27dadf9e333784a5c636c821634b387e475f",
+ "f77eee8c4e9b13a24b10eba34147d3b485e923bc",
[]
],
"stale-echo-client-hints.py": [
@@ -240248,7 +240270,7 @@
],
"security-features": {
"README.md": [
- "387e68334aeaaad68a71c3ffa32cf0ca05345b91",
+ "fb9a2f108f9faf68bb86f0bd9f848dbd28630ca4",
[]
],
"resources": {
@@ -240383,7 +240405,11 @@
[]
],
"generate.py": [
- "3345d6520691de734977a18d73c94f71b446408a",
+ "057c4d81ef1e110be161360ea3f1ea092702d21d",
+ []
+ ],
+ "spec.src.json": [
+ "7cf6a06c0f53492b7cb0f54b6db90688b649c1fc",
[]
],
"spec_validator.py": [
@@ -244783,6 +244809,30 @@
]
},
"input": {
+ "autocomplete-address-novalid.html": [
+ "a0646214e079e6fffad945b763337beadaf16b0f",
+ []
+ ],
+ "autocomplete-empty-novalid.html": [
+ "20b35d678f7fb2af1c4f992fce5f2569e85fcb4d",
+ []
+ ],
+ "autocomplete-section-novalid.html": [
+ "9d5e8a1187a6ec6ae7b5d760a222248c1b522f2c",
+ []
+ ],
+ "autocomplete-text-isvalid.html": [
+ "2faa347bd28d45d8d5efbc6ba26c1d64a293a077",
+ []
+ ],
+ "autocomplete-token-novalid.html": [
+ "544ca79dfdb07b8135dfd22aab643f92a7e9d871",
+ []
+ ],
+ "autocomplete-work-novalid.html": [
+ "2ff29bd9cc01a490303cd65325f7d249b8789021",
+ []
+ ],
"list-novalid.html": [
"63f43af1f5a286568817d4c89cbe7860675b5140",
[]
@@ -258037,9 +258087,61 @@
[]
],
"messages.json": [
- "6c0e2c035e931e12e701fd9d6c145216e4a8bb6f",
+ "8e32e24ca2accb8c2991306fac5d83256273a7ad",
[]
],
+ "select": {
+ "autocomplete-address-novalid.html": [
+ "7e4087ab37645e4458358664519c08e3ca83d71e",
+ []
+ ],
+ "autocomplete-empty-novalid.html": [
+ "a45757df2d23fcc7a9952adda9d21784e009b262",
+ []
+ ],
+ "autocomplete-isvalid.html": [
+ "065b764b3d2896f108d15859b0ddb69bf72de8ec",
+ []
+ ],
+ "autocomplete-section-novalid.html": [
+ "084fc2c91763a944af8c25163990b61b1f72cefa",
+ []
+ ],
+ "autocomplete-token-novalid.html": [
+ "267c4d40c28423ec698fdce2fc022887978db17d",
+ []
+ ],
+ "autocomplete-work-novalid.html": [
+ "c26b4f8531f40dcfd816392af4c6f0b94c1f363e",
+ []
+ ]
+ },
+ "textarea": {
+ "autocomplete-address-novalid.html": [
+ "1061d9a620278cf0477632b33d0fc5d2ac69afb7",
+ []
+ ],
+ "autocomplete-empty-novalid.html": [
+ "d222846b4ff864cf90c3b0d934e1a2dfec2e895b",
+ []
+ ],
+ "autocomplete-isvalid.html": [
+ "23bdb9ab8fca96bf4c03a004c6d9f00d733d7dcc",
+ []
+ ],
+ "autocomplete-section-novalid.html": [
+ "ec1038b00f3941babc9edd0f8fd4fc9c0c7f0e68",
+ []
+ ],
+ "autocomplete-token-novalid.html": [
+ "761495b52de60d7396479f78419ab71d918a3bff",
+ []
+ ],
+ "autocomplete-work-novalid.html": [
+ "6818e26c89126093368e50d28b246a463c5a3cda",
+ []
+ ]
+ },
"tools": {
"build-svg-tests.py": [
"dd3aa3844e9093cd3970e03677eed748a7df7509",
@@ -279853,7 +279955,7 @@
[]
],
"testcommon.js": [
- "b4fde4b967de2eb67cb3e0819c3a896375e861f9",
+ "7d63d2c49bce5152d765ac62728f749f622bde2a",
[]
]
}
@@ -283552,14 +283654,6 @@
"e06a55939995ed04a5745bc0dd4cf28113f918c8",
[]
],
- "font-display-feature-policy-01.tentative-ref.html": [
- "fc43ebc49b5a84486dff5b3f82134b0b8807d025",
- []
- ],
- "font-display-feature-policy-01.tentative.html.headers": [
- "0c3e29db99f07ddc1bb3c07cac24e2904e546b1b",
- []
- ],
"font-display-feature-policy-02.tentative-ref.html": [
"019043fd116d0b9581fc187767b2552558906cf1",
[]
@@ -283568,14 +283662,6 @@
"e6c4898d5d3d28fa225e834674dfb768dbcf55d7",
[]
],
- "font-display-feature-policy-report-only.tentative.html.headers": [
- "e6c4898d5d3d28fa225e834674dfb768dbcf55d7",
- []
- ],
- "font-display-feature-policy-reporting.tentative.html.headers": [
- "0c3e29db99f07ddc1bb3c07cac24e2904e546b1b",
- []
- ],
"font-display-preload-ref.html": [
"e3ba8caa32f13479896e82afcaab654a3785375f",
[]
@@ -291019,11 +291105,11 @@
[]
],
"repeat-auto-fill-001-ref.html": [
- "bbf5d374589b29c9c0dcb04b941160a94130b3a1",
+ "8cd0ef66b974e808463b51db603476adee3b5f5d",
[]
],
"repeat-auto-fill-004-ref.html": [
- "07ba960200b1fe9ba69448da8e5e9ff1ebf547fd",
+ "ca2729fa3f2af414f8a176b9f162ee0d5f3ebc40",
[]
],
"repeat-auto-fill-005-ref.html": [
@@ -299964,10 +300050,6 @@
"345be332be504f37a277788697a5047d60498aa8",
[]
],
- "outline-with-padding-001-ref.html": [
- "62b0c41757dd1bb4e323c8a6753f82c30c98ce7a",
- []
- ],
"text-overflow-001-ref.html": [
"9e9303106a82dea9433ec61fa9ec0df8950ae38f",
[]
@@ -305196,7 +305278,7 @@
[]
],
"numeric-testcommon.js": [
- "56022d06399df48b48d72ef71169578034a5f86c",
+ "e0569fed2641b169416dc6b351e32770eb8fbd95",
[]
],
"parsing-testcommon.js": [
@@ -305243,6 +305325,10 @@
"84141028020b7e8cdf2412acbca3c799ba50a534",
[]
],
+ "serialize-testcommon.js": [
+ "18cebf538ef065867f0d4a2438d1996d4f4345af",
+ []
+ ],
"shorthand-testcommon.js": [
"ab1f3794c8dac2f1e067209fd766ec18858a5f45",
[]
@@ -309602,6 +309688,14 @@
"font-display-document-policy-01.tentative.html.headers": [
"e1387f50deead65859267b376367a5eb2a92482d",
[]
+ ],
+ "font-display-document-policy-report-only.tentative.html.headers": [
+ "e090edd0da42f4e98c400f84fb42232adbe95ab6",
+ []
+ ],
+ "font-display-document-policy-reporting.tentative.html.headers": [
+ "84ad7cbf97bcbfd9f56bfeef5bc5928b8819ae4e",
+ []
]
},
"required-policy": {
@@ -311998,30 +312092,6 @@
"961d40336aeb3ed04c58b9a8b6196b3393cb92d5",
[]
],
- "parameters": {
- "feature-parameters-inf.html": [
- "db21427c8ed9f3c2f8e8b8ba9d91d4fd230fc2ff",
- []
- ],
- "feature-parameters-inf.html.headers": [
- "1ec003431b3f090dbb596f6973b84f81de27ace0",
- []
- ],
- "feature-parameters.html.headers": [
- "b4fa805c5696ab5ef8171508aeccf200e9d95df3",
- []
- ],
- "resources": {
- "feature-parameters-frame.html": [
- "4f01f85795da8114e762cb0ddc271cefdd02da1f",
- []
- ],
- "sample-1.png": [
- "92901925c6082b7fb01fade09f87356308218a47",
- []
- ]
- }
- },
"payment-allowed-by-feature-policy.https.sub.html.headers": [
"a5c010bd68ce2f3dc8a1ad8bf97fc4cb845a4a38",
[]
@@ -313400,7 +313470,7 @@
],
"math": {
"axisheight5000-verticalarrow14000.woff": [
- "9f5d59ae6a7fbf221fd14126645f1cbc7c25d286",
+ "70f366a3d0b7ec891fc4041584a1ddea55b0bc42",
[]
],
"fraction-axisheight7000-rulethickness1000.woff": [
@@ -315379,6 +315449,10 @@
"43c44cffd64e01f12a8d0dc22bbddfdd05a79a90",
[]
],
+ "report-only-require-corp.https.html.headers": [
+ "289659a41fdf41178781c764643f8946f4ec09b7",
+ []
+ ],
"require-corp-about-blank.html.headers": [
"8df98474b589d070992677cb0134bd47bd0509c4",
[]
@@ -315416,10 +315490,6 @@
"6604450991a122e3e241e40b1b9e0516c525389d",
[]
],
- "dedicated-worker.js": [
- "5d46edcde24c1854c19069d967038c493d7e24f0",
- []
- ],
"iframe.html": [
"a6b74ad924aa108e15603544f7b0a80a3e18940b",
[]
@@ -315460,6 +315530,18 @@
"30ddeac2e7a3596de3910def1a7066e817873cbe",
[]
],
+ "report.py": [
+ "8adf3009d08e2311cdf9c2008d7a10a0882ce030",
+ []
+ ],
+ "require-corp-sw-import-scripts.js": [
+ "e652c5bf303074d7c396f53146bb8af6c3f35644",
+ []
+ ],
+ "require-corp-sw-import-scripts.js.headers": [
+ "6604450991a122e3e241e40b1b9e0516c525389d",
+ []
+ ],
"require-corp-sw.js": [
"3e2f069ded033f33528c8f850d330c5b4e84e46c",
[]
@@ -315472,6 +315554,18 @@
"9db755226020479fd87e87f42ea622c999b38f7d",
[]
],
+ "stash-take.py": [
+ "73e0def86caed347bf673b0daa8df46b9a4e074d",
+ []
+ ],
+ "subresource-corp.html": [
+ "4b029700e0e9a7545dae07df489eef7e32256030",
+ []
+ ],
+ "subresource-corp.html.sub.headers": [
+ "00609991031ea5a07c5a3fa802fcc73dcd00863e",
+ []
+ ],
"sw-store-to-cache-storage.js": [
"00b9e9395a7ec2171b3fee9d75f6ccb1d46ee60f",
[]
@@ -315479,6 +315573,10 @@
"sw.js": [
"57f0b41ba5b5ff6318e1e4913dfd13bdb1f237a4",
[]
+ ],
+ "universal-worker.js": [
+ "5d46edcde24c1854c19069d967038c493d7e24f0",
+ []
]
},
"sandbox.https.html.headers": [
@@ -324390,7 +324488,7 @@
[]
],
"allowed-to-play.html.ini": [
- "87726f492394955e3835a6a6675cae490669d5de",
+ "6891cbe24e3c124a983939f811e23f23b3b52ed7",
[]
],
"document-fonts-ready.html.ini": [
@@ -324829,7 +324927,7 @@
[]
],
"construct-stylesheets.idl": [
- "fca2a3e2887a192f737b4ce05edc52810b2cd7a9",
+ "35121866f66eaa8b6663480d1a4cb72c1cf8fd1e",
[]
],
"cookie-store.idl": [
@@ -325096,6 +325194,10 @@
"2ea3d38240e527f10af7ef392e0c0935a3750572",
[]
],
+ "origin-policy.idl": [
+ "e48e0632bd89ff764fa9b3864207b39723a388cf",
+ []
+ ],
"page-visibility.idl": [
"6b8bd52a047ce411b968a79e6d0f7d152ab32a57",
[]
@@ -325209,7 +325311,7 @@
[]
],
"shape-detection-api.idl": [
- "51c996959bea2acc1b2d0a3c3be438b0c6182e23",
+ "5b1c45a773987eb8ce8b59fd5b98c2f0c9ae4ea5",
[]
],
"speech-api.idl": [
@@ -325229,7 +325331,7 @@
[]
],
"trusted-types.tentative.idl": [
- "be58b63b2c3d10e8a53ac2af7388e9a44f8fa3e6",
+ "29a1822465f3e83aeed3f219230092e66c210e8d",
[]
],
"uievents.idl": [
@@ -325321,7 +325423,7 @@
[]
],
"webrtc-stats.idl": [
- "d1a54898b9a62e85a3c1488704afe736058d5e93",
+ "f66b0791cb2fae4665a6df8cde1d1c67a18797f6",
[]
],
"webrtc-svc.idl": [
@@ -325465,46 +325567,6 @@
]
}
},
- "kv-storage": {
- "META.yml": [
- "bf4a1e6e8b44bc78cf7a624a12b254cbac2f25a5",
- []
- ],
- "helpers": {
- "equality-asserters.js": [
- "448ab31348cee50be8820185d8bdfb8f626eb9dc",
- []
- ],
- "expose-as-global.html": [
- "4ff3c6cf9c22fdfedfe7987d46eeba37bd666266",
- []
- ],
- "iter-assert.js": [
- "e1ac73c8e9abd0d6c55812523abcc590a638da9f",
- []
- ],
- "kvs-tests.js": [
- "9fd9d205ae1996c355647d86e8b12b46369d1053",
- []
- ]
- },
- "secure-context": {
- "README.md": [
- "9b3539995bfa656860ce6cb9b51b287e4afcfb30",
- []
- ],
- "resources": {
- "dummy-module.js": [
- "27fb98860ea352b1df491031487ccc0bbb9bdf42",
- []
- ],
- "test-side-effects.js": [
- "39780a92fff17fdf64d8b43c025304b59b1fe2b7",
- []
- ]
- }
- }
- },
"largest-contentful-paint": {
"resources": {
"iframe-stores-entry.html": [
@@ -325570,7 +325632,7 @@
]
},
"lint.whitelist": [
- "6ea2bd4ec1e2dcc8ee77d962b723104b7ee02b0f",
+ "99a6309956e807a4459d36b94fe13574688d6c67",
[]
],
"loading": {
@@ -326156,7 +326218,7 @@
},
"tools": {
"axisheight.py": [
- "43827e7031665bdd57ee54e208ea0f875a9a60ec",
+ "d588560b650af0d2cb995083f8fff366a542ca44",
[]
],
"fractions.py": [
@@ -326241,16 +326303,20 @@
[]
],
"README.md": [
- "641969d932cf827f947d0e70d0f92a40ecab31fd",
+ "953611f93037cfebe0459d5f67599b727539ae40",
[]
],
"resources": {
+ "child.sub.html": [
+ "f52b5eefbc5d0cf0dd88ee9103f851d632268f5d",
+ []
+ ],
"common.js": [
- "36df1d8c1557ec5e02c1b69dfe2687e1898bb457",
+ "92ff11b35b1d6ab501a7b7dbac52411c08711a83",
[]
],
- "iframe.sub.html": [
- "b1a476cff2e8af1550083a57e62fa7a0b2e9af1c",
+ "grandchild.sub.html": [
+ "98522e0649e505d66766b9d8c62946a5513aa5a1",
[]
]
}
@@ -328240,7 +328306,7 @@
[]
],
"spec_json.js": [
- "af9cf72857e5d640bad18b441f1d3c81bc44a2de",
+ "c36a535f45363654bfd7c8b86f3710995f769f63",
[]
],
"test-case.sub.js": [
@@ -328249,7 +328315,7 @@
]
},
"spec.src.json": [
- "547dc97504029dcac4a006113d538f3813a2c2b6",
+ "16843700da8f314638aafaa517797152cab6f02f",
[]
]
},
@@ -328316,7 +328382,7 @@
},
"script-tests": {
"FileSystemBaseHandle-IndexedDB.js": [
- "d7403ff5ea6d649d2b36870a5add0730f528a1ea",
+ "855e52f04ddf2f4f8641524010216c6e8c7cdda7",
[]
],
"FileSystemBaseHandle-postMessage-BroadcastChannel.js": [
@@ -337190,7 +337256,7 @@
[]
],
"spec_json.js": [
- "a8b723d5a98f9748689faf31e95bd2c7a887b079",
+ "fbe59a2cc9cc5fec5ddd8a0d35354cca787dd515",
[]
],
"test-case.sub.js": [
@@ -337199,7 +337265,7 @@
]
},
"spec.src.json": [
- "d32ee80a8d2ce1edd57b09f919732eefa4f6caeb",
+ "9063428647a33acfefb5bd35a74f0f080de09510",
[]
]
},
@@ -337658,7 +337724,7 @@
[]
],
"nfc-mock.js": [
- "7832a8231efb01f277960afc91adf01cfe3e3ac6",
+ "14bb8fdada399999efb67576481efa8881af48f3",
[]
],
"sensor.mojom.js": [
@@ -340694,7 +340760,7 @@
[]
],
"shadow-dom.js": [
- "81b9a3d4fae226ed460583cb94a2443c807e3ce0",
+ "3a4ad39d42a3d444e795aa539637123f16da0e66",
[]
]
},
@@ -342299,7 +342365,7 @@
[]
],
"safari-technology-preview.rb": [
- "bcd4d5a4f3e8ceedfb998fbe95945209d44e9151",
+ "1bf9d5df0b3307665bf36c158fb963d2656d202d",
[]
],
"system_info.yml": [
@@ -342426,7 +342492,7 @@
[]
],
"test_valid.py": [
- "4573541bf5864badfa39a155c5d62d71a18911e0",
+ "aa1ce20cd6d36191d96e2080393a70b13d8aa1df",
[]
]
}
@@ -347485,7 +347551,7 @@
[]
],
"client.py": [
- "9885e99c4f7c8c339caad4fd2172e59688d9b2fe",
+ "658ed0e00f8a344941673eed671ba9de317858a9",
[]
],
"error.py": [
@@ -347497,7 +347563,7 @@
[]
],
"transport.py": [
- "edaf3186039d287dd5ef3ce6e4e616fd8bc0e302",
+ "f817ec81a96fb93cc5c60154f057d72e98375694",
[]
]
}
@@ -347544,7 +347610,7 @@
[]
],
"revlist.py": [
- "c4cbc2943b7ce02ef2a58f65d34ab717bfb0c981",
+ "1893fdefa8346e8f969e41789df6e3ddd8540629",
[]
],
"run.py": [
@@ -347594,7 +347660,7 @@
[]
],
"virtualenv.py": [
- "400debc88e46910d2641e728fc4adb86a88568e0",
+ "18edcc04fb4d528e6566da10902a9ac964b42a65",
[]
],
"wpt.py": [
@@ -347638,7 +347704,7 @@
]
},
"requirements.txt": [
- "99898d1736daadaca5b422c5c4e80becb742e94e",
+ "6cd14095d9ba1fcf49b9e403a644008e8fe2ca3b",
[]
],
"requirements_android_webview.txt": [
@@ -347670,7 +347736,7 @@
[]
],
"requirements_firefox.txt": [
- "f2d02e0b8a3f8fcb4eec55bd61ffe70a8c3d05f7",
+ "ae72940810432bed693c001d4b057a1214fd2dac",
[]
],
"requirements_ie.txt": [
@@ -347998,7 +348064,7 @@
[]
],
"executorwebdriver.py": [
- "96488f462e7c89b0526a0d58ddb8ddb2cdb03a44",
+ "2a0e9c7136dc147fec9a690509d6c05813ead5f0",
[]
],
"executorwebkit.py": [
@@ -348239,7 +348305,7 @@
[]
],
"wptcommandline.py": [
- "66b97fd89535894ccb0e5b198304c3cf040b2a2d",
+ "5f07e7e6520f028c2d4418a4c2bde782a50a84ae",
[]
],
"wptlogging.py": [
@@ -348700,27 +348766,27 @@
"d0743949b6a122d8bd0adf7b1ed0181f0c51429d",
[]
],
- "default-policy-report-only.tentative.html.headers": [
+ "default-policy-report-only.tentative.https.html.headers": [
"67b9ef7a3c5ef2f53775de6965ca12343026a829",
[]
],
- "default-policy.tentative.html.headers": [
+ "default-policy.tentative.https.html.headers": [
"6a40e40a586a5b0ad3f01bf8e45402e74d424cd2",
[]
],
- "empty-default-policy-report-only.tentative.html.headers": [
+ "empty-default-policy-report-only.tentative.https.html.headers": [
"67b9ef7a3c5ef2f53775de6965ca12343026a829",
[]
],
- "empty-default-policy.tentative.html.headers": [
+ "empty-default-policy.tentative.https.html.headers": [
"6a40e40a586a5b0ad3f01bf8e45402e74d424cd2",
[]
],
- "no-require-trusted-types-for-report-only.tentative.html.headers": [
+ "no-require-trusted-types-for-report-only.tentative.https.html.headers": [
"fa87952ae486b3a902eca0257eadace8e25e881f",
[]
],
- "require-trusted-types-for-report-only.tentative.html.headers": [
+ "require-trusted-types-for-report-only.tentative.https.html.headers": [
"c6412f8d472fcfd6022b0ae485f52b3d3dedd820",
[]
],
@@ -348762,12 +348828,12 @@
[]
]
},
- "trusted-types-duplicate-names-list-report-only.tentative.html.headers": [
+ "trusted-types-duplicate-names-list-report-only.tentative.https.html.headers": [
"b6608515aa85a08dbb56531c46c097e179c76200",
[]
],
"trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers": [
- "30fe3b1df1d8f10ea4eb495f53bf93066a9e5ecd",
+ "e4147bd2e372e4498f9a6ca138f9f29f4750561f",
[]
],
"trusted-types-eval-reporting-report-only.tentative.https.html.headers": [
@@ -348775,7 +348841,7 @@
[]
],
"trusted-types-eval-reporting.tentative.https.html.headers": [
- "91a2be91ef749e470f8998d7058871484dcb274d",
+ "3f55bba7d1b8d0965d3f9f29c7db301806f7c1a0",
[]
],
"trusted-types-report-only.tentative.https.html.headers": [
@@ -349310,7 +349376,7 @@
},
"generic": {
"spec_json.js": [
- "0adba4938d47d896fa2d343f58022cfa113615da",
+ "c0ef97148952f32e7c510b8a485f6d2da0e4a177",
[]
],
"test-case.sub.js": [
@@ -349403,7 +349469,7 @@
}
},
"spec.src.json": [
- "70417038bcccc269cb5fb40df09dfe7ec0f7b578",
+ "d64315903aa66dd5c9ffd19bf862e96ac26b3a64",
[]
],
"support": {
@@ -349856,7 +349922,7 @@
],
"resources": {
"nfc-helpers.js": [
- "5bec071dfa7ad65fe4181a897ebe91912ee94476",
+ "b1753ddd1b3c5fb70b5ee4d99500623e3fdbdbfd",
[]
],
"support-iframe.html": [
@@ -354250,9 +354316,17 @@
"82be8e7ce72edab7050b14cccc658ff39ddfe632",
[]
],
+ "static-import-syntax-error.js": [
+ "3a20e792c455ee53c26066f99afd79b041a46fb6",
+ []
+ ],
"static-import-worker.js": [
"19a347999d386fd4df8dc831c6d164b27630ef7a",
[]
+ ],
+ "syntax-error.js": [
+ "8c5c4df671bcc3f75ac1e474fc651927e57e8701",
+ []
]
},
"shared-worker-options-credentials.html.headers": [
@@ -365590,6 +365664,181 @@
{}
]
],
+ "transaction-scheduling-across-connections.any.js": [
+ "92d098d29c937c84b7bc9dd1219f126db0b7e585",
+ [
+ "IndexedDB/transaction-scheduling-across-connections.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-across-connections.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "transaction-scheduling-across-databases.any.js": [
+ "064444175867ca528d0d90ea0be40d573561ca88",
+ [
+ "IndexedDB/transaction-scheduling-across-databases.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-across-databases.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "transaction-scheduling-mixed-scopes.any.js": [
+ "5f04a6a288d23c29a7663ccfcdb32c932d573831",
+ [
+ "IndexedDB/transaction-scheduling-mixed-scopes.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-mixed-scopes.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "transaction-scheduling-ordering.any.js": [
+ "9f47e5c58ca3961d83263c7d90da597b83e06ceb",
+ [
+ "IndexedDB/transaction-scheduling-ordering.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-ordering.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "transaction-scheduling-ro-waits-for-rw.any.js": [
+ "dca08b820888f13c00cdb5a8a61badac884fac21",
+ [
+ "IndexedDB/transaction-scheduling-ro-waits-for-rw.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-ro-waits-for-rw.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "transaction-scheduling-rw-scopes.any.js": [
+ "7c6f61614b0689d3090222872379c1269559ec4c",
+ [
+ "IndexedDB/transaction-scheduling-rw-scopes.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-rw-scopes.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
+ "transaction-scheduling-within-database.any.js": [
+ "10dd8b6d7ac5ed9dd4399a04dada2f5e88b827d8",
+ [
+ "IndexedDB/transaction-scheduling-within-database.any.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "IndexedDB/transaction-scheduling-within-database.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "support.js"
+ ]
+ ]
+ }
+ ]
+ ],
"transaction_bubble-and-capture.htm": [
"bffa9307ccf3c7738639eb243cbf2d3ae984cb5d",
[
@@ -379081,7 +379330,7 @@
},
"nonce-hiding": {
"nonces.html": [
- "b023d060323d9d9f366ffdb53159a6f25ab24065",
+ "7ee10a7b29e5a54918a75037ded0e5bd087f601a",
[
null,
{}
@@ -383847,6 +384096,13 @@
{}
]
],
+ "AnimationEffect-updateTiming.tentative.html": [
+ "e6556dac4bde9fd436237cb78f5e88a1968be7d1",
+ [
+ null,
+ {}
+ ]
+ ],
"CSSAnimation-animationName.tentative.html": [
"370d5ef85e27c2e83deb54522a31da9deb8b556c",
[
@@ -383869,7 +384125,7 @@
]
],
"CSSAnimation-effect.tentative.html": [
- "bbf35d5113a9c3d1e4dba7318f649494c88feb4c",
+ "5e2d18b5bf9659e9cf8930c151abcd2a12635fa0",
[
null,
{
@@ -383899,7 +384155,7 @@
]
],
"CSSAnimation-pausing.tentative.html": [
- "2b6e6853b4178f90e820a16a74a5d63524123d32",
+ "156a1afa964de12e4a983c032f9b526b5cdf625d",
[
null,
{}
@@ -383948,7 +384204,14 @@
]
],
"KeyframeEffect-getKeyframes.tentative.html": [
- "591cc15a7eda8279ec5e9af529f8e6a06b7caa6c",
+ "f7d767dea8ca15589a53fae7952bb15e383ccd22",
+ [
+ null,
+ {}
+ ]
+ ],
+ "KeyframeEffect-setKeyframes.tentative.html": [
+ "7d8f845413a38daae9bcc9d6ce251e44cda582cb",
[
null,
{}
@@ -387157,20 +387420,6 @@
null,
{}
]
- ],
- "font-display-feature-policy-report-only.tentative.html": [
- "ff3a7f197835370a2eaaf96cf920b0f09d3d8405",
- [
- null,
- {}
- ]
- ],
- "font-display-feature-policy-reporting.tentative.html": [
- "6f6a51a28fda5c9f5816bf6c54dc7fba5f462475",
- [
- null,
- {}
- ]
]
},
"font-feature-settings-serialization-001.html": [
@@ -392325,21 +392574,21 @@
},
"css-page": {
"page-rule-declarations-000.html": [
- "227b9148a3870617ffccff141e1f763a631024b6",
+ "cbe53855a0a6869dfc49d5997bba7584b04dcbdd",
[
null,
{}
]
],
"page-rule-declarations-001.html": [
- "e57424029ba827862e7be5bd1c7e949b74c58331",
+ "dc225b5abdc5fb5d4ad27e5c7b251c7b988b31f9",
[
null,
{}
]
],
"page-rule-declarations-002.html": [
- "183072dec676d6e913c3ed35935d5e06f3fd4963",
+ "b35fa29244cc89ad37c6e988c4cd6d9277061161",
[
null,
{}
@@ -399121,7 +399370,7 @@
]
],
"CSSTransition-effect.tentative.html": [
- "a38bc21bde05b95f14963d3a6543cef40f193e5a",
+ "5ccb201082e3c35014648ccda92b1bbf6eef3795",
[
null,
{}
@@ -399176,6 +399425,13 @@
{}
]
],
+ "KeyframeEffect-setKeyframes.tentative.html": [
+ "df11c28234e0a984ead5ecf630f2a80ddff1c4b6",
+ [
+ null,
+ {}
+ ]
+ ],
"KeyframeEffect-target.tentative.html": [
"dbb2a43f784db98317c4d37b32a376f6c27213ce",
[
@@ -402657,7 +402913,7 @@
]
],
"minmax-angle-computed.html": [
- "84e598a8147e123285d54876f942a0df0a5bf57f",
+ "c0218a0899e6f9ee991a3645293895b924a895ed",
[
null,
{}
@@ -402671,21 +402927,21 @@
]
],
"minmax-angle-serialize.html": [
- "07b7d3c2b232612334555603325560259cb41203",
+ "106d6d24111d7ae49f76bbd2e50118308eaa6dbc",
[
null,
{}
]
],
"minmax-integer-computed.html": [
- "b3794acba9c8f5cfdf56b31292f971b4ccc0bb28",
+ "49dbe198c993d0ace5542b9467f462c3c74c2ef7",
[
null,
{}
]
],
"minmax-length-computed.html": [
- "2d6e24e51944beb0f7d030bd99eb14576f7dd3dc",
+ "f2444306230fd8df56cf927e55bf556d094248af",
[
null,
{}
@@ -402699,7 +402955,7 @@
]
],
"minmax-length-percent-computed.html": [
- "acd0f2b31bb7554d1e74dd43ad56bd5a68543f07",
+ "9788fa26df6aa14f67e9c904e84b616ec7f90c45",
[
null,
{}
@@ -402713,21 +402969,21 @@
]
],
"minmax-length-percent-serialize.html": [
- "c353fa849076f4551827a10b9742a85b53d4fc18",
+ "9e215fd68742f4c1fc960fd5374ed660e8537098",
[
null,
{}
]
],
"minmax-length-serialize.html": [
- "4b30864d2344ba297f077b7e9090d25984bdb631",
+ "bd00ee058859b3b805e621474fa9221f2cd44d17",
[
null,
{}
]
],
"minmax-number-computed.html": [
- "9a6e6142ea85ede12d742ca49f5bddf03b2e56b0",
+ "3a1c609e161d165c9f173cba6ccdbf9fcf577ac6",
[
null,
{}
@@ -402741,14 +402997,14 @@
]
],
"minmax-number-serialize.html": [
- "e05ccc339c90a1c8df22d6b9f46ff7c357dc36af",
+ "fc34f199834fabfc7b755d473e4ff577ca6a4f2f",
[
null,
{}
]
],
"minmax-percentage-computed.html": [
- "9f9d0a59d12c2642bfea8ca5a3e2f8528067c80e",
+ "8775a280f1ad5459385b6ef8e5bed732de87e2be",
[
null,
{}
@@ -402762,14 +403018,14 @@
]
],
"minmax-percentage-serialize.html": [
- "79624be529e5ec91b847a995d497e515736f66cc",
+ "f1cb5081a6d341cbba638ca7f1ecdb302813bc8f",
[
null,
{}
]
],
"minmax-time-computed.html": [
- "36bcf601eb808311732562a6c1c6a7c801f33e9d",
+ "47f70ed01818d0d6e670980bd68b039066c55af8",
[
null,
{}
@@ -402783,7 +403039,7 @@
]
],
"minmax-time-serialize.html": [
- "d7dd4edb5880e9162a702e3c1ce0a5540dc42679",
+ "27d09cfa28b60c6b0e0e61e65d000345c5bb4a53",
[
null,
{}
@@ -402797,7 +403053,7 @@
]
],
"round-function.html": [
- "236b9a9a8a32e691c5b5b0ea6df66995ec1e4a10",
+ "b1e950efe7238fcc08b9423dca88e51383f8f7d3",
[
null,
{}
@@ -402810,6 +403066,13 @@
{}
]
],
+ "update-subpixel-rem-unit.html": [
+ "98d4f00f92ae90165dd9b0c82cf0496523bc9c2a",
+ [
+ null,
+ {}
+ ]
+ ],
"urls": {
"empty.html": [
"3ab7079396c517d7abd6334b0cfadf7eda471115",
@@ -403664,6 +403927,13 @@
{}
]
],
+ "CSSStyleSheet-constructable-baseURL.tentative.html": [
+ "b43ed61c3eea71f4f59531b80adcbc33d22337c1",
+ [
+ null,
+ {}
+ ]
+ ],
"CSSStyleSheet-constructable-disabled-regular-sheet-insertion.html": [
"ef4ea1480658af9aee9ef3464650893481d8ed46",
[
@@ -403672,14 +403942,14 @@
]
],
"CSSStyleSheet-constructable-duplicate.html": [
- "30a3ed1d09bbbd779d7b56df91908de948b6bc4b",
+ "579f5d0fcedc44b38ad98a94610e01850a3fef5d",
[
null,
{}
]
],
"CSSStyleSheet-constructable.html": [
- "c7e215381048eddedcf3c33166790815fc685aea",
+ "fbee4298c1411937f8c45a2f6001ee78dccadbb5",
[
null,
{}
@@ -407320,6 +407590,22 @@
]
},
"document-policy": {
+ "font-display": {
+ "font-display-document-policy-report-only.tentative.html": [
+ "03fa5b68a3ef8a587a72fba5b37fd5145307e1b0",
+ [
+ null,
+ {}
+ ]
+ ],
+ "font-display-document-policy-reporting.tentative.html": [
+ "db871d19f7e9f73419aabadb44e978579678990c",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"required-policy": {
"document-policy.html": [
"1935be3dd0a961add3d80aa35ded92734d9f8869",
@@ -407516,7 +407802,7 @@
]
],
"Event-dispatch-click.html": [
- "2241d57e5118843a37601bd6feae9645a82961a7",
+ "7690f753d9cd0b47f2c2c25352576caed970cd19",
[
null,
{}
@@ -407529,6 +407815,13 @@
{}
]
],
+ "Event-dispatch-detached-input-and-change.html": [
+ "a53ae71ac2a08d901b9ac8aaf35912cbbdcb7746",
+ [
+ null,
+ {}
+ ]
+ ],
"Event-dispatch-handlers-changed.html": [
"24e6fd70cb4ec4d44905ba8624280a526ef888c6",
[
@@ -423638,22 +423931,6 @@
}
]
],
- "parameters": {
- "feature-parameters-with-frames.html": [
- "de0a3ab1e3963e3e7c8da1e6bec35d454b1a9fdb",
- [
- null,
- {}
- ]
- ],
- "feature-parameters.html": [
- "9830f93eb4dcac9aaa2dfe6d209c452df5f94701",
- [
- null,
- {}
- ]
- ]
- },
"payment-allowed-by-feature-policy-attribute-redirect-on-load.https.sub.html": [
"daa2aa182daed73bd51bf32cf7981a805e3956c8",
[
@@ -431006,7 +431283,7 @@
]
],
"dedicated-worker-cache-storage.https.html": [
- "2559de839a304dce0c2700dc4f8ee0002de04332",
+ "dced705206fd02ede82ef4c3ed29bbd8f5f1ea2c",
[
null,
{}
@@ -431063,6 +431340,22 @@
}
]
],
+ "report-only-require-corp.https.html": [
+ "ff9e5b64a084eb2d2d990c3a7660633468772ff8",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
+ "reporting.https.html": [
+ "3a0aebe49a7baf67ad2e3fc1ac57eb6bf3fbb5f2",
+ [
+ null,
+ {}
+ ]
+ ],
"require-corp-about-blank.html": [
"5c51df71ae5b6a84f5c68c90a4012729a9e9c380",
[
@@ -431099,7 +431392,7 @@
]
],
"require-corp-sw.https.html": [
- "690ea6314f5c28c1bd8b58cb0d2350831361314f",
+ "bb154aecae81235a20af44bc173bb559274cb59e",
[
null,
{}
@@ -431121,6 +431414,13 @@
{}
]
],
+ "service-worker-cache-storage.https.html": [
+ "873f06ce4ffbf83bca2ac4dbdc04e5b5bf92abb6",
+ [
+ null,
+ {}
+ ]
+ ],
"srcdoc.https.html": [
"3fbba961b2736ed8c9fb973d61dfac5e54267c40",
[
@@ -434246,6 +434546,13 @@
{}
]
],
+ "img-alt-crash-001.html": [
+ "b057967e7e967b1b3113c69f71f1298b86ce4df8",
+ [
+ null,
+ {}
+ ]
+ ],
"img-aspect-ratio.html": [
"eceef92a6418f3d74ffbd13a08d8e648dff42a3f",
[
@@ -434392,7 +434699,7 @@
]
},
"unmapped-attributes.html": [
- "3f457eb492f0b72b2a9c5891e8784d0b69958b38",
+ "5824f836f0d654c116a55a252dfbda5fc6e5bbc8",
[
null,
{}
@@ -447456,15 +447763,15 @@
{}
]
],
- "navigator_user_agent.tentative.html": [
- "dd4c531070c8a21328a14709fd0357c6fba15001",
+ "navigator_user_agent.https.html": [
+ "4c83c7e8a546dd8c4d37b56f5bdc70d80e23e910",
[
null,
{}
]
],
- "navigator_user_agent.tentative.https.html": [
- "5f0dba6bcf72cb94f7e53ee52bfaedf7ac4819bf",
+ "navigator_user_agent.tentative.html": [
+ "dd4c531070c8a21328a14709fd0357c6fba15001",
[
null,
{}
@@ -449517,131 +449824,6 @@
]
]
},
- "kv-storage": {
- "backingstore.https.html": [
- "c0f49d48f48fdf3db7e724fa4760121c5e1f595a",
- [
- null,
- {}
- ]
- ],
- "cause-errors-via-idb.https.html": [
- "16be979d037523974e9582175e9182a31bd7e092",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "entries.https.html": [
- "07815920d5eec7235ceaa596558627991866715b",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "interface.https.html": [
- "d98b1c876d39583546968bacfc2e6766bbedbf27",
- [
- null,
- {}
- ]
- ],
- "key-types.https.html": [
- "210645f4c5a327f28465f46399a042f917f097ef",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "keys-values-entries.https.html": [
- "8aa6b9053dbe0fad49301a55756b49f354497ef5",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "keys.https.html": [
- "3535d2fb93993af74d752c80626d5f10c0d24a60",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "secure-context": {
- "dynamic-import.html": [
- "e2d0ce378eff4ed6115173ecdb83c7c7b1ee4a71",
- [
- null,
- {}
- ]
- ],
- "import-maps.html": [
- "211b9e43b1f18e9bdab85b890af000e47395c2ff",
- [
- null,
- {}
- ]
- ],
- "import-statement.html": [
- "71e14b04e3144f866ff6cda980998dedaa6a559b",
- [
- null,
- {}
- ]
- ],
- "script-element.html": [
- "b8170549ab558bbef98a357074b1ec6281a385a7",
- [
- null,
- {}
- ]
- ],
- "side-effects.html": [
- "f4c4b691d30db83342aaa5fc3a181d4dc98b4f1d",
- [
- null,
- {}
- ]
- ]
- },
- "storage-smoke-test.https.html": [
- "748b59bb2f2d0364669c55e566e8e84ae285b943",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "undefined-value.https.html": [
- "d87641e95b8f55a0f7c3d724f620f17943537c96",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ],
- "values.https.html": [
- "bbdc7aee84437ebd0e029556dd1d1fcb9670dc5d",
- [
- null,
- {
- "timeout": "long"
- }
- ]
- ]
- },
"largest-contentful-paint": {
"contracted-image.html": [
"ed6adfb2c7c66c65bd13f514be173d1cb48ff19e",
@@ -450824,7 +451006,7 @@
},
"measure-memory": {
"measure-memory-cross-origin-iframe.tentative.window.js": [
- "15590560ee93b908519794342bfc129509d36893",
+ "c8dcbb77edd33fd8c29678eeaedd3792dea172bc",
[
"measure-memory/measure-memory-cross-origin-iframe.tentative.window.html",
{
@@ -450847,7 +451029,7 @@
]
],
"measure-memory-same-origin-iframe.tentative.window.js": [
- "519ed85864da59e1965a27371b3184f0a56523b9",
+ "24700e51c2439671ae10e6fc5a6e2d725906ca59",
[
"measure-memory/measure-memory-same-origin-iframe.tentative.window.html",
{
@@ -450869,30 +451051,10 @@
}
]
],
- "measure-memory.tentative.any.js": [
- "22ec66c3460f0bad637eded4a5f8282c5b3081ac",
+ "measure-memory.tentative.window.js": [
+ "0c595eda73a2d8e5dd1b8749e40e120f651dffb4",
[
- "measure-memory/measure-memory.tentative.any.html",
- {
- "script_metadata": [
- [
- "script",
- "/common/get-host-info.sub.js"
- ],
- [
- "script",
- "./resources/common.js"
- ],
- [
- "timeout",
- "long"
- ]
- ],
- "timeout": "long"
- }
- ],
- [
- "measure-memory/measure-memory.tentative.any.worker.html",
+ "measure-memory/measure-memory.tentative.window.html",
{
"script_metadata": [
[
@@ -472302,6 +472464,15 @@
}
]
],
+ "pointerevent_pointercapture-not-lost-in-chorded-buttons.html": [
+ "02a6af0a4b89abf1c0c51844ace15b54e91966e9",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"pointerevent_pointercapture_in_frame.html": [
"a4107fd707a2ec4cb40d22fcad786db0b42471d6",
[
@@ -527956,6 +528127,13 @@
{}
]
],
+ "slots-imperative-slot-api.tentative.html": [
+ "5999ec82a384a4dcf67451e8e83f3e59e5138c0b",
+ [
+ null,
+ {}
+ ]
+ ],
"slots-outside-shadow-dom.html": [
"a6fa2b27f760d1daf6e7390c6e582108b035e57e",
[
@@ -528488,7 +528666,7 @@
]
],
"idlharness.https.any.js": [
- "e7f2cc8ff862d5b25a7ebf55eb6e2448f79688ad",
+ "da60edbee630db75d42242b051bda7ea94a12b5b",
[
"shape-detection/idlharness.https.any.html",
{
@@ -528504,10 +528682,6 @@
[
"script",
"/resources/idlharness.js"
- ],
- [
- "script",
- "/shape-detection/resources/shapedetection-helpers.js"
]
]
}
@@ -528527,10 +528701,6 @@
[
"script",
"/resources/idlharness.js"
- ],
- [
- "script",
- "/shape-detection/resources/shapedetection-helpers.js"
]
]
}
@@ -528550,10 +528720,6 @@
[
"script",
"/resources/idlharness.js"
- ],
- [
- "script",
- "/shape-detection/resources/shapedetection-helpers.js"
]
]
}
@@ -528573,10 +528739,6 @@
[
"script",
"/resources/idlharness.js"
- ],
- [
- "script",
- "/shape-detection/resources/shapedetection-helpers.js"
]
]
}
@@ -537727,203 +537889,196 @@
{}
]
],
- "DOMParser-parseFromString.tentative.html": [
+ "DOMParser-parseFromString.tentative.https.html": [
"2dfc37686bca15431c216a50d29f9f9eed2782e0",
[
null,
{}
]
],
- "DOMWindowTimers-setTimeout-setInterval.tentative.html": [
+ "DOMWindowTimers-setTimeout-setInterval.tentative.https.html": [
"5bd4003cfdd7c9e2f3be395483ab827ee5b12ef3",
[
null,
{}
]
],
- "Document-write.tentative.html": [
+ "Document-write.tentative.https.html": [
"87e9e724699efc3f0edde3afade4cf53ec2c9c3e",
[
null,
{}
]
],
- "Element-insertAdjacentHTML.tentative.html": [
+ "Element-insertAdjacentHTML.tentative.https.html": [
"6a9329b3fbf2fdfb4f00ce2acde7c38d6843d92f",
[
null,
{}
]
],
- "Element-insertAdjacentText.tentative.html": [
+ "Element-insertAdjacentText.tentative.https.html": [
"f6221362c17d6231e0921d866b1cdc642fea9d39",
[
null,
{}
]
],
- "Element-outerHTML.tentative.html": [
+ "Element-outerHTML.tentative.https.html": [
"c8daddfe9955196bf0b69410263cb7c01e473e5e",
[
null,
{}
]
],
- "Element-setAttribute.tentative.html": [
+ "Element-setAttribute.tentative.https.html": [
"cd6617915bdd16343ff2499e09991fba50b444bc",
[
null,
{}
]
],
- "Element-setAttributeNS.tentative.html": [
+ "Element-setAttributeNS.tentative.https.html": [
"67e8236febd77ed3b544126d8c5f9dd37cc513ab",
[
null,
{}
]
],
- "GlobalEventHandlers-onclick.tentative.html": [
+ "GlobalEventHandlers-onclick.tentative.https.html": [
"6cbf680fa26d2e3aeea6152ecb22d3b8e2e1c098",
[
null,
{}
]
],
- "HTMLElement-generic.tentative.html": [
+ "HTMLElement-generic.tentative.https.html": [
"3ec6cfa60da6d86e6be2e3ce68ae227441e6c5bb",
[
null,
{}
]
],
- "HTMLScriptElement-internal-slot.tentative.html": [
+ "HTMLScriptElement-internal-slot.tentative.https.html": [
"2970e2a7ec6abd7b632a3fe36a1018a43f59f3a4",
[
null,
{}
]
],
- "Node-multiple-arguments.tentative.html": [
+ "Node-multiple-arguments.tentative.https.html": [
"e3e4a2635e9820c762ca0c10ccd54e244e7bb499",
[
null,
{}
]
],
- "Range-createContextualFragment.tentative.html": [
+ "Range-createContextualFragment.tentative.https.html": [
"3a880a53778acb165fd5d957eeaca22685baf2b5",
[
null,
{}
]
],
- "TrustedType-AttributeNodes.tentative.html": [
+ "TrustedType-AttributeNodes.tentative.https.html": [
"77eef9cf39e42a842117e0910c1e398d2c22cb51",
[
null,
{}
]
],
- "TrustedTypePolicy-CSP-no-name.tentative.html": [
+ "TrustedTypePolicy-CSP-no-name.tentative.https.html": [
"b1c7f51ddb3a14603cf6f11ea437484f09366c74",
[
null,
{}
]
],
- "TrustedTypePolicy-CSP-wildcard.tentative.html": [
+ "TrustedTypePolicy-CSP-wildcard.tentative.https.html": [
"0e97a4a245a9ef01e1c65f159a9bd300a93b903f",
[
null,
{}
]
],
- "TrustedTypePolicy-createXXX.tentative.html": [
- "7e39042e1cb86c042367b5fc08e4e4e72c934165",
+ "TrustedTypePolicy-createXXX.tentative.https.html": [
+ "81ad053f5cd549c0175788929f270f1a5fdaff3b",
[
null,
{}
]
],
- "TrustedTypePolicy-getPolicyNames.tentative.html": [
- "d1ae9e45c0669a5aadce7c09d1e3c56360583708",
- [
- null,
- {}
- ]
- ],
- "TrustedTypePolicyFactory-constants.tentative.html": [
+ "TrustedTypePolicyFactory-constants.tentative.https.html": [
"0ba2eb62375a57c78f1caba4592e880b92483599",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
+ "TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html": [
"746d89fa3f8c3f21cb64d6fb348de15ef9b1f3e2",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html": [
+ "TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html": [
"15728b9888f3cb0c7d9f509c86949f8942a66a22",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html": [
+ "TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html": [
"f1b5f27e709bc1eb986f1a1160d0df0b5ec9a99d",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html": [
+ "TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html": [
"3a56546151e4e8fcef6bfecafa42cd50dd01ebcc",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html": [
- "f049484f1199a088db7e60c4b899a1150c70906b",
+ "TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html": [
+ "9fdafb2ccf04bf2808e3399d64c83a131c8648d2",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html": [
+ "TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html": [
"293444820216e17adb8c4f02a1615d7dfbfe2e6e",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-defaultPolicy.tentative.html": [
+ "TrustedTypePolicyFactory-defaultPolicy.tentative.https.html": [
"7ac09d8bb96c0ef163590db1552012651648b68b",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-getPropertyType.tentative.html": [
+ "TrustedTypePolicyFactory-getPropertyType.tentative.https.html": [
"0e5a0f51c80bf91c21b37bf02645c70b26ecf374",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-isXXX.tentative.html": [
- "c620451ba8f797228fd20ea130aeff66d639cd73",
+ "TrustedTypePolicyFactory-isXXX.tentative.https.html": [
+ "89d4a8b4efcda19f4937855f4f880792bf274ddd",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-metadata.tentative.html": [
+ "TrustedTypePolicyFactory-metadata.tentative.https.html": [
"50f877cda07f05e6f9fc916637bc8c3ecaa9da3b",
[
null,
@@ -537932,7 +538087,7 @@
}
]
],
- "Window-TrustedTypes.tentative.html": [
+ "Window-TrustedTypes.tentative.https.html": [
"718c763afafd12bfa498eb8827fb1b12b509c51d",
[
null,
@@ -537946,164 +538101,164 @@
{}
]
],
- "block-Node-multiple-arguments.tentative.html": [
+ "block-Node-multiple-arguments.tentative.https.html": [
"d66b8c8f25b64e214312bb9cd507a5901ebde53c",
[
null,
{}
]
],
- "block-string-assignment-to-DOMParser-parseFromString.tentative.html": [
+ "block-string-assignment-to-DOMParser-parseFromString.tentative.https.html": [
"bd038635df73560e23bf7ad4a50c93cebf827822",
[
null,
{}
]
],
- "block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html": [
+ "block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html": [
"d2764936675168b3d0ea052f3860bcd95c049024",
[
null,
{}
]
],
- "block-string-assignment-to-Document-write.tentative.html": [
+ "block-string-assignment-to-Document-write.tentative.https.html": [
"fa87d119f79f69a020e75c9749e04b4f73d6a7dd",
[
null,
{}
]
],
- "block-string-assignment-to-Element-insertAdjacentHTML.tentative.html": [
+ "block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html": [
"c91e4e56acd483fe935839c3d95c712b6a1d76bc",
[
null,
{}
]
],
- "block-string-assignment-to-Element-outerHTML.tentative.html": [
+ "block-string-assignment-to-Element-outerHTML.tentative.https.html": [
"397606bc056a8dd7729c5eb9ef66aeef59dda9db",
[
null,
{}
]
],
- "block-string-assignment-to-Element-setAttribute.tentative.html": [
+ "block-string-assignment-to-Element-setAttribute.tentative.https.html": [
"e6abf602fb08817bc3cdb9828ae4c490922389e5",
[
null,
{}
]
],
- "block-string-assignment-to-Element-setAttributeNS.tentative.html": [
+ "block-string-assignment-to-Element-setAttributeNS.tentative.https.html": [
"aa13d72ceb2f53d4fbf17ef80e6e66c4298f6ca3",
[
null,
{}
]
],
- "block-string-assignment-to-HTMLElement-generic.tentative.html": [
+ "block-string-assignment-to-HTMLElement-generic.tentative.https.html": [
"b5745199f41c49d7aab63822c3138548907544f0",
[
null,
{}
]
],
- "block-string-assignment-to-Range-createContextualFragment.tentative.html": [
+ "block-string-assignment-to-Range-createContextualFragment.tentative.https.html": [
"b38e4f3da5f8728eb3b67e63b250d63734a1b0aa",
[
null,
{}
]
],
- "block-text-node-insertion-into-script-element.tentative.html": [
+ "block-text-node-insertion-into-script-element.tentative.https.html": [
"bc29f19f4c4a75da008dff5836573409fbd65e23",
[
null,
{}
]
],
- "csp-block-eval.tentative.html": [
- "7902ca4040f582427e36941b6779e1bcdc51abf8",
+ "csp-block-eval.tentative.https.html": [
+ "e3911bf9e6a9340a35906d9ec70f71f6b8152951",
[
null,
{}
]
],
- "default-policy-report-only.tentative.html": [
+ "default-policy-report-only.tentative.https.html": [
"1cff751a80194bfaef6095617a89a423b76e70b2",
[
null,
{}
]
],
- "default-policy.tentative.html": [
+ "default-policy.tentative.https.html": [
"debde85cdac9d7bb1bcb19b56f7063fea0a53241",
[
null,
{}
]
],
- "empty-default-policy-report-only.tentative.html": [
+ "empty-default-policy-report-only.tentative.https.html": [
"1ba9c5ec18e5da33725aaa9499977930563c4ba9",
[
null,
{}
]
],
- "empty-default-policy.tentative.html": [
+ "empty-default-policy.tentative.https.html": [
"d31b48ecd5a86670b7c6ea3c4d993cd3f11946df",
[
null,
{}
]
],
- "eval-csp-no-tt.tentative.html": [
+ "eval-csp-no-tt.tentative.https.html": [
"e8ed57708ef158d36cff2c0d0883910c84bb75e8",
[
null,
{}
]
],
- "eval-csp-tt-default-policy.tentative.html": [
- "eaa74eaf4cd03e0aa3da97e26f700317945a87da",
+ "eval-csp-tt-default-policy.tentative.https.html": [
+ "106a024f2c1a8f4e2b2e99d2f15a81457179d807",
[
null,
{}
]
],
- "eval-csp-tt-no-default-policy.tentative.html": [
+ "eval-csp-tt-no-default-policy.tentative.https.html": [
"6d48ae48a01a1558e97efebc65ac9f42a893329a",
[
null,
{}
]
],
- "eval-no-csp-no-tt-default-policy.tentative.html": [
+ "eval-no-csp-no-tt-default-policy.tentative.https.html": [
"84c224eac28f6b26d4c0a15d7390185a576df716",
[
null,
{}
]
],
- "eval-no-csp-no-tt.tentative.html": [
+ "eval-no-csp-no-tt.tentative.https.html": [
"45086a1d6abdec58df8f3d5de5421bab0a2162a5",
[
null,
{}
]
],
- "eval-with-permissive-csp.tentative.html": [
+ "eval-with-permissive-csp.tentative.https.html": [
"5a35561438ab93c5066c4191bfcf3db0ddb83977",
[
null,
{}
]
],
- "idlharness.tentative.window.js": [
+ "idlharness.tentative.https.window.js": [
"5a854a12b78026a3318dad70ffa0d6a690e39f55",
[
- "trusted-types/idlharness.tentative.window.html",
+ "trusted-types/idlharness.tentative.https.window.html",
{
"script_metadata": [
[
@@ -538118,56 +538273,56 @@
}
]
],
- "no-require-trusted-types-for-report-only.tentative.html": [
+ "no-require-trusted-types-for-report-only.tentative.https.html": [
"56f6295221355dd0c0900f9932222c461c11eda8",
[
null,
{}
]
],
- "no-require-trusted-types-for.tentative.html": [
+ "no-require-trusted-types-for.tentative.https.html": [
"4e11b03617beb3716f51653843fd458c69274758",
[
null,
{}
]
],
- "require-trusted-types-for-report-only.tentative.html": [
+ "require-trusted-types-for-report-only.tentative.https.html": [
"25b4440ef4117010bb7da7c8f3ad87f01d3bf55f",
[
null,
{}
]
],
- "require-trusted-types-for.tentative.html": [
+ "require-trusted-types-for.tentative.https.html": [
"2a3820a89b8ad36c324139bf75fab8d72d7087a4",
[
null,
{}
]
],
- "trusted-types-createHTMLDocument.tentative.html": [
+ "trusted-types-createHTMLDocument.tentative.https.html": [
"440d2a88b9367daa42c6aeb6e747f58a1487ea6f",
[
null,
{}
]
],
- "trusted-types-duplicate-names-list-report-only.tentative.html": [
+ "trusted-types-duplicate-names-list-report-only.tentative.https.html": [
"46ca2edb6fb57b354b3a80f327dbfbe6760f21c6",
[
null,
{}
]
],
- "trusted-types-duplicate-names-list.tentative.html": [
+ "trusted-types-duplicate-names-list.tentative.https.html": [
"afb2f5f7c4b7f6ddfe8da004750017e6c7f01f9a",
[
null,
{}
]
],
- "trusted-types-duplicate-names.tentative.html": [
+ "trusted-types-duplicate-names.tentative.https.html": [
"decce5356467f9f4e6a8886c6b6eff7194bf2385",
[
null,
@@ -538175,7 +538330,7 @@
]
],
"trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html": [
- "40c1ccc69a1b186f2f8820091c68edade5dceedc",
+ "081f9becbd09e7875ca3786842b9d2495df7e9ba",
[
null,
{}
@@ -538189,13 +538344,13 @@
]
],
"trusted-types-eval-reporting.tentative.https.html": [
- "dec8a07cfc4bbdf60eda9819bbf6d16a587906a7",
+ "9621aaba9749a9522703f87bfd23466545f14a70",
[
null,
{}
]
],
- "trusted-types-navigation.tentative.html": [
+ "trusted-types-navigation.tentative.https.html": [
"657cbb74e0ecd5b30fbd73fb73a54eb6db62dfd7",
[
null,
@@ -538223,7 +538378,7 @@
{}
]
],
- "tt-block-eval.tentative.html": [
+ "tt-block-eval.tentative.https.html": [
"f9c1a5d0b12365506fb62ec43a23d9bca4f61cf1",
[
null,
@@ -544747,6 +544902,24 @@
}
]
],
+ "wakelock-onrelease.https.html": [
+ "3506c8ae82b91178468a7158b9fca6d099a498f6",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
+ "wakelock-request-denied.https.html": [
+ "8dbe523ed2c5653932a3f6f246d34ada1e4b113f",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"wakelock-screen-type-on-worker.https.worker.js": [
"0201294e2365abae3e13fcfe21debfd26628236a",
[
@@ -544794,10 +544967,12 @@
]
],
"wakelockpermissiondescriptor.https.html": [
- "b8c9ae9568b5c540c6745eea2686a519b66a3484",
+ "fd7a08a34ba7dfe203c42f4d4f78ae626fbea235",
[
null,
- {}
+ {
+ "testdriver": true
+ }
]
]
},
@@ -546605,7 +546780,7 @@
]
],
"contenttype.any.js": [
- "713fd70854042e4bf4a3467e86328a5f3d6a1f28",
+ "e9ca93a13fd4c21b21a93a6eb68bf61f094afc9a",
[
"wasm/webapi/contenttype.any.html",
{
@@ -547370,7 +547545,7 @@
]
],
"animate.html": [
- "ba10b172c2d4ec20b92a8283740a1045d52d4e54",
+ "bfe351250ffc28e9681cd2534024eefef33d2fc8",
[
null,
{}
@@ -547601,14 +547776,14 @@
]
],
"processing-a-keyframes-argument-001.html": [
- "87e60a2b1085125040a454763216ed335f249e6c",
+ "654d4db7c79bd7f94727a38e595ab8d78c2172f2",
[
null,
{}
]
],
"processing-a-keyframes-argument-002.html": [
- "4b0e15c9a2f73a81eb181691c8c096fecc55edae",
+ "8620f883f98f17a71adcbd7364c6ae942d830a45",
[
null,
{}
@@ -547629,7 +547804,7 @@
]
],
"target.html": [
- "eaef10fcb51050e8279393760cf75f6ea70397c8",
+ "6951682c4d8af29736e1ec655b65e4147aee9538",
[
null,
{}
@@ -549789,6 +549964,13 @@
null,
{}
]
+ ],
+ "suspended-context-messageport.https.html": [
+ "5f5b10a251f41fd29f694564a717587f8a5a0bad",
+ [
+ null,
+ {}
+ ]
]
},
"the-biquadfilternode-interface": {
@@ -550528,7 +550710,7 @@
]
],
"createcredential-badargs-authnrselection.https.html": [
- "5da0745734ffbfbcd0d1658e4f4c1914d9940611",
+ "9497a001f0f4726ac628178983e8ce2625b25e88",
[
null,
{
@@ -550548,7 +550730,7 @@
]
],
"createcredential-badargs-rp.https.html": [
- "cbd86b8f083e3d1d3b28842b9fa5759047cfac1e",
+ "fa4d2264fefe8be7da1de8ecefeeb60da27511e0",
[
null,
{
@@ -550568,7 +550750,7 @@
]
],
"createcredential-excludecredentials.https.html": [
- "3a5af481fcac6cd1f9f0e1e95caab7ba7a7facb4",
+ "2b1eec19b7b3a806150d13c77d8cfd1ea01973a6",
[
null,
{
@@ -550578,7 +550760,7 @@
]
],
"createcredential-extensions.https.html": [
- "036200dbbf949e7d0b274e44cc88e7aef1366cb8",
+ "46cab3051b4924a2cb9cf1d7a2df46046b7b2f23",
[
null,
{
@@ -550588,7 +550770,7 @@
]
],
"createcredential-passing.https.html": [
- "ab10c7f519a6868c28c233fa6f933da925fe3dc9",
+ "a94be363da20214ac84950b2bb701d428372dd10",
[
null,
{
@@ -550598,7 +550780,7 @@
]
],
"createcredential-pubkeycredparams.https.html": [
- "c845a90687576a2d33b7f459c293aa74a15c1fb9",
+ "d1df7952d6766744280b460a18d2e561a5527e5d",
[
null,
{
@@ -550618,7 +550800,7 @@
]
],
"getcredential-badargs-rpid.https.html": [
- "6e0ef5f201842f878d4cc2cd38a05e1923c992a8",
+ "3f9d3f2177fd9624da6bebfabedae7c57f3152a8",
[
null,
{
@@ -550648,7 +550830,7 @@
]
],
"getcredential-passing.https.html": [
- "dae05e0993a0358ec77c3c2c7981c39a7483c82e",
+ "c5237d2cda27e573ee591e95fdad92fae06e56a7",
[
null,
{
@@ -560713,7 +560895,7 @@
]
],
"dedicated-worker-import-failure.html": [
- "33eeea261893bc2d920bb348efff7a07f264729f",
+ "4c705e73251f41d8b7ff796cda5a5629968ec130",
[
null,
{}
@@ -560776,6 +560958,13 @@
{}
]
],
+ "dedicated-worker-parse-error-failure.html": [
+ "99eae49fc91296c55c51fb772bc4d46058ea0693",
+ [
+ null,
+ {}
+ ]
+ ],
"shared-worker-import-blob-url.any.js": [
"f56c1a5525f8c46e5d06f6549b3f355c4ccb4a0a",
[
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini
new file mode 100644
index 00000000000..3f8b74d83d8
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-009.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-009.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini
new file mode 100644
index 00000000000..631572628de
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-010.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-010.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini
new file mode 100644
index 00000000000..abefb55acb7
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-011.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-011.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini
new file mode 100644
index 00000000000..c3b40d2fc8b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-012.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-012.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini
new file mode 100644
index 00000000000..3dfd592bfe4
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-017.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-017.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini
new file mode 100644
index 00000000000..bd9ba55b271
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-018.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-018.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini
new file mode 100644
index 00000000000..4edea49bb0e
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-019.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-019.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini
new file mode 100644
index 00000000000..154559a9888
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-020.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-020.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini
new file mode 100644
index 00000000000..63e7c2b2de3
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-115.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-115.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini
new file mode 100644
index 00000000000..94f88d1d833
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-116.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-116.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini
new file mode 100644
index 00000000000..27623c1fece
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-121.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-121.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini
new file mode 100644
index 00000000000..4bd733b58a2
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-122.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-122.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini
new file mode 100644
index 00000000000..7b45323fd85
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-173.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-173.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini
new file mode 100644
index 00000000000..fb276fe328b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-174.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-174.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini
new file mode 100644
index 00000000000..15c21f32814
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-175.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-175.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini
new file mode 100644
index 00000000000..8d77cf2ce4b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-176.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-176.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini
new file mode 100644
index 00000000000..1049a594328
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-197.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-197.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini
new file mode 100644
index 00000000000..df17ada3ad0
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-198.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-198.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini
new file mode 100644
index 00000000000..9bddaf38f67
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-199.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-199.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini
new file mode 100644
index 00000000000..afd3ab3a046
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-200.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-200.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini
new file mode 100644
index 00000000000..26065b07cb0
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-201.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-201.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini
new file mode 100644
index 00000000000..360381f81b9
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-202.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-202.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini
new file mode 100644
index 00000000000..e79a80d710b
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-203.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-203.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini
new file mode 100644
index 00000000000..8c024774a94
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/tables/table-anonymous-objects-204.xht.ini
@@ -0,0 +1,3 @@
+[table-anonymous-objects-204.xht]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html.ini
index db1a30234d6..c66c3bf2773 100644
--- a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html.ini
+++ b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-both-parent-and-blended-with-3D-transform.html.ini
@@ -1,2 +1,3 @@
[mix-blend-mode-both-parent-and-blended-with-3D-transform.html]
- expected: FAIL
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini
new file mode 100644
index 00000000000..fb5b6fd0006
--- /dev/null
+++ b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-paragraph.html.ini
@@ -0,0 +1,2 @@
+[mix-blend-mode-paragraph.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-3D-transform.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-3D-transform.html.ini
deleted file mode 100644
index 3260cfddf6f..00000000000
--- a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-3D-transform.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[mix-blend-mode-parent-with-3D-transform.html]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini
new file mode 100644
index 00000000000..89ffd68a401
--- /dev/null
+++ b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-parent-with-text.html.ini
@@ -0,0 +1,3 @@
+[mix-blend-mode-parent-with-text.html]
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html.ini
deleted file mode 100644
index 9d6fd3d301d..00000000000
--- a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-with-transform-and-preserve-3D.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[mix-blend-mode-with-transform-and-preserve-3D.html]
- expected:
- if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/css-animations/AnimationEffect-updateTiming.tentative.html.ini b/tests/wpt/metadata/css/css-animations/AnimationEffect-updateTiming.tentative.html.ini
new file mode 100644
index 00000000000..963b484697e
--- /dev/null
+++ b/tests/wpt/metadata/css/css-animations/AnimationEffect-updateTiming.tentative.html.ini
@@ -0,0 +1,16 @@
+[AnimationEffect-updateTiming.tentative.html]
+ [AnimationEffect.updateTiming({ delay, fill }) causes changes to the animation-delay and animation-fill-mode to be ignored]
+ expected: FAIL
+
+ [AnimationEffect.updateTiming({ duration }) causes changes to the animation-duration to be ignored]
+ expected: FAIL
+
+ [AnimationEffect.updateTiming({ iterations, direction }) causes changes to the animation-iteration-count and animation-direction to be ignored]
+ expected: FAIL
+
+ [AnimationEffect properties that do not map to animation-* properties should not be changed when animation-* style is updated]
+ expected: FAIL
+
+ [AnimationEffect.updateTiming() does override to changes from animation-* properties if there is an error]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-animations/CSSAnimation-effect.tentative.html.ini b/tests/wpt/metadata/css/css-animations/CSSAnimation-effect.tentative.html.ini
index 92a8142c0e2..9b844b4399e 100644
--- a/tests/wpt/metadata/css/css-animations/CSSAnimation-effect.tentative.html.ini
+++ b/tests/wpt/metadata/css/css-animations/CSSAnimation-effect.tentative.html.ini
@@ -17,3 +17,6 @@
[Setting a null effect on a running animation fires an animationend event]
expected: FAIL
+ [Replacing the effect of a CSSAnimation causes subsequent changes to corresponding animation-* properties to be ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-animations/CSSAnimation-pausing.tentative.html.ini b/tests/wpt/metadata/css/css-animations/CSSAnimation-pausing.tentative.html.ini
index 2682df5da60..0662ba6816b 100644
--- a/tests/wpt/metadata/css/css-animations/CSSAnimation-pausing.tentative.html.ini
+++ b/tests/wpt/metadata/css/css-animations/CSSAnimation-pausing.tentative.html.ini
@@ -17,3 +17,21 @@
[play() is overridden by later setting "animation-play-state: paused"]
expected: FAIL
+ [reverse() overrides animation-play-state when it starts playing the animation]
+ expected: FAIL
+
+ [Setting the startTime to non-null does NOT override the animation-play-state if the animation is already running]
+ expected: FAIL
+
+ [reverse() does NOT override animation-play-state if the animation is already running]
+ expected: FAIL
+
+ [Setting the startTime to null overrides animation-play-state if the animation is already running]
+ expected: FAIL
+
+ [Setting the startTime to non-null overrides animation-play-state if the animation is paused]
+ expected: FAIL
+
+ [play() does NOT override the animation-play-state if there was an error]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-animations/KeyframeEffect-getKeyframes.tentative.html.ini b/tests/wpt/metadata/css/css-animations/KeyframeEffect-getKeyframes.tentative.html.ini
index 52c4783152b..08053516bf1 100644
--- a/tests/wpt/metadata/css/css-animations/KeyframeEffect-getKeyframes.tentative.html.ini
+++ b/tests/wpt/metadata/css/css-animations/KeyframeEffect-getKeyframes.tentative.html.ini
@@ -71,3 +71,6 @@
[KeyframeEffect.getKeyframes() returns expected values for animations with CSS variables as keyframe values in a shorthand property]
expected: FAIL
+ [KeyframeEffect.getKeyframes() reflects changes to @keyframes rules]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-animations/KeyframeEffect-setKeyframes.tentative.html.ini b/tests/wpt/metadata/css/css-animations/KeyframeEffect-setKeyframes.tentative.html.ini
new file mode 100644
index 00000000000..55cfd751ecb
--- /dev/null
+++ b/tests/wpt/metadata/css/css-animations/KeyframeEffect-setKeyframes.tentative.html.ini
@@ -0,0 +1,10 @@
+[KeyframeEffect-setKeyframes.tentative.html]
+ [KeyframeEffect.setKeyframes() causes subsequent changes to animation-timing-function to be ignored]
+ expected: FAIL
+
+ [KeyframeEffect.setKeyframes() causes subsequent changes to @keyframes rules to be ignored]
+ expected: FAIL
+
+ [KeyframeEffect.setKeyframes() should NOT cause subsequent changes to @keyframes rules to be ignored if it threw]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.ini b/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.ini
deleted file mode 100644
index d19959b9c59..00000000000
--- a/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[font-display-feature-policy-01.tentative.html]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.ini b/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.ini
deleted file mode 100644
index 64e43bcc512..00000000000
--- a/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[font-display-feature-policy-report-only.tentative.html]
- expected: ERROR
- [font-display-late-swap Report Format]
- expected: NOTRUN
-
diff --git a/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.ini b/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.ini
deleted file mode 100644
index 60bd3dd7e05..00000000000
--- a/tests/wpt/metadata/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[font-display-feature-policy-reporting.tentative.html]
- expected: ERROR
- [font-display-late-swap Report Format]
- expected: NOTRUN
-
diff --git a/tests/wpt/metadata/css/css-paint-api/geometry-border-image-001.https.html.ini b/tests/wpt/metadata/css/css-paint-api/geometry-border-image-001.https.html.ini
index 49cfd2463e1..458137c2908 100644
--- a/tests/wpt/metadata/css/css-paint-api/geometry-border-image-001.https.html.ini
+++ b/tests/wpt/metadata/css/css-paint-api/geometry-border-image-001.https.html.ini
@@ -1,3 +1,3 @@
[geometry-border-image-001.https.html]
- type: reftest
bug: https://github.com/servo/servo/issues/17861
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-paint-api/geometry-border-image-004.https.html.ini b/tests/wpt/metadata/css/css-paint-api/geometry-border-image-004.https.html.ini
index 6bb0af941cf..2e84bc8e22f 100644
--- a/tests/wpt/metadata/css/css-paint-api/geometry-border-image-004.https.html.ini
+++ b/tests/wpt/metadata/css/css-paint-api/geometry-border-image-004.https.html.ini
@@ -1,3 +1,3 @@
[geometry-border-image-004.https.html]
- type: reftest
bug: https://github.com/servo/servo/issues/17860
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini
index 29f0f3467db..7e7a446aca0 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-input-007.html.ini
@@ -1,5 +1,3 @@
[transform-input-007.html]
- type: reftest
bug: https://github.com/servo/servo/issues/21092
- expected:
- if os == "linux": FAIL
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini
index 4632b24282b..51a18a634fd 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-input-009.html.ini
@@ -1,5 +1,3 @@
[transform-input-009.html]
- type: reftest
bug: https://github.com/servo/servo/issues/21092
- expected:
- if os == "linux": FAIL
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini
index e2f9cca83b1..3f198420c64 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-input-010.html.ini
@@ -1,5 +1,3 @@
[transform-input-010.html]
- type: reftest
bug: https://github.com/servo/servo/issues/21092
- expected:
- if os == "linux": FAIL
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini b/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini
index b8b83d8691e..ed9389b2c24 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-input-012.html.ini
@@ -1,4 +1,4 @@
[transform-input-012.html]
- type: reftest
bug: https://github.com/servo/servo/issues/21092
- expected: FAIL
+ expected:
+ if os == "linux": FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
index 4a1e8110f6f..f8e7e539aae 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
@@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
+ [Hit test within unscaled box]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transitions/CSSTransition-effect.tentative.html.ini b/tests/wpt/metadata/css/css-transitions/CSSTransition-effect.tentative.html.ini
index 37478df2204..2f8e485949f 100644
--- a/tests/wpt/metadata/css/css-transitions/CSSTransition-effect.tentative.html.ini
+++ b/tests/wpt/metadata/css/css-transitions/CSSTransition-effect.tentative.html.ini
@@ -23,3 +23,9 @@
[After setting a transition's effect to null, it should be possible to interrupt that transition]
expected: FAIL
+ [A transition with a replaced effect still exhibits the regular transition reversing behavior]
+ expected: FAIL
+
+ [A transition with no effect still returns the original transitionProperty]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html.ini b/tests/wpt/metadata/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html.ini
new file mode 100644
index 00000000000..d024e2da5f6
--- /dev/null
+++ b/tests/wpt/metadata/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html.ini
@@ -0,0 +1,16 @@
+[KeyframeEffect-setKeyframes.tentative.html]
+ [A transition with replaced keyframes still returns the original transitionProperty]
+ expected: FAIL
+
+ [Keyframes set using setKeyframes() are reflected in computed style for a running transition]
+ expected: FAIL
+
+ [A transition with no keyframes still exhibits the regular transition reversing behavior]
+ expected: FAIL
+
+ [A transition with replaced keyframes still exhibits the regular transition reversing behavior]
+ expected: FAIL
+
+ [A transition with no keyframes still returns the original transitionProperty]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-ui/outline-with-padding-001.html.ini b/tests/wpt/metadata/css/css-ui/outline-with-padding-001.html.ini
deleted file mode 100644
index b7d0985d37a..00000000000
--- a/tests/wpt/metadata/css/css-ui/outline-with-padding-001.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[outline-with-padding-001.html]
- expected: FAIL
diff --git a/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini
index 3a9e368ccdb..40c50190740 100644
--- a/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-angle-computed.html.ini
@@ -191,3 +191,99 @@
[Property transform value 'rotate(calc(max(90deg, 1.56rad) * 2)']
expected: FAIL
+ [max(1turn) should be used-value-equivalent to 1turn]
+ expected: FAIL
+
+ [min(1deg, 2deg) should be used-value-equivalent to 1deg]
+ expected: FAIL
+
+ [min(1turn) should be used-value-equivalent to 1turn]
+ expected: FAIL
+
+ [max(1grad) should be used-value-equivalent to 1grad]
+ expected: FAIL
+
+ [calc(min(90deg, 1.58rad) / 2 should be used-value-equivalent to 45deg]
+ expected: FAIL
+
+ [min(1rad, 2rad) should be used-value-equivalent to 1rad]
+ expected: FAIL
+
+ [calc(min(90deg, 1.58rad) - 0.125turn) should be used-value-equivalent to 45deg]
+ expected: FAIL
+
+ [max(1deg) should be used-value-equivalent to 1deg]
+ expected: FAIL
+
+ [calc(min(90deg, 1.58rad) - max(0.25turn, 99grad)) should be used-value-equivalent to 0deg]
+ expected: FAIL
+
+ [calc(max(90deg, 1.56rad) / 2 should be used-value-equivalent to 45deg]
+ expected: FAIL
+
+ [calc(max(90deg, 1.56rad) - 0.125turn) should be used-value-equivalent to 45deg]
+ expected: FAIL
+
+ [max(1rad) should be used-value-equivalent to 1rad]
+ expected: FAIL
+
+ [min(270deg, max(0.25turn, 3.14rad)) should be used-value-equivalent to 3.14rad]
+ expected: FAIL
+
+ [min(1grad, 2grad) should be used-value-equivalent to 1grad]
+ expected: FAIL
+
+ [min(1deg) should be used-value-equivalent to 1deg]
+ expected: FAIL
+
+ [min(90deg, 0.26turn) should be used-value-equivalent to 90deg]
+ expected: FAIL
+
+ [calc(min(90deg, 1.58rad) + 0.25turn) should be used-value-equivalent to 180deg]
+ expected: FAIL
+
+ [calc(max(90deg, 1.56rad) * 2 should be used-value-equivalent to 180deg]
+ expected: FAIL
+
+ [calc(max(90deg, 1.56rad) + 0.25turn) should be used-value-equivalent to 180deg]
+ expected: FAIL
+
+ [max(1grad, 2grad) should be used-value-equivalent to 2grad]
+ expected: FAIL
+
+ [max(91deg, 0.25turn) should be used-value-equivalent to 91deg]
+ expected: FAIL
+
+ [calc(min(90deg, 1.58rad) * 2 should be used-value-equivalent to 180deg]
+ expected: FAIL
+
+ [min(1.57rad, 95deg) should be used-value-equivalent to 1.57rad]
+ expected: FAIL
+
+ [min(1turn, 2turn) should be used-value-equivalent to 1turn]
+ expected: FAIL
+
+ [max(1.58rad, 90deg) should be used-value-equivalent to 1.58rad]
+ expected: FAIL
+
+ [calc(min(90deg, 1.58rad) + max(0.25turn, 99grad)) should be used-value-equivalent to 180deg]
+ expected: FAIL
+
+ [max(1turn, 2turn) should be used-value-equivalent to 2turn]
+ expected: FAIL
+
+ [max(1rad, 2rad) should be used-value-equivalent to 2rad]
+ expected: FAIL
+
+ [max(1deg, 2deg) should be used-value-equivalent to 2deg]
+ expected: FAIL
+
+ [min(1rad) should be used-value-equivalent to 1rad]
+ expected: FAIL
+
+ [max(0.25turn, min(270deg, 3.14rad)) should be used-value-equivalent to 3.14rad]
+ expected: FAIL
+
+ [min(1grad) should be used-value-equivalent to 1grad]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-angle-serialize.html.ini b/tests/wpt/metadata/css/css-values/minmax-angle-serialize.html.ini
index 087d8045750..1b0e7197cca 100644
--- a/tests/wpt/metadata/css/css-values/minmax-angle-serialize.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-angle-serialize.html.ini
@@ -65,3 +65,117 @@
[e.style['transform'\] = "rotate(calc(min(1deg) + min(2deg)))" should set the property value]
expected: FAIL
+ ['rotate(max(90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(0.25turn, 1.57rad, 90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(93deg, 92deg, 90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(90deg, 1.57rad, 0.25turn))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(calc(50grad + min(45deg)))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(90deg, 1.57rad, 0.25turn))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(min(90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(max(90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(90deg, 1.58rad, 0.25turn))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(81deg, 82deg, 90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(90deg, 92deg, 93deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(max(.25turn))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(50grad + max(45deg)))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(.25turn))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(max(100grad))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(min(30deg) + max(60deg)))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(50grad + min(45deg)))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(100grad))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(100grad))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(min(0.25turn, 1.58rad, 90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(calc(min(30deg) + max(60deg)))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(83deg, 82deg, 90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(min(90deg, 92deg, 93deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(0.25turn, 1.57rad, 90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(calc(min(45deg) + 50grad))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(83deg, 82deg, 90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(max(.25turn))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(min(90deg, 1.58rad, 0.25turn))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(93deg, 92deg, 90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(max(45deg) + 50grad))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(min(45deg) + 50grad))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(max(45deg) + 50grad))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(min(0.25turn, 1.58rad, 90deg))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(calc(50grad + max(45deg)))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(min(100grad))' as a computed value should serialize as 'rotate(90deg)'.]
+ expected: FAIL
+
+ ['rotate(min(.25turn))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
+ ['rotate(max(81deg, 82deg, 90deg))' as a specified value should serialize as 'rotate(calc(90deg))'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini
index 8c5176025bb..287e488fd81 100644
--- a/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-integer-computed.html.ini
@@ -59,3 +59,33 @@
[Property z-index value 'min(0.6)']
expected: FAIL
+ [min(1.1, max(0.4, 0.6)) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [min(0.4) should be used-value-equivalent to 0]
+ expected: FAIL
+
+ [max(1) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [max(0.6) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [min(0.6) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [min(1) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [calc(max(0.3, 0.6) / 2) should be used-value-equivalent to 0]
+ expected: FAIL
+
+ [max(0.4) should be used-value-equivalent to 0]
+ expected: FAIL
+
+ [calc(min(0.3, 0.6) * 2) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [max(0.3, min(1.1, 0.4)) should be used-value-equivalent to 0]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini
index 0a95b909192..e8eb799c3ea 100644
--- a/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-length-computed.html.ini
@@ -479,3 +479,240 @@
[Property letter-spacing value 'calc(max(1em, 19px) - 10px)']
expected: FAIL
+ [max(1pc, 2pc) should be used-value-equivalent to 2pc]
+ expected: FAIL
+
+ [min(1Q) should be used-value-equivalent to 1Q]
+ expected: FAIL
+
+ [max(1vmax, 2vmax) should be used-value-equivalent to 2vmax]
+ expected: FAIL
+
+ [max(1px) should be used-value-equivalent to 1px]
+ expected: FAIL
+
+ [max(15px, min(25px, 1em)) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [max(1vmax) should be used-value-equivalent to 1vmax]
+ expected: FAIL
+
+ [calc(min(1em, 21px) + max(0.9em, 20px)) should be used-value-equivalent to 40px]
+ expected: FAIL
+
+ [min(1pt) should be used-value-equivalent to 1pt]
+ expected: FAIL
+
+ [min(95px, 1in) should be used-value-equivalent to 95px]
+ expected: FAIL
+
+ [max(1px, 2px) should be used-value-equivalent to 2px]
+ expected: FAIL
+
+ [min(1em, 2em) should be used-value-equivalent to 1em]
+ expected: FAIL
+
+ [min(1mm) should be used-value-equivalent to 1mm]
+ expected: FAIL
+
+ [min(1Q, 2Q) should be used-value-equivalent to 1Q]
+ expected: FAIL
+
+ [min(1pc, 2pc) should be used-value-equivalent to 1pc]
+ expected: FAIL
+
+ [max(1em) should be used-value-equivalent to 1em]
+ expected: FAIL
+
+ [max(1cm, 2cm) should be used-value-equivalent to 2cm]
+ expected: FAIL
+
+ [max(25px, 1em) should be used-value-equivalent to 25px]
+ expected: FAIL
+
+ [min(1cm) should be used-value-equivalent to 1cm]
+ expected: FAIL
+
+ [max(1ch) should be used-value-equivalent to 1ch]
+ expected: FAIL
+
+ [min(1vh, 2vh) should be used-value-equivalent to 1vh]
+ expected: FAIL
+
+ [max(1rem, 2rem) should be used-value-equivalent to 2rem]
+ expected: FAIL
+
+ [calc(max(1em, 19px) / 2 should be used-value-equivalent to 10px]
+ expected: FAIL
+
+ [max(15px, 2em) should be used-value-equivalent to 20px; fontSize=10px]
+ expected: FAIL
+
+ [min(1ch) should be used-value-equivalent to 1ch]
+ expected: FAIL
+
+ [calc(min(1em, 21px) / 2 should be used-value-equivalent to 10px]
+ expected: FAIL
+
+ [min(25px, 1em) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [max(1ex) should be used-value-equivalent to 1ex]
+ expected: FAIL
+
+ [max(1ch, 2ch) should be used-value-equivalent to 2ch]
+ expected: FAIL
+
+ [calc(min(1em, 21px) * 2 should be used-value-equivalent to 40px]
+ expected: FAIL
+
+ [max(1pt) should be used-value-equivalent to 1pt]
+ expected: FAIL
+
+ [max(1Q) should be used-value-equivalent to 1Q]
+ expected: FAIL
+
+ [min(1in) should be used-value-equivalent to 1in]
+ expected: FAIL
+
+ [min(1vw) should be used-value-equivalent to 1vw]
+ expected: FAIL
+
+ [max(1mm) should be used-value-equivalent to 1mm]
+ expected: FAIL
+
+ [min(1rem) should be used-value-equivalent to 1rem]
+ expected: FAIL
+
+ [min(1rem, 2rem) should be used-value-equivalent to 1rem]
+ expected: FAIL
+
+ [min(1vmin, 2vmin) should be used-value-equivalent to 1vmin]
+ expected: FAIL
+
+ [max(95px, 1in) should be used-value-equivalent to 1in]
+ expected: FAIL
+
+ [min(1ex, 2ex) should be used-value-equivalent to 1ex]
+ expected: FAIL
+
+ [max(1vh) should be used-value-equivalent to 1vh]
+ expected: FAIL
+
+ [min(1em) should be used-value-equivalent to 1em]
+ expected: FAIL
+
+ [max(1rem) should be used-value-equivalent to 1rem]
+ expected: FAIL
+
+ [calc(min(1em, 21px) + 10px) should be used-value-equivalent to 30px]
+ expected: FAIL
+
+ [max(1vh, 2vh) should be used-value-equivalent to 2vh]
+ expected: FAIL
+
+ [min(1vmin) should be used-value-equivalent to 1vmin]
+ expected: FAIL
+
+ [min(1px, 2px) should be used-value-equivalent to 1px]
+ expected: FAIL
+
+ [calc(max(1em, 19px) - 10px) should be used-value-equivalent to 10px]
+ expected: FAIL
+
+ [min(1ch, 2ch) should be used-value-equivalent to 1ch]
+ expected: FAIL
+
+ [max(1em, 2em) should be used-value-equivalent to 2em]
+ expected: FAIL
+
+ [calc(max(1em, 19px) * 2 should be used-value-equivalent to 40px]
+ expected: FAIL
+
+ [max(1pc) should be used-value-equivalent to 1pc]
+ expected: FAIL
+
+ [min(25px, max(15px, 1em)) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [min(1vmax) should be used-value-equivalent to 1vmax]
+ expected: FAIL
+
+ [min(1cm, 2cm) should be used-value-equivalent to 1cm]
+ expected: FAIL
+
+ [max(15px, 1em) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [min(1pc) should be used-value-equivalent to 1pc]
+ expected: FAIL
+
+ [max(1Q, 2Q) should be used-value-equivalent to 2Q]
+ expected: FAIL
+
+ [max(1vw) should be used-value-equivalent to 1vw]
+ expected: FAIL
+
+ [min(1vh) should be used-value-equivalent to 1vh]
+ expected: FAIL
+
+ [max(1mm, 2mm) should be used-value-equivalent to 2mm]
+ expected: FAIL
+
+ [max(1pt, 2pt) should be used-value-equivalent to 2pt]
+ expected: FAIL
+
+ [max(1ex, 2ex) should be used-value-equivalent to 2ex]
+ expected: FAIL
+
+ [min(1vw, 2vw) should be used-value-equivalent to 1vw]
+ expected: FAIL
+
+ [calc(min(1em, 21px) - 10px) should be used-value-equivalent to 10px]
+ expected: FAIL
+
+ [max(1in, 2in) should be used-value-equivalent to 2in]
+ expected: FAIL
+
+ [min(1in, 2in) should be used-value-equivalent to 1in]
+ expected: FAIL
+
+ [max(1vmin, 2vmin) should be used-value-equivalent to 2vmin]
+ expected: FAIL
+
+ [min(1vmax, 2vmax) should be used-value-equivalent to 1vmax]
+ expected: FAIL
+
+ [calc(max(1em, 19px) + 10px) should be used-value-equivalent to 30px]
+ expected: FAIL
+
+ [max(1vw, 2vw) should be used-value-equivalent to 2vw]
+ expected: FAIL
+
+ [min(1px) should be used-value-equivalent to 1px]
+ expected: FAIL
+
+ [min(15px, 1em) should be used-value-equivalent to 10px; fontSize=10px]
+ expected: FAIL
+
+ [max(1vmin) should be used-value-equivalent to 1vmin]
+ expected: FAIL
+
+ [min(1ex) should be used-value-equivalent to 1ex]
+ expected: FAIL
+
+ [min(1pt, 2pt) should be used-value-equivalent to 1pt]
+ expected: FAIL
+
+ [min(1mm, 2mm) should be used-value-equivalent to 1mm]
+ expected: FAIL
+
+ [min(15px, 1em) should be used-value-equivalent to 15px]
+ expected: FAIL
+
+ [max(1cm) should be used-value-equivalent to 1cm]
+ expected: FAIL
+
+ [max(1in) should be used-value-equivalent to 1in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini
index 5534ae5c023..6db0ec8b407 100644
--- a/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-length-percent-computed.html.ini
@@ -299,3 +299,153 @@
[Property margin-left value 'calc(max(1em, 15%) / 2)']
expected: FAIL
+ [max(20px, 10%) should be used-value-equivalent to 20px; width=100px]
+ expected: FAIL
+
+ [max(1mm + 1%) should be used-value-equivalent to calc(1mm + 1%)]
+ expected: FAIL
+
+ [min(1pt + 1%) should be used-value-equivalent to calc(1pt + 1%)]
+ expected: FAIL
+
+ [max(1pt + 1%) should be used-value-equivalent to calc(1pt + 1%)]
+ expected: FAIL
+
+ [min(1mm + 1%) should be used-value-equivalent to calc(1mm + 1%)]
+ expected: FAIL
+
+ [max(1ch + 1%) should be used-value-equivalent to calc(1ch + 1%)]
+ expected: FAIL
+
+ [max(1ex + 1%) should be used-value-equivalent to calc(1ex + 1%)]
+ expected: FAIL
+
+ [calc(max(1em, 15%) * 2) should be used-value-equivalent to 120px]
+ expected: FAIL
+
+ [max(2em + 10%, 1em + 20%) should be used-value-equivalent to 100px]
+ expected: FAIL
+
+ [min(1em + 1%) should be used-value-equivalent to calc(1em + 1%)]
+ expected: FAIL
+
+ [max(1cm + 1%) should be used-value-equivalent to calc(1cm + 1%)]
+ expected: FAIL
+
+ [min(1em, 10%) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [min(1px + 1%) should be used-value-equivalent to calc(1px + 1%)]
+ expected: FAIL
+
+ [max(1px + 1%) should be used-value-equivalent to calc(1px + 1%)]
+ expected: FAIL
+
+ [min(1Q + 1%) should be used-value-equivalent to calc(1Q + 1%)]
+ expected: FAIL
+
+ [calc(min(1.5em, 10%) * 2) should be used-value-equivalent to 60px]
+ expected: FAIL
+
+ [max(1vmax + 1%) should be used-value-equivalent to calc(1vmax + 1%)]
+ expected: FAIL
+
+ [calc(min(1.5em, 10%) - 10px) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [max(1em, 10%) should be used-value-equivalent to 20px; width=100px]
+ expected: FAIL
+
+ [max(1rem + 1%) should be used-value-equivalent to calc(1rem + 1%)]
+ expected: FAIL
+
+ [min(30px + 10%, 60px + 5%) should be used-value-equivalent to 70px]
+ expected: FAIL
+
+ [min(1ex + 1%) should be used-value-equivalent to calc(1ex + 1%)]
+ expected: FAIL
+
+ [min(1rem + 1%) should be used-value-equivalent to calc(1rem + 1%)]
+ expected: FAIL
+
+ [calc(min(1.5em, 10%) / 2) should be used-value-equivalent to 15px]
+ expected: FAIL
+
+ [min(1vmin + 1%) should be used-value-equivalent to calc(1vmin + 1%)]
+ expected: FAIL
+
+ [max(1em, 10%) should be used-value-equivalent to 40px]
+ expected: FAIL
+
+ [min(1pc + 1%) should be used-value-equivalent to calc(1pc + 1%)]
+ expected: FAIL
+
+ [calc(max(1em, 15%) - 10px) should be used-value-equivalent to 50px]
+ expected: FAIL
+
+ [calc(max(1em, 15%) + 10px) should be used-value-equivalent to 70px]
+ expected: FAIL
+
+ [min(1cm + 1%) should be used-value-equivalent to calc(1cm + 1%)]
+ expected: FAIL
+
+ [max(20px, 10%) should be used-value-equivalent to 40px]
+ expected: FAIL
+
+ [min(20px, 10%) should be used-value-equivalent to 10px; width=100px]
+ expected: FAIL
+
+ [min(1vw + 1%) should be used-value-equivalent to calc(1vw + 1%)]
+ expected: FAIL
+
+ [max(1Q + 1%) should be used-value-equivalent to calc(1Q + 1%)]
+ expected: FAIL
+
+ [max(1vw + 1%) should be used-value-equivalent to calc(1vw + 1%)]
+ expected: FAIL
+
+ [min(1vmax + 1%) should be used-value-equivalent to calc(1vmax + 1%)]
+ expected: FAIL
+
+ [max(1pc + 1%) should be used-value-equivalent to calc(1pc + 1%)]
+ expected: FAIL
+
+ [min(1in + 1%) should be used-value-equivalent to calc(1in + 1%)]
+ expected: FAIL
+
+ [calc(min(1.5em, 10%) + 10px) should be used-value-equivalent to 40px]
+ expected: FAIL
+
+ [min(20px, 10%) should be used-value-equivalent to 20px]
+ expected: FAIL
+
+ [min(1vh + 1%) should be used-value-equivalent to calc(1vh + 1%)]
+ expected: FAIL
+
+ [max(1em + 1%) should be used-value-equivalent to calc(1em + 1%)]
+ expected: FAIL
+
+ [calc(min(1.5em, 10%) - max(1em, 15%)) should be used-value-equivalent to -30px]
+ expected: FAIL
+
+ [calc(max(1em, 15%) / 2) should be used-value-equivalent to 30px]
+ expected: FAIL
+
+ [max(1vmin + 1%) should be used-value-equivalent to calc(1vmin + 1%)]
+ expected: FAIL
+
+ [min(1ch + 1%) should be used-value-equivalent to calc(1ch + 1%)]
+ expected: FAIL
+
+ [max(1vh + 1%) should be used-value-equivalent to calc(1vh + 1%)]
+ expected: FAIL
+
+ [min(1em, 10%) should be used-value-equivalent to 10px; width=100px]
+ expected: FAIL
+
+ [calc(min(1.5em, 10%) + max(1em, 15%)) should be used-value-equivalent to 90px]
+ expected: FAIL
+
+ [max(1in + 1%) should be used-value-equivalent to calc(1in + 1%)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-length-percent-serialize.html.ini b/tests/wpt/metadata/css/css-values/minmax-length-percent-serialize.html.ini
index 4a77b1abc4c..5f1cf65fc6c 100644
--- a/tests/wpt/metadata/css/css-values/minmax-length-percent-serialize.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-length-percent-serialize.html.ini
@@ -179,3 +179,156 @@
[e.style['margin-left'\] = "calc(min(1em) + 10%)" should set the property value]
expected: FAIL
+ ['calc(1em + max(10% + 20px) + 5% + min(1em + 10%) + 10px)' as a used value should serialize as '87px'.]
+ expected: FAIL
+
+ ['max(1px)' as a used value should serialize as '1px'.]
+ expected: FAIL
+
+ ['max(10%, 1em)' as a computed value should serialize as 'max(10%, 16px)'.]
+ expected: FAIL
+
+ ['min(10%, 20px)' as a specified value should serialize as 'min(10%, 20px)'.]
+ expected: FAIL
+
+ ['min(10% + 30px, 5em + 5%)' as a specified value should serialize as 'min(10% + 30px, 5% + 5em)'.]
+ expected: FAIL
+
+ ['min(1px)' as a computed value should serialize as '1px'.]
+ expected: FAIL
+
+ ['min(10% + 30px, 5em + 5%)' as a used value should serialize as '40px'.]
+ expected: FAIL
+
+ ['max(10% + 30px, 5em + 5%)' as a computed value should serialize as 'max(10% + 30px, 5% + 80px)'.]
+ expected: FAIL
+
+ ['max(10%, 20px)' as a used value should serialize as '20px'.]
+ expected: FAIL
+
+ ['min(10%, 1em)' as a computed value should serialize as 'min(10%, 16px)'.]
+ expected: FAIL
+
+ ['min(1px + 1%)' as a used value should serialize as '2px'.]
+ expected: FAIL
+
+ ['min(1% + 1px)' as a computed value should serialize as 'min(1% + 1px)'.]
+ expected: FAIL
+
+ ['max(10% + 30px, 5em + 5%)' as a used value should serialize as '85px'.]
+ expected: FAIL
+
+ ['max(10% + 30px, 5em + 5%)' as a specified value should serialize as 'max(10% + 30px, 5% + 5em)'.]
+ expected: FAIL
+
+ ['min(10%, 1em)' as a used value should serialize as '10px'.]
+ expected: FAIL
+
+ ['min(1em, 10%)' as a used value should serialize as '10px'.]
+ expected: FAIL
+
+ ['max(20px, 10%)' as a used value should serialize as '20px'.]
+ expected: FAIL
+
+ ['max(10%, 1em)' as a used value should serialize as '16px'.]
+ expected: FAIL
+
+ ['min(20px, 10%)' as a specified value should serialize as 'min(20px, 10%)'.]
+ expected: FAIL
+
+ ['max(1em, 10%)' as a specified value should serialize as 'max(1em, 10%)'.]
+ expected: FAIL
+
+ ['min(10%, 1em)' as a specified value should serialize as 'min(10%, 1em)'.]
+ expected: FAIL
+
+ ['min(1px)' as a used value should serialize as '1px'.]
+ expected: FAIL
+
+ ['min(1px)' as a specified value should serialize as 'calc(1px)'.]
+ expected: FAIL
+
+ ['min(20px, 10%)' as a used value should serialize as '10px'.]
+ expected: FAIL
+
+ ['min(1% + 1px)' as a used value should serialize as '2px'.]
+ expected: FAIL
+
+ ['calc(min(10% + 1px) + max(1em + 10%) + min(10% + 20px))' as a computed value should serialize as 'calc(min(10% + 1px) + max(10% + 16px) + min(10% + 20px))'.]
+ expected: FAIL
+
+ ['max(1px)' as a computed value should serialize as '1px'.]
+ expected: FAIL
+
+ ['min(20px, 10%)' as a computed value should serialize as 'min(20px, 10%)'.]
+ expected: FAIL
+
+ ['max(1px)' as a specified value should serialize as 'calc(1px)'.]
+ expected: FAIL
+
+ ['max(10%, 1em)' as a specified value should serialize as 'max(10%, 1em)'.]
+ expected: FAIL
+
+ ['min(10%, 20px)' as a used value should serialize as '10px'.]
+ expected: FAIL
+
+ ['max(20px, 10%)' as a specified value should serialize as 'max(20px, 10%)'.]
+ expected: FAIL
+
+ ['max(10%, 20px)' as a computed value should serialize as 'max(10%, 20px)'.]
+ expected: FAIL
+
+ ['min(10% + 30px, 5em + 5%)' as a computed value should serialize as 'min(10% + 30px, 5% + 80px)'.]
+ expected: FAIL
+
+ ['min(10%, 20px)' as a computed value should serialize as 'min(10%, 20px)'.]
+ expected: FAIL
+
+ ['max(1px + 1%)' as a specified value should serialize as 'max(1% + 1px)'.]
+ expected: FAIL
+
+ ['calc(min(10% + 1px) + max(1em + 10%) + min(10% + 20px))' as a used value should serialize as '67px'.]
+ expected: FAIL
+
+ ['calc(1em + max(10% + 20px) + 5% + min(1em + 10%) + 10px)' as a computed value should serialize as 'calc(5% + 26px + max(10% + 20px) + min(10% + 16px))'.]
+ expected: FAIL
+
+ ['max(1px + 1%)' as a computed value should serialize as 'max(1% + 1px)'.]
+ expected: FAIL
+
+ ['min(1em, 10%)' as a specified value should serialize as 'min(1em, 10%)'.]
+ expected: FAIL
+
+ ['min(1% + 1px)' as a specified value should serialize as 'min(1% + 1px)'.]
+ expected: FAIL
+
+ ['calc(min(10% + 1px) + max(1em + 10%) + min(10% + 20px))' as a specified value should serialize as 'calc(min(10% + 1px) + max(10% + 1em) + min(10% + 20px))'.]
+ expected: FAIL
+
+ ['max(10%, 20px)' as a specified value should serialize as 'max(10%, 20px)'.]
+ expected: FAIL
+
+ ['min(1px + 1%)' as a specified value should serialize as 'min(1% + 1px)'.]
+ expected: FAIL
+
+ ['max(1em, 10%)' as a computed value should serialize as 'max(16px, 10%)'.]
+ expected: FAIL
+
+ ['min(1px + 1%)' as a computed value should serialize as 'min(1% + 1px)'.]
+ expected: FAIL
+
+ ['max(1em, 10%)' as a used value should serialize as '16px'.]
+ expected: FAIL
+
+ ['max(20px, 10%)' as a computed value should serialize as 'max(20px, 10%)'.]
+ expected: FAIL
+
+ ['min(1em, 10%)' as a computed value should serialize as 'min(16px, 10%)'.]
+ expected: FAIL
+
+ ['calc(1em + max(10% + 20px) + 5% + min(1em + 10%) + 10px)' as a specified value should serialize as 'calc(5% + 1em + 10px + max(10% + 20px) + min(10% + 1em))'.]
+ expected: FAIL
+
+ ['max(1px + 1%)' as a used value should serialize as '2px'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-length-serialize.html.ini b/tests/wpt/metadata/css/css-values/minmax-length-serialize.html.ini
index 2bbf3298114..776b7d465e4 100644
--- a/tests/wpt/metadata/css/css-values/minmax-length-serialize.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-length-serialize.html.ini
@@ -131,3 +131,69 @@
[e.style['letter-spacing'\] = "calc(10px + min(1em))" should set the property value]
expected: FAIL
+ ['min(50px, 1in + 1px)' as a specified value should serialize as 'calc(50px)'.]
+ expected: FAIL
+
+ ['min(1px)' as a computed value should serialize as '1px'.]
+ expected: FAIL
+
+ ['min(50px, 1in + 1px)' as a computed value should serialize as '50px'.]
+ expected: FAIL
+
+ ['calc(1px + min(1in, 100px))' as a computed value should serialize as '97px'.]
+ expected: FAIL
+
+ ['min(1in)' as a specified value should serialize as 'calc(96px)'.]
+ expected: FAIL
+
+ ['calc(1px + max(1in, 100px))' as a computed value should serialize as '101px'.]
+ expected: FAIL
+
+ ['calc(min(1px, 1in) + max(100px + 1em, 10px + 1in) + 1px)' as a computed value should serialize as '118px'.]
+ expected: FAIL
+
+ ['min(1px, 1em)' as a computed value should serialize as '1px'.]
+ expected: FAIL
+
+ ['max(50px, 1in + 1px)' as a computed value should serialize as '97px'.]
+ expected: FAIL
+
+ ['min(1px)' as a specified value should serialize as 'calc(1px)'.]
+ expected: FAIL
+
+ ['calc(1px + min(1in, 100px))' as a specified value should serialize as 'calc(97px)'.]
+ expected: FAIL
+
+ ['max(1px)' as a computed value should serialize as '1px'.]
+ expected: FAIL
+
+ ['max(1px)' as a specified value should serialize as 'calc(1px)'.]
+ expected: FAIL
+
+ ['min(1PX)' as a computed value should serialize as '1px'.]
+ expected: FAIL
+
+ ['max(1in)' as a specified value should serialize as 'calc(96px)'.]
+ expected: FAIL
+
+ ['min(1in)' as a computed value should serialize as '96px'.]
+ expected: FAIL
+
+ ['min(1PX)' as a specified value should serialize as 'calc(1px)'.]
+ expected: FAIL
+
+ ['calc(min(1px, 1in) + max(100px + 1em, 10px + 1in) + 1px)' as a specified value should serialize as 'calc(2px + max(1em + 100px, 106px))'.]
+ expected: FAIL
+
+ ['max(1in)' as a computed value should serialize as '96px'.]
+ expected: FAIL
+
+ ['min(1px, 1em)' as a specified value should serialize as 'min(1px, 1em)'.]
+ expected: FAIL
+
+ ['max(50px, 1in + 1px)' as a specified value should serialize as 'calc(97px)'.]
+ expected: FAIL
+
+ ['calc(1px + max(1in, 100px))' as a specified value should serialize as 'calc(101px)'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini
index 632a2867a95..d850f06d62f 100644
--- a/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-number-computed.html.ini
@@ -89,3 +89,45 @@
[Property opacity value 'min(0, 0.5)']
expected: FAIL
+ [calc(min(0.1, 0.2) + 0.05) should be used-value-equivalent to 0.15]
+ expected: FAIL
+
+ [min(0.2, max(0.1, 0.15)) should be used-value-equivalent to 0.15]
+ expected: FAIL
+
+ [calc(min(0.1, 0.2) + max(0.1, 0.05)) should be used-value-equivalent to 0.2]
+ expected: FAIL
+
+ [calc(max(0.1, 0.2) + 0.05) should be used-value-equivalent to 0.25]
+ expected: FAIL
+
+ [calc(max(0.1, 0.2) - 0.05) should be used-value-equivalent to 0.15]
+ expected: FAIL
+
+ [max(0.1, min(0.2, 0.15)) should be used-value-equivalent to 0.15]
+ expected: FAIL
+
+ [max(1) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [calc(max(0.1, 0.2) * 2) should be used-value-equivalent to 0.4]
+ expected: FAIL
+
+ [min(1) should be used-value-equivalent to 1]
+ expected: FAIL
+
+ [calc(min(0.1, 0.2) / 2) should be used-value-equivalent to 0.05]
+ expected: FAIL
+
+ [calc(min(0.1, 0.2) * 2) should be used-value-equivalent to 0.2]
+ expected: FAIL
+
+ [calc(max(0.1, 0.2) / 2) should be used-value-equivalent to 0.1]
+ expected: FAIL
+
+ [calc(min(0.1, 0.2) - max(0.1, 0.05)) should be used-value-equivalent to 0]
+ expected: FAIL
+
+ [calc(min(0.1, 0.2) - 0.05) should be used-value-equivalent to 0.05]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-number-serialize.html.ini b/tests/wpt/metadata/css/css-values/minmax-number-serialize.html.ini
index e86a29440df..11391cdf13b 100644
--- a/tests/wpt/metadata/css/css-values/minmax-number-serialize.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-number-serialize.html.ini
@@ -35,3 +35,123 @@
[e.style['opacity'\] = "calc(1 + min(1))" should set the property value]
expected: FAIL
+ ['min(.3, .2, .1)' as a computed value should serialize as '0.1'.]
+ expected: FAIL
+
+ ['scale(min(.1))' as a computed value should serialize as 'matrix(0.1, 0, 0, 0.1, 0, 0)'.]
+ expected: FAIL
+
+ ['scale(min(.3, .2, .1))' as a computed value should serialize as 'matrix(0.1, 0, 0, 0.1, 0, 0)'.]
+ expected: FAIL
+
+ ['calc(.1 + min(.1))' as a specified value should serialize as 'calc(0.2)'.]
+ expected: FAIL
+
+ ['scale(calc(max(.1) + max(.2)))' as a computed value should serialize as 'matrix(0.3, 0, 0, 0.3, 0, 0)'.]
+ expected: FAIL
+
+ ['max(.1, .2, .3)' as a specified value should serialize as 'calc(0.3)'.]
+ expected: FAIL
+
+ ['min(.1, .2, .3)' as a computed value should serialize as '0.1'.]
+ expected: FAIL
+
+ ['min(.3, .2, .1)' as a specified value should serialize as 'calc(0.1)'.]
+ expected: FAIL
+
+ ['calc(max(.1) + max(.2))' as a specified value should serialize as 'calc(0.3)'.]
+ expected: FAIL
+
+ ['scale(min(.1, .2, .3))' as a specified value should serialize as 'scale(calc(0.1))'.]
+ expected: FAIL
+
+ ['calc(max(.1) + max(.2))' as a computed value should serialize as '0.3'.]
+ expected: FAIL
+
+ ['max(.3, .2, .1)' as a specified value should serialize as 'calc(0.3)'.]
+ expected: FAIL
+
+ ['min(.1)' as a specified value should serialize as 'calc(0.1)'.]
+ expected: FAIL
+
+ ['scale(max(.3, .2, .1))' as a computed value should serialize as 'matrix(0.3, 0, 0, 0.3, 0, 0)'.]
+ expected: FAIL
+
+ ['min(.1, .2, .3)' as a specified value should serialize as 'calc(0.1)'.]
+ expected: FAIL
+
+ ['min(.1)' as a computed value should serialize as '0.1'.]
+ expected: FAIL
+
+ ['scale(calc(max(.1) + max(.2)))' as a specified value should serialize as 'scale(calc(0.3))'.]
+ expected: FAIL
+
+ ['scale(max(.1))' as a computed value should serialize as 'matrix(0.1, 0, 0, 0.1, 0, 0)'.]
+ expected: FAIL
+
+ ['scale(max(.1, .2, .3))' as a specified value should serialize as 'scale(calc(0.3))'.]
+ expected: FAIL
+
+ ['scale(min(.3, .2, .1))' as a specified value should serialize as 'scale(calc(0.1))'.]
+ expected: FAIL
+
+ ['scale(max(.1, .2, .3))' as a computed value should serialize as 'matrix(0.3, 0, 0, 0.3, 0, 0)'.]
+ expected: FAIL
+
+ ['scale(calc(max(.1) + .1))' as a specified value should serialize as 'scale(calc(0.2))'.]
+ expected: FAIL
+
+ ['scale(min(.1, .2, .3))' as a computed value should serialize as 'matrix(0.1, 0, 0, 0.1, 0, 0)'.]
+ expected: FAIL
+
+ ['scale(calc(min(.1) + min(.2)))' as a specified value should serialize as 'scale(calc(0.3))'.]
+ expected: FAIL
+
+ ['scale(max(.3, .2, .1))' as a specified value should serialize as 'scale(calc(0.3))'.]
+ expected: FAIL
+
+ ['scale(min(.1))' as a specified value should serialize as 'scale(calc(0.1))'.]
+ expected: FAIL
+
+ ['calc(max(.1) + .1)' as a specified value should serialize as 'calc(0.2)'.]
+ expected: FAIL
+
+ ['max(.3, .2, .1)' as a computed value should serialize as '0.3'.]
+ expected: FAIL
+
+ ['calc(min(.1) + min(.2))' as a specified value should serialize as 'calc(0.3)'.]
+ expected: FAIL
+
+ ['max(.1)' as a specified value should serialize as 'calc(0.1)'.]
+ expected: FAIL
+
+ ['scale(max(.1))' as a specified value should serialize as 'scale(calc(0.1))'.]
+ expected: FAIL
+
+ ['calc(min(.1) + min(.2))' as a computed value should serialize as '0.3'.]
+ expected: FAIL
+
+ ['max(.1)' as a computed value should serialize as '0.1'.]
+ expected: FAIL
+
+ ['calc(.1 + min(.1))' as a computed value should serialize as '0.2'.]
+ expected: FAIL
+
+ ['calc(max(.1) + .1)' as a computed value should serialize as '0.2'.]
+ expected: FAIL
+
+ ['scale(calc(.1 + min(.1)))' as a computed value should serialize as 'matrix(0.2, 0, 0, 0.2, 0, 0)'.]
+ expected: FAIL
+
+ ['scale(calc(max(.1) + .1))' as a computed value should serialize as 'matrix(0.2, 0, 0, 0.2, 0, 0)'.]
+ expected: FAIL
+
+ ['max(.1, .2, .3)' as a computed value should serialize as '0.3'.]
+ expected: FAIL
+
+ ['scale(calc(min(.1) + min(.2)))' as a computed value should serialize as 'matrix(0.3, 0, 0, 0.3, 0, 0)'.]
+ expected: FAIL
+
+ ['scale(calc(.1 + min(.1)))' as a specified value should serialize as 'scale(calc(0.2))'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini
index 320e92be7f9..6610c4f3ae9 100644
--- a/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-percentage-computed.html.ini
@@ -83,3 +83,42 @@
[Property margin-left value 'calc(min(10%, 20%) + max(10%, 5%))']
expected: FAIL
+ [calc(min(10%, 20%) - 5%) should be used-value-equivalent to 5%]
+ expected: FAIL
+
+ [calc(max(10%, 20%) + 5%) should be used-value-equivalent to 25%]
+ expected: FAIL
+
+ [max(10%, min(20%, 15%)) should be used-value-equivalent to 15%]
+ expected: FAIL
+
+ [min(20%, max(10%, 15%)) should be used-value-equivalent to 15%]
+ expected: FAIL
+
+ [calc(min(10%, 20%) + 5%) should be used-value-equivalent to 15%]
+ expected: FAIL
+
+ [calc(min(10%, 20%) * 2) should be used-value-equivalent to 20%]
+ expected: FAIL
+
+ [calc(max(10%, 20%) / 2) should be used-value-equivalent to 10%]
+ expected: FAIL
+
+ [calc(max(10%, 20%) * 2) should be used-value-equivalent to 40%]
+ expected: FAIL
+
+ [min(1%) should be used-value-equivalent to 1%]
+ expected: FAIL
+
+ [calc(min(10%, 20%) + max(10%, 5%)) should be used-value-equivalent to 20%]
+ expected: FAIL
+
+ [calc(min(10%, 20%) / 2) should be used-value-equivalent to 5%]
+ expected: FAIL
+
+ [calc(max(10%, 20%) - 5%) should be used-value-equivalent to 15%]
+ expected: FAIL
+
+ [max(1%) should be used-value-equivalent to 1%]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-percentage-serialize.html.ini b/tests/wpt/metadata/css/css-values/minmax-percentage-serialize.html.ini
index 81eb8417a25..403ee031818 100644
--- a/tests/wpt/metadata/css/css-values/minmax-percentage-serialize.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-percentage-serialize.html.ini
@@ -35,3 +35,72 @@
[e.style['margin-left'\] = "min(3%, 2%, 1%)" should set the property value]
expected: FAIL
+ ['max(1%)' as a used value should serialize as '1px'.]
+ expected: FAIL
+
+ ['max(1%, 2%, 3%)' as a computed value should serialize as 'max(1%, 2%, 3%)'.]
+ expected: FAIL
+
+ ['min(1%)' as a used value should serialize as '1px'.]
+ expected: FAIL
+
+ ['min(3%, 2%, 1%)' as a used value should serialize as '1px'.]
+ expected: FAIL
+
+ ['min(3%, 2%, 1%)' as a specified value should serialize as 'min(3%, 2%, 1%)'.]
+ expected: FAIL
+
+ ['max(3%, 2%, 1%)' as a used value should serialize as '3px'.]
+ expected: FAIL
+
+ ['calc(min(1%, 2%) + max(3%, 4%) + 10%)' as a computed value should serialize as '15%'.]
+ expected: FAIL
+
+ ['max(3%, 2%, 1%)' as a specified value should serialize as 'max(3%, 2%, 1%)'.]
+ expected: FAIL
+
+ ['min(1%)' as a specified value should serialize as 'calc(1%)'.]
+ expected: FAIL
+
+ ['min(1%, 2%, 3%)' as a computed value should serialize as 'min(1%, 2%, 3%)'.]
+ expected: FAIL
+
+ ['min(1%, 2%, 3%)' as a specified value should serialize as 'min(1%, 2%, 3%)'.]
+ expected: FAIL
+
+ ['min(1%)' as a computed value should serialize as '1%'.]
+ expected: FAIL
+
+ ['max(1%, 2%, 3%)' as a used value should serialize as '3px'.]
+ expected: FAIL
+
+ ['max(1%)' as a specified value should serialize as 'calc(1%)'.]
+ expected: FAIL
+
+ ['calc(min(1%, 2%) + max(3%, 4%) + 10%)' as a specified value should serialize as 'calc(15%)'.]
+ expected: FAIL
+
+ ['max(3%, 2%, 1%)' as a computed value should serialize as 'max(3%, 2%, 1%)'.]
+ expected: FAIL
+
+ ['calc(min(1%, 2%) + max(3%, 4%) + 10%)' as a used value should serialize as '15px'.]
+ expected: FAIL
+
+ ['min(3%, 2%, 1%)' as a computed value should serialize as 'min(3%, 2%, 1%)'.]
+ expected: FAIL
+
+ ['max(1%, 2%, 3%)' as a specified value should serialize as 'max(1%, 2%, 3%)'.]
+ expected: FAIL
+
+ ['min(1%, 2%, 3%) 0px' as a specified value should serialize as 'min(1%, 2%, 3%) 0px'.]
+ expected: FAIL
+
+ ['min(1%, 2%, 3%) 0px' as a computed value should serialize as 'min(1%, 2%, 3%) 0px'.]
+ expected: FAIL
+
+ ['min(1%, 2%, 3%)' as a used value should serialize as '1px'.]
+ expected: FAIL
+
+ ['max(1%)' as a computed value should serialize as '1%'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini b/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini
index 0e9738b9fad..23a2912ab88 100644
--- a/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-time-computed.html.ini
@@ -131,3 +131,66 @@
[Property transition-delay value 'calc(min(0.5s, 600ms) / 2)']
expected: FAIL
+ [min(1s + 100ms, 500ms * 3) should be used-value-equivalent to 1.1s]
+ expected: FAIL
+
+ [max(1s, 2s) should be used-value-equivalent to 2s]
+ expected: FAIL
+
+ [max(1000ms, min(2000ms, 1.5s)) should be used-value-equivalent to 1.5s]
+ expected: FAIL
+
+ [calc(min(0.5s, 600ms) + max(500ms, 0.4s)) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [min(1s, 2s) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [min(1s, 1100ms) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [calc(min(0.5s, 600ms) + 500ms) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [min(1ms) should be used-value-equivalent to 1ms]
+ expected: FAIL
+
+ [calc(min(0.5s, 600ms) / 2) should be used-value-equivalent to 0.25s]
+ expected: FAIL
+
+ [calc(max(0.5s, 400ms) + 500ms) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [calc(min(0.5s, 600ms) * 2) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [max(0.9s, 1000ms) should be used-value-equivalent to 1000ms]
+ expected: FAIL
+
+ [min(2s, max(1s, 1500ms)) should be used-value-equivalent to 1500ms]
+ expected: FAIL
+
+ [max(1ms, 2ms) should be used-value-equivalent to 2ms]
+ expected: FAIL
+
+ [calc(max(0.5s, 400ms) / 2) should be used-value-equivalent to 0.25s]
+ expected: FAIL
+
+ [max(1ms) should be used-value-equivalent to 1ms]
+ expected: FAIL
+
+ [min(1ms, 2ms) should be used-value-equivalent to 1ms]
+ expected: FAIL
+
+ [min(1s) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [calc(max(0.5s, 400ms) * 2) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [max(1s) should be used-value-equivalent to 1s]
+ expected: FAIL
+
+ [calc(min(1s, 2s) + max(3s, 4s) + 10s) should be used-value-equivalent to 15s]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/minmax-time-serialize.html.ini b/tests/wpt/metadata/css/css-values/minmax-time-serialize.html.ini
index 6be83f82dc2..0f892efe5eb 100644
--- a/tests/wpt/metadata/css/css-values/minmax-time-serialize.html.ini
+++ b/tests/wpt/metadata/css/css-values/minmax-time-serialize.html.ini
@@ -59,3 +59,69 @@
[e.style['transition-delay'\] = "min(3ms, 2ms, 1ms)" should set the property value]
expected: FAIL
+ ['min(1ms)' as a specified value should serialize as 'calc(0.001s)'.]
+ expected: FAIL
+
+ ['min(900ms, 1s)' as a specified value should serialize as 'calc(0.9s)'.]
+ expected: FAIL
+
+ ['max(3s, 2s, 1s)' as a computed value should serialize as '3s'.]
+ expected: FAIL
+
+ ['max(1s)' as a specified value should serialize as 'calc(1s)'.]
+ expected: FAIL
+
+ ['min(1s, 2s, 3s)' as a computed value should serialize as '1s'.]
+ expected: FAIL
+
+ ['max(1s, 2s, 3s)' as a specified value should serialize as 'calc(3s)'.]
+ expected: FAIL
+
+ ['min(1ms)' as a computed value should serialize as '0.001s'.]
+ expected: FAIL
+
+ ['max(1ms)' as a computed value should serialize as '0.001s'.]
+ expected: FAIL
+
+ ['min(3s, 2s, 1s)' as a computed value should serialize as '1s'.]
+ expected: FAIL
+
+ ['max(1s)' as a computed value should serialize as '1s'.]
+ expected: FAIL
+
+ ['min(1s)' as a specified value should serialize as 'calc(1s)'.]
+ expected: FAIL
+
+ ['min(3s, 2s, 1s)' as a specified value should serialize as 'calc(1s)'.]
+ expected: FAIL
+
+ ['calc(min(1s, 2s) + max(3s, 4s) + 10s)' as a computed value should serialize as '15s'.]
+ expected: FAIL
+
+ ['max(1s, 2s, 3s)' as a computed value should serialize as '3s'.]
+ expected: FAIL
+
+ ['max(3s, 2s, 1s)' as a specified value should serialize as 'calc(3s)'.]
+ expected: FAIL
+
+ ['max(1ms)' as a specified value should serialize as 'calc(0.001s)'.]
+ expected: FAIL
+
+ ['min(1s, 2s, 3s)' as a specified value should serialize as 'calc(1s)'.]
+ expected: FAIL
+
+ ['min(1s)' as a computed value should serialize as '1s'.]
+ expected: FAIL
+
+ ['max(1100ms, 1s)' as a computed value should serialize as '1.1s'.]
+ expected: FAIL
+
+ ['calc(min(1s, 2s) + max(3s, 4s) + 10s)' as a specified value should serialize as 'calc(15s)'.]
+ expected: FAIL
+
+ ['max(1100ms, 1s)' as a specified value should serialize as 'calc(1.1s)'.]
+ expected: FAIL
+
+ ['min(900ms, 1s)' as a computed value should serialize as '0.9s'.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/round-function.html.ini b/tests/wpt/metadata/css/css-values/round-function.html.ini
index b272ffc2ac6..bde64751406 100644
--- a/tests/wpt/metadata/css/css-values/round-function.html.ini
+++ b/tests/wpt/metadata/css/css-values/round-function.html.ini
@@ -335,3 +335,63 @@
[round(to-zero, -18px, 10px) should be used-value-equivalent to -10px]
expected: FAIL
+ [round(to-zero, 5, infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(up, -1, infinity should equal 0⁻.]
+ expected: FAIL
+
+ [round(to-zero, -5, infinity) should equal 0⁻.]
+ expected: FAIL
+
+ [round(up, -1 * 0, infinity should equal 0⁻.]
+ expected: FAIL
+
+ [round(up, 0, infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(down, -1, infinity) should equal -Infinity.]
+ expected: FAIL
+
+ [round(down, -1 * 0, infinity) should equal 0⁻.]
+ expected: FAIL
+
+ [round(infinity, 5) should equal +Infinity.]
+ expected: FAIL
+
+ [round(-infinity, 5) should equal -Infinity.]
+ expected: FAIL
+
+ [round(down, 0, infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(-infinity, -5) should equal -Infinity.]
+ expected: FAIL
+
+ [round(down, 1, infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(5, infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(up, 1, infinity) should equal +Infinity.]
+ expected: FAIL
+
+ [round(infinity, -5) should equal +Infinity.]
+ expected: FAIL
+
+ [round(5, -infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(to-zero, -5, -infinity) should equal 0⁻.]
+ expected: FAIL
+
+ [round(to-zero, 5, -infinity) should equal 0⁺.]
+ expected: FAIL
+
+ [round(-5, -infinity) should equal 0⁻.]
+ expected: FAIL
+
+ [round(-5, infinity) should equal 0⁻.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini b/tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini
new file mode 100644
index 00000000000..948ce05488b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-values/update-subpixel-rem-unit.html.ini
@@ -0,0 +1,4 @@
+[update-subpixel-rem-unit.html]
+ [Check that a 0.1px change in root font-size affect rem units.]
+ 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/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index 628b1fab770..c884dc82eab 100644
--- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,3 +2,6 @@
[listeners are called when <iframe> is resized]
expected: FAIL
+ [listeners are called correct number of times]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..e38782d8c85
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
index 171592fc08f..6ef8bb1049f 100644
--- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
@@ -2,3 +2,6 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
+ [elementsFromPoint on inner documents]
+ 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/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html.ini b/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html.ini
new file mode 100644
index 00000000000..13602c25c9d
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html.ini
@@ -0,0 +1,10 @@
+[CSSStyleSheet-constructable-baseURL.tentative.html]
+ [Constructing sheet with custom base URL ueses that URL for CSS rules]
+ expected: FAIL
+
+ [Constructing sheet with invalid base URL throws a NotAllowedError]
+ expected: FAIL
+
+ [Constructing sheet with relative URL adds to the constructor document's base URL]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-duplicate.html.ini b/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-duplicate.html.ini
index 02e7376e855..a78d3b49fd2 100644
--- a/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-duplicate.html.ini
+++ b/tests/wpt/metadata/css/cssom/CSSStyleSheet-constructable-duplicate.html.ini
@@ -2,3 +2,15 @@
[Cascade order of a stylesheet for duplicate sheets.]
expected: FAIL
+ [Duplicate stylesheets have the right cascade position in the Document]
+ expected: FAIL
+
+ [Appending duplicate stylesheets yields the correct cascade position in the Document]
+ expected: FAIL
+
+ [Appending duplicate stylesheets yields the correct cascade position in the ShadowRoot]
+ expected: FAIL
+
+ [Duplicate stylesheets have the right cascade position in the ShadowRoot]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/dom/events/Event-dispatch-detached-input-and-change.html.ini b/tests/wpt/metadata/dom/events/Event-dispatch-detached-input-and-change.html.ini
new file mode 100644
index 00000000000..e4a330c1d27
--- /dev/null
+++ b/tests/wpt/metadata/dom/events/Event-dispatch-detached-input-and-change.html.ini
@@ -0,0 +1,25 @@
+[Event-dispatch-detached-input-and-change.html]
+ [attached to shadow dom radio should emit input and change events on click().]
+ expected: FAIL
+
+ [detached checkbox should not emit input or change events on click().]
+ expected: FAIL
+
+ [attached to shadow dom checkbox should emit input and change events on click().]
+ expected: FAIL
+
+ [detached radio should not emit input or change events on click().]
+ expected: FAIL
+
+ [detached radio should not emit input or change events on dispatchEvent(new MouseEvent('click')).]
+ expected: FAIL
+
+ [detached checkbox should not emit input or change events on dispatchEvent(new MouseEvent('click')).]
+ expected: FAIL
+
+ [attached to shadow dom checkbox should emit input and change events on dispatchEvent(new MouseEvent('click')).]
+ expected: FAIL
+
+ [attached to shadow dom radio should emit input and change events on dispatchEvent(new MouseEvent('click')).]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
index 98f49140596..3ddb88c204f 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,24 +312,12 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
- [<iframe>: separate response Content-Type: text/html;" \\" text/plain]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" text/plain]
- expected: FAIL
-
- [<iframe>: combined response Content-Type: */* text/html]
- expected: FAIL
-
- [<iframe>: separate response Content-Type: text/plain */*]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
- [<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
+ [<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL
diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
index d2df9b78483..c7413d589dc 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -56,3 +56,9 @@
[separate text/javascript x/x]
expected: FAIL
+ [separate text/javascript;charset=windows-1252 error text/javascript]
+ expected: FAIL
+
+ [separate text/javascript;charset=windows-1252 text/javascript]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
index 30e1b851fd4..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,3 +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'NosniFF']
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
deleted file mode 100644
index 51f8272a6de..00000000000
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[traverse_the_history_3.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_4.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
new file mode 100644
index 00000000000..385376c7321
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_4.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
index ced66541669..ee369c247a4 100644
--- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
+++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
@@ -18,3 +18,6 @@
[Set HTTP URL frame location.protocol to ftp]
expected: FAIL
+ [Set data URL frame location.protocol to data]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint.html.ini
deleted file mode 100644
index ecb3e9b06e2..00000000000
--- a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/structured_clone_bigint.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[structured_clone_bigint.html]
- expected: ERROR
- [2.7 Safe passing of structured data]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
index 8b743f36e1d..dab21cae5d8 100644
--- a/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
+++ b/tests/wpt/metadata/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini
@@ -4,7 +4,7 @@
expected: FAIL
[Element with tabindex should support autofocus]
- expected: TIMEOUT
+ expected: FAIL
[Host element with delegatesFocus including no focusable descendants should be skipped]
expected: NOTRUN
@@ -13,8 +13,5 @@
expected: NOTRUN
[Host element with delegatesFocus should support autofocus]
- expected: NOTRUN
-
- [Non-HTMLElement should not support autofocus]
- expected: NOTRUN
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-transform-translatez.html.ini b/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-transform-translatez.html.ini
deleted file mode 100644
index 8f2209ffd03..00000000000
--- a/tests/wpt/metadata/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/fieldset-transform-translatez.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[fieldset-transform-translatez.html]
- expected:
- if os == "linux": FAIL
diff --git a/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini
new file mode 100644
index 00000000000..9c5e9de0c8e
--- /dev/null
+++ b/tests/wpt/metadata/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html.ini
@@ -0,0 +1,4 @@
+[img-alt-crash-001.html]
+ [Should not crash.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html.ini
deleted file mode 100644
index 7eb1a57cb67..00000000000
--- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[css-module-worker-test.html]
- expected: TIMEOUT
- [A dynamic import CSS Module within a web worker should not load.]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/inactive-context-import.html.ini b/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/inactive-context-import.html.ini
deleted file mode 100644
index 354ea7cb7c8..00000000000
--- a/tests/wpt/metadata/html/semantics/scripting-1/the-script-element/module/inactive-context-import.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[inactive-context-import.html]
- type: testharness
- [dynamic import from inactive context should not crash]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini b/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini
index db44784b992..610d9ebb47d 100644
--- a/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini
+++ b/tests/wpt/metadata/wasm/webapi/contenttype.any.js.ini
@@ -1,13 +1,4 @@
[contenttype.any.worker.html]
- [Response with Content-Type "APPLICATION/wasm": instantiateStreaming]
- expected: FAIL
-
- [Response with Content-Type "APPLICATION/WASM": instantiateStreaming]
- expected: FAIL
-
- [Response with Content-Type "application/wasm": instantiateStreaming]
- expected: FAIL
-
[contenttype.any.sharedworker.html]
expected: ERROR
@@ -16,15 +7,6 @@
[contenttype.any.html]
- [Response with Content-Type "APPLICATION/wasm": instantiateStreaming]
- expected: FAIL
-
- [Response with Content-Type "APPLICATION/WASM": instantiateStreaming]
- expected: FAIL
-
- [Response with Content-Type "application/wasm": instantiateStreaming]
- expected: FAIL
-
[contenttype.any.serviceworker.html]
expected: ERROR
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 f3e6ba959a0..4954c1c9c13 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
@@ -29,3 +29,21 @@
[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 37004 more errors.\n\tMax AbsError of 1.9986611604690552e+0 at index of 26105.\n\t[26105\]\t-9.9994289875030518e-1\t9.9871826171875000e-1\t1.9986611604690552e+0\t2.0012262087101997e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-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 42281 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 17995.\n\t[17995\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.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 44043 more errors.\n\tMax AbsError of 1.9962286949157715e+0 at index of 32177.\n\t[32177\]\t9.9879217147827148e-1\t-9.9743652343750000e-1\t1.9962286949157715e+0\t2.0013591321441684e+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 42288 more errors.\n\tMax AbsError of 1.9962286949157715e+0 at index of 29972.\n\t[29972\]\t9.9879217147827148e-1\t-9.9743652343750000e-1\t1.9962286949157715e+0\t2.0013591321441684e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.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 42285 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 12348.\n\t[12348\]\t9.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 42290 more errors.\n\tMax AbsError of 1.9986611604690552e+0 at index of 26105.\n\t[26105\]\t-9.9994289875030518e-1\t9.9871826171875000e-1\t1.9986611604690552e+0\t2.0012262087101997e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-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 44051 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 37840.\n\t[37840\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\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 729e7e05482..766568d66de 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
@@ -164,3 +164,39 @@
[X SNR (-158.2459298453396 dB) is not greater than or equal to 65.737. Got -158.2459298453396.]
expected: FAIL
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[19030\]\t3.5714253612646400e+14\t-7.3546999692916870e-1\t3.5714253612646475e+14\t4.8559769619107963e+14\t3.8985999999999999e-3\n\t[19031\]\t-3.6017334461212158e-1\t-6.9157749414443970e-1\t3.3140414953231812e-1\t4.7920030992665957e-1\t3.8985999999999999e-3\n\t[38059\]\t7.0901769751756800e+14\t-9.8956179618835449e-1\t7.0901769751756900e+14\t7.1649663542853025e+14\t3.8985999999999999e-3\n\t[38060\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 7.0901769751756900e+14 at index of 38059.\n\tMax RelError of 7.1649663542853025e+14 at index of 38059.\n]
+ expected: FAIL
+
+ [X SNR (-254.56109005477157 dB) is not greater than or equal to 65.737. Got -254.56109005477157.]
+ expected: FAIL
+
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[19030\]\t-1.5346258564356873e+24\t-7.3546999692916870e-1\t1.5346258564356873e+24\t2.0865920606459265e+24\t3.8985999999999999e-3\n\t[19031\]\t-3.6017334461212158e-1\t-6.9157749414443970e-1\t3.3140414953231812e-1\t4.7920030992665957e-1\t3.8985999999999999e-3\n\t[38059\]\t-3.0465973817666023e+24\t-9.8956179618835449e-1\t3.0465973817666023e+24\t3.0787338329972360e+24\t3.8985999999999999e-3\n\t[38060\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 3.0465973817666023e+24 at index of 38059.\n\tMax RelError of 3.0787338329972360e+24 at index of 38059.\n]
+ expected: FAIL
+
+ [X SNR (-447.224261749694 dB) is not greater than or equal to 65.737. Got -447.224261749694.]
+ expected: FAIL
+
+ [X SNR (-61.90637588457 dB) is not greater than or equal to 65.737. Got -61.90637588457.]
+ expected: FAIL
+
+ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[19030\]\t8.3196109375000000e+4\t-7.3546999692916870e-1\t8.3196844844996929e+4\t1.1312065100190540e+5\t3.8985999999999999e-3\n\t[19031\]\t-3.6017334461212158e-1\t-6.9157749414443970e-1\t3.3140414953231812e-1\t4.7920030992665957e-1\t3.8985999999999999e-3\n\t[38059\]\t1.6516518750000000e+5\t-9.8956179618835449e-1\t1.6516617706179619e+5\t1.6690840096898633e+5\t3.8985999999999999e-3\n\t[38060\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 1.6516617706179619e+5 at index of 38059.\n\tMax RelError of 1.6690840096898633e+5 at index of 38059.\n]
+ expected: FAIL
+
+ [X SNR (45.01863889150833 dB) is not greater than or equal to 85.58. Got 45.01863889150833.]
+ 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\]\t-5.6100901701938710e-10\t5.6332010030746460e-1\t5.6332010086847362e-1\t1.0000000009958974e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5647297475380916e-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.0000000009958974e+0 at index of 31080.\n]
+ expected: FAIL
+
+ [< [buffer-stitching-1\] 2 out of 3 assertions were failed.]
+ 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\]\t-1.3063125746651807e-19\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5648698773845241e-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
+
+ [X SNR (45.01863889546195 dB) is not greater than or equal to 85.58. Got 45.01863889546195.]
+ 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\]\t-7.7842698715429952e-27\t5.6332010030746460e-1\t5.6332010030746460e-1\t1.0000000000000000e+0\t9.0957000000000003e-5\n\t[31081\]\t4.5752394860205277e-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-audioworklet-interface/suspended-context-messageport.https.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini
new file mode 100644
index 00000000000..e6fc13c33df
--- /dev/null
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html.ini
@@ -0,0 +1,10 @@
+[suspended-context-messageport.https.html]
+ [offline before start]
+ expected: FAIL
+
+ [offline on complete]
+ expected: FAIL
+
+ [realtime suspended]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webmessaging/with-ports/017.html.ini b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
new file mode 100644
index 00000000000..064cf47545b
--- /dev/null
+++ b/tests/wpt/metadata/webmessaging/with-ports/017.html.ini
@@ -0,0 +1,5 @@
+[017.html]
+ expected: TIMEOUT
+ [origin of the script that invoked the method, about:blank]
+ expected: TIMEOUT
+
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 f584fce5df1..268949ced5c 100644
--- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
+++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
@@ -1,5 +1,4 @@
[005.html]
- expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/css/canvas_as_block_element_a.html.ini b/tests/wpt/mozilla/meta-layout-2020/css/canvas_as_block_element_a.html.ini
deleted file mode 100644
index ec277801e55..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/css/canvas_as_block_element_a.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[canvas_as_block_element_a.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/css/canvas_over_area.html.ini b/tests/wpt/mozilla/meta-layout-2020/css/canvas_over_area.html.ini
deleted file mode 100644
index 15dfca6355d..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/css/canvas_over_area.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[canvas_over_area.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/css/max_inline_block_size_canvas.html.ini b/tests/wpt/mozilla/meta-layout-2020/css/max_inline_block_size_canvas.html.ini
deleted file mode 100644
index bc00f7498f7..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/css/max_inline_block_size_canvas.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[max_inline_block_size_canvas.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/css/pixel_snapping_glyphs.html.ini b/tests/wpt/mozilla/meta-layout-2020/css/pixel_snapping_glyphs.html.ini
deleted file mode 100644
index 2875a4c8b45..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/css/pixel_snapping_glyphs.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[pixel_snapping_glyphs.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/fetch_cannot_overwhelm_system.window.js.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/fetch_cannot_overwhelm_system.window.js.ini
new file mode 100644
index 00000000000..8a90539b5cf
--- /dev/null
+++ b/tests/wpt/mozilla/meta-layout-2020/mozilla/fetch_cannot_overwhelm_system.window.js.ini
@@ -0,0 +1,2 @@
+[fetch_cannot_overwhelm_system.window.html]
+ expected: CRASH
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/localeCompare.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/localeCompare.html.ini
new file mode 100644
index 00000000000..8bb28daf16c
--- /dev/null
+++ b/tests/wpt/mozilla/meta-layout-2020/mozilla/localeCompare.html.ini
@@ -0,0 +1,5 @@
+[localeCompare.html]
+ bug: https://github.com/servo/servo/issues/25802
+ [localeCompare should return the same as other browsers, even though it's implementation-dependent]
+ expected: FAIL
+
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/clearcolor.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/clearcolor.html.ini
deleted file mode 100644
index 0af2f792e3f..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/clearcolor.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[clearcolor.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/draw_arrays_simple.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/draw_arrays_simple.html.ini
deleted file mode 100644
index 3c62e9e6d4d..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/draw_arrays_simple.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[draw_arrays_simple.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_abv.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_abv.html.ini
deleted file mode 100644
index 2182851af6b..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_abv.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[tex_image_2d_abv.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_canvas2d.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_canvas2d.html.ini
deleted file mode 100644
index 439a3324829..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_canvas2d.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[tex_image_2d_canvas2d.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_mipmap.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_mipmap.html.ini
deleted file mode 100644
index da08a2c6a22..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_mipmap.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[tex_image_2d_mipmap.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_simple.html.ini b/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_simple.html.ini
deleted file mode 100644
index 7abe554c432..00000000000
--- a/tests/wpt/mozilla/meta-layout-2020/mozilla/webgl/tex_image_2d_simple.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[tex_image_2d_simple.html]
- expected: FAIL
diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json
index 3f09d075258..475c987053e 100644
--- a/tests/wpt/mozilla/meta/MANIFEST.json
+++ b/tests/wpt/mozilla/meta/MANIFEST.json
@@ -10971,7 +10971,7 @@
[]
],
"interfaces.js": [
- "689016240d603459ee1b633a5e80009291376396",
+ "1b841f053a231bf78d29ffe68e59455363c61502",
[]
],
"nested_asap_script.js": [
diff --git a/tests/wpt/mozilla/meta/mozilla/localeCompare.html.ini b/tests/wpt/mozilla/meta/mozilla/localeCompare.html.ini
new file mode 100644
index 00000000000..8bb28daf16c
--- /dev/null
+++ b/tests/wpt/mozilla/meta/mozilla/localeCompare.html.ini
@@ -0,0 +1,5 @@
+[localeCompare.html]
+ bug: https://github.com/servo/servo/issues/25802
+ [localeCompare should return the same as other browsers, even though it's implementation-dependent]
+ expected: FAIL
+
diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.js b/tests/wpt/mozilla/tests/mozilla/interfaces.js
index 689016240d6..1b841f053a2 100644
--- a/tests/wpt/mozilla/tests/mozilla/interfaces.js
+++ b/tests/wpt/mozilla/tests/mozilla/interfaces.js
@@ -6,6 +6,9 @@ function test_interfaces(interfaceNamesInGlobalScope) {
"Array",
"ArrayBuffer",
"Atomics",
+ "BigInt",
+ "BigInt64Array",
+ "BigUint64Array",
"Boolean",
"BroadcastChannel",
"Crypto",
diff --git a/tests/wpt/web-platform-tests/IndexedDB/support.js b/tests/wpt/web-platform-tests/IndexedDB/support.js
index d3b2bb7d121..8dbfa6f1e37 100644
--- a/tests/wpt/web-platform-tests/IndexedDB/support.js
+++ b/tests/wpt/web-platform-tests/IndexedDB/support.js
@@ -101,6 +101,16 @@ function assert_key_equals(actual, expected, description) {
assert_equals(indexedDB.cmp(actual, expected), 0, description);
}
+// Usage:
+// indexeddb_test(
+// (test_object, db_connection, upgrade_tx, open_request) => {
+// // Database creation logic.
+// },
+// (test_object, db_connection, open_request) => {
+// // Test logic.
+// test_object.done();
+// },
+// 'Test case description');
function indexeddb_test(upgrade_func, open_func, description, options) {
async_test(function(t) {
options = Object.assign({upgrade_will_abort: false}, options);
@@ -189,3 +199,13 @@ function keep_alive(tx, store_name) {
keepSpinning = false;
};
}
+
+// Returns a new function. After it is called |count| times, |func|
+// will be called.
+function barrier_func(count, func) {
+ let n = 0;
+ return () => {
+ if (++n === count)
+ func();
+ };
+}
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-connections.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-connections.any.js
new file mode 100644
index 00000000000..92d098d29c9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-connections.any.js
@@ -0,0 +1,72 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ },
+
+ (t, db1) => {
+ // Open a second connection to the same database.
+ const open_request = indexedDB.open(db1.name);
+ open_request.onerror = t.unreached_func('open() should succeed');
+ open_request.onupgradeneeded =
+ t.unreached_func('second connection should not upgrade');
+ open_request.onsuccess = t.step_func(() => {
+ const db2 = open_request.result;
+ t.add_cleanup(() => { db2.close(); });
+
+ const transaction1 = db1.transaction('store', 'readwrite');
+ transaction1.onabort = t.unreached_func('transaction1 should complete');
+
+ const transaction2 = db2.transaction('store', 'readwrite');
+ transaction2.onabort = t.unreached_func('transaction2 should complete');
+
+ let transaction1PutSuccess = false;
+ let transaction1Complete = false;
+ let transaction2PutSuccess = false;
+
+ // Keep transaction1 alive for a while and ensure transaction2
+ // doesn't start.
+
+ let count = 0;
+ (function doTransaction1Put() {
+ const request = transaction1.objectStore('store').put(1, count++);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(evt => {
+ transaction1PutSuccess = true;
+ if (count < 5) {
+ doTransaction1Put();
+ }
+ });
+ }());
+
+ transaction1.oncomplete = t.step_func(evt => {
+ transaction1Complete = true;
+ assert_false(
+ transaction2PutSuccess,
+ 'transaction1 should complete before transaction2 put succeeds');
+ });
+
+ const request = transaction2.objectStore('store').put(2, 0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(evt => {
+ transaction2PutSuccess = true;
+ assert_true(
+ transaction1Complete,
+ 'transaction2 put should not succeed before transaction1 completes');
+ });
+
+ transaction2.oncomplete = t.step_func_done(evt => {
+ assert_true(
+ transaction1PutSuccess,
+ 'transaction1 put should succeed before transaction2 runs');
+ assert_true(
+ transaction1Complete,
+ 'transaction1 should complete before transaction2 runs');
+ assert_true(
+ transaction2PutSuccess,
+ 'transaction2 put should succeed before transaction2 completes');
+ });
+ });
+ },
+ "Check that readwrite transactions with overlapping scopes do not run in parallel.");
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-databases.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-databases.any.js
new file mode 100644
index 00000000000..06444417586
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-across-databases.any.js
@@ -0,0 +1,72 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ },
+
+ (t, db1) => {
+ // Open a second database.
+ const db2name = db1.name + '-2';
+ const delete_request = indexedDB.deleteDatabase(db2name);
+ delete_request.onerror = t.unreached_func('deleteDatabase() should succeed');
+ const open_request = indexedDB.open(db2name, 1);
+ open_request.onerror = t.unreached_func('open() should succeed');
+ open_request.onupgradeneeded = t.step_func(() => {
+ const db2 = open_request.result;
+ const store = db2.createObjectStore('store');
+ });
+ open_request.onsuccess = t.step_func(() => {
+ const db2 = open_request.result;
+ t.add_cleanup(() => {
+ db2.close();
+ indexedDB.deleteDatabase(db2.name);
+ });
+
+ let transaction1PutSuccess = false;
+ let transaction2PutSuccess = false;
+
+ const onTransactionComplete = barrier_func(2, t.step_func_done(() => {
+ assert_true(transaction1PutSuccess,
+ 'transaction1 should have executed at least one request');
+ assert_true(transaction2PutSuccess,
+ 'transaction1 should have executed at least one request');
+ }));
+
+
+ const transaction1 = db1.transaction('store', 'readwrite');
+ transaction1.onabort = t.unreached_func('transaction1 should complete');
+ transaction1.oncomplete = t.step_func(onTransactionComplete);
+
+ const transaction2 = db2.transaction('store', 'readwrite');
+ transaction2.onabort = t.unreached_func('transaction2 should complete');
+ transaction2.oncomplete = t.step_func(onTransactionComplete);
+
+ // Keep both transactions alive until each has reported at least one
+ // successful operation.
+
+ function doTransaction1Put() {
+ const request = transaction1.objectStore('store').put(0, 0);
+ request.onerror = t.unreached_func('put request should succeed');
+ request.onsuccess = t.step_func(() => {
+ transaction1PutSuccess = true;
+ if (!transaction2PutSuccess)
+ doTransaction1Put();
+ });
+ }
+
+ function doTransaction2Put() {
+ const request = transaction2.objectStore('store').put(0, 0);
+ request.onerror = t.unreached_func('put request should succeed');
+ request.onsuccess = t.step_func(() => {
+ transaction2PutSuccess = true;
+ if (!transaction1PutSuccess)
+ doTransaction2Put();
+ });
+ }
+
+ doTransaction1Put();
+ doTransaction2Put();
+ });
+ },
+ "Check that transactions in different databases can run in parallel.");
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-mixed-scopes.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-mixed-scopes.any.js
new file mode 100644
index 00000000000..5f04a6a288d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-mixed-scopes.any.js
@@ -0,0 +1,63 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ db.createObjectStore('a');
+ db.createObjectStore('b');
+ db.createObjectStore('c');
+ },
+
+ (t, db) => {
+ let transaction1Started = false;
+ let transaction1Complete = false;
+ let transaction2Started = false;
+ let transaction2Complete = false;
+ let transaction3Started = false;
+ let transaction3Complete = false;
+
+ const transaction1 = db.transaction(['a'], 'readonly');
+ let request = transaction1.objectStore('a').get(0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(() => {
+ transaction1Started = true;
+ });
+ transaction1.onabort = t.unreached_func('transaction1 should complete');
+ transaction1.oncomplete = t.step_func(() => {
+ transaction1Complete = true;
+ assert_false(transaction2Started);
+ assert_false(transaction3Started);
+ });
+
+
+ // transaction2 overlaps with transaction1, so must wait until transaction1
+ // completes.
+ const transaction2 = db.transaction(['a', 'b'], 'readwrite');
+ request = transaction2.objectStore('a').get(0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(() => {
+ assert_true(transaction1Complete);
+ transaction2Started = true;
+ });
+ transaction2.onabort = t.unreached_func('transaction2 should complete');
+ transaction2.oncomplete = t.step_func(() => {
+ transaction2Complete = true;
+ assert_false(transaction3Started);
+ });
+
+ // transaction3 overlaps with transaction2, so must wait until transaction2
+ // completes even though it does not overlap with transaction1.
+ const transaction3 = db.transaction(['b', 'c'], 'readonly');
+ request = transaction3.objectStore('b').get(0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(() => {
+ assert_true(transaction1Complete);
+ assert_true(transaction2Complete);
+ transaction3Started = true;
+ });
+ transaction3.onabort = t.unreached_func('transaction3 should complete');
+ transaction3.oncomplete = t.step_func_done(() => {
+ transaction3Complete = true;
+ });
+ },
+ "Check that scope restrictions on mixed transactions are enforced.");
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ordering.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ordering.any.js
new file mode 100644
index 00000000000..9f47e5c58ca
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ordering.any.js
@@ -0,0 +1,40 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ },
+
+ (t, db) => {
+ // Create in order tx1, tx2.
+ const tx1 = db.transaction('store', 'readwrite');
+ const tx2 = db.transaction('store', 'readwrite');
+
+ // Use in order tx2, tx1.
+ tx2.objectStore('store').get(0);
+ tx1.objectStore('store').get(0);
+
+ const order = [];
+ const done = barrier_func(2, t.step_func_done(() => {
+ // IndexedDB Spec:
+ // https://w3c.github.io/IndexedDB/#transaction-scheduling
+ //
+ // If multiple "readwrite" transactions are attempting to
+ // access the same object store (i.e. if they have overlapping
+ // scope), the transaction that was created first must be the
+ // transaction which gets access to the object store first.
+ //
+ assert_array_equals(order, [1, 2]);
+ }));
+
+ tx1.oncomplete = t.step_func(e => {
+ order.push(1);
+ done();
+ });
+
+ tx2.oncomplete = t.step_func(e => {
+ order.push(2);
+ done();
+ });
+ },
+ "Verify Indexed DB transactions are ordered per spec");
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ro-waits-for-rw.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ro-waits-for-rw.any.js
new file mode 100644
index 00000000000..dca08b82088
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-ro-waits-for-rw.any.js
@@ -0,0 +1,26 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ store.put('value', 'key');
+ },
+
+ (t, db) => {
+ const transaction1 = db.transaction('store', 'readwrite');
+ transaction1.onabort = t.unreached_func('transaction1 should not abort');
+
+ const transaction2 = db.transaction('store', 'readonly');
+ transaction2.onabort = t.unreached_func('transaction2 should not abort');
+
+ const request = transaction1.objectStore('store').put('new value', 'key');
+ request.onerror = t.unreached_func('request should not fail');
+
+ const request2 = transaction2.objectStore('store').get('key');
+ request2.onerror = t.unreached_func('request2 should not fail');
+ request2.onsuccess = t.step_func_done(evt => {
+ assert_equals(request2.result, 'new value',
+ 'Request should see new value.');
+ });
+ },
+ "readonly transaction should see the result of a previous readwrite transaction");
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-rw-scopes.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-rw-scopes.any.js
new file mode 100644
index 00000000000..7c6f61614b0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-rw-scopes.any.js
@@ -0,0 +1,63 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ db.createObjectStore('a');
+ db.createObjectStore('b');
+ db.createObjectStore('c');
+ },
+
+ (t, db) => {
+ let transaction1Started = false;
+ let transaction1Complete = false;
+ let transaction2Started = false;
+ let transaction2Complete = false;
+ let transaction3Started = false;
+ let transaction3Complete = false;
+
+ const transaction1 = db.transaction(['a'], 'readwrite');
+ let request = transaction1.objectStore('a').get(0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(() => {
+ transaction1Started = true;
+ });
+ transaction1.onabort = t.unreached_func('transaction1 should complete');
+ transaction1.oncomplete = t.step_func(() => {
+ transaction1Complete = true;
+ assert_false(transaction2Started);
+ assert_false(transaction3Started);
+ });
+
+
+ // transaction2 overlaps with transaction1, so must wait until transaction1
+ // completes.
+ const transaction2 = db.transaction(['a', 'b'], 'readwrite');
+ request = transaction2.objectStore('a').get(0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(() => {
+ assert_true(transaction1Complete);
+ transaction2Started = true;
+ });
+ transaction2.onabort = t.unreached_func('transaction2 should complete');
+ transaction2.oncomplete = t.step_func(() => {
+ transaction2Complete = true;
+ assert_false(transaction3Started);
+ });
+
+ // transaction3 overlaps with transaction2, so must wait until transaction2
+ // completes even though it does not overlap with transaction1.
+ const transaction3 = db.transaction(['b', 'c'], 'readwrite');
+ request = transaction3.objectStore('b').get(0);
+ request.onerror = t.unreached_func('request should succeed');
+ request.onsuccess = t.step_func(() => {
+ assert_true(transaction1Complete);
+ assert_true(transaction2Complete);
+ transaction3Started = true;
+ });
+ transaction3.onabort = t.unreached_func('transaction3 should complete');
+ transaction3.oncomplete = t.step_func_done(() => {
+ transaction3Complete = true;
+ });
+ },
+ "Check that scope restrictions on read-write transactions are enforced.");
diff --git a/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-within-database.any.js b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-within-database.any.js
new file mode 100644
index 00000000000..10dd8b6d7ac
--- /dev/null
+++ b/tests/wpt/web-platform-tests/IndexedDB/transaction-scheduling-within-database.any.js
@@ -0,0 +1,55 @@
+// META: script=support.js
+
+indexeddb_test(
+ (t, db) => {
+ const store = db.createObjectStore('store');
+ store.put('value', 'key');
+ },
+
+ (t, db) => {
+ let transaction1GetSuccess = false;
+ let transaction2GetSuccess = false;
+
+ const onTransactionComplete = barrier_func(2, t.step_func_done(() => {
+ assert_true(transaction1GetSuccess,
+ 'transaction1 should have executed at least one request');
+ assert_true(transaction2GetSuccess,
+ 'transaction1 should have executed at least one request');
+ }));
+
+ const transaction1 = db.transaction('store', 'readonly');
+ transaction1.onabort = t.unreached_func('transaction1 should not abort');
+ transaction1.oncomplete = t.step_func(onTransactionComplete);
+
+ const transaction2 = db.transaction('store', 'readonly');
+ transaction2.onabort = t.unreached_func('transaction2 should not abort');
+ transaction2.oncomplete = t.step_func(onTransactionComplete);
+
+ // Keep both transactions alive until each has reported at least one
+ // successful operation
+
+ function doTransaction1Get() {
+ const request = transaction1.objectStore('store').get('key');
+ request.onerror = t.unreached_func('request should not fail');
+ request.onsuccess = t.step_func(() => {
+ transaction1GetSuccess = true;
+ if (!transaction2GetSuccess)
+ doTransaction1Get();
+ });
+ }
+
+ function doTransaction2Get() {
+ // NOTE: No logging since execution order is not deterministic.
+ const request = transaction2.objectStore('store').get('key');
+ request.onerror = t.unreached_func('request should not fail');
+ request.onsuccess = t.step_func(() => {
+ transaction2GetSuccess = true;
+ if (!transaction1GetSuccess)
+ doTransaction2Get();
+ });
+ }
+
+ doTransaction1Get();
+ doTransaction2Get();
+ },
+ 'Check that read-only transactions within a database can run in parallel.');
diff --git a/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py b/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py
index a14a27dadf9..f77eee8c4e9 100644
--- a/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py
+++ b/tests/wpt/web-platform-tests/client-hints/resources/sec-ch-ua.py
@@ -5,7 +5,7 @@ def main(request, response):
response.headers.set("Accept-CH-Lifetime", "10")
response.content = '''
<script>
- window.opener.postMessage({ header: "%s" }, "*");
+ window.opener.postMessage({ header: '%s' }, "*");
</script>
Sec-CH-UA: %s
''' % (ua, ua)
diff --git a/tests/wpt/web-platform-tests/common/security-features/README.md b/tests/wpt/web-platform-tests/common/security-features/README.md
index 387e68334ae..fb9a2f108f9 100644
--- a/tests/wpt/web-platform-tests/common/security-features/README.md
+++ b/tests/wpt/web-platform-tests/common/security-features/README.md
@@ -32,6 +32,7 @@ This is the overview of the project structure:
```
common/security-features/
└── tools/ - the common test generator logic
+ ├── spec.src.json
└── template/ - the test files templates
project-directory/ (e.g. referrer-policy/)
├── spec.src.json
@@ -57,7 +58,14 @@ path/to/common/security-features/tools/generate.py --spec path/to/project-direct
git add path/to/project-directory/gen/ && git commit -m "Add generated tests"
```
-This will parse the spec JSON5 (`project-directory/spec.src.json`) and determine which tests to generate (or skip) while using templates.
+This will parse the spec JSON5 files and determine which tests to generate (or skip) while using templates.
+
+- The default spec JSON5: `common/security-features/tools/spec.src.json`.
+ - Describes common configurations, such as subresource types, source context types, etc.
+- The per-project spec JSON5: `project-directory/spec.src.json`.
+ - Describes project-specific configurations, particularly those related to test generation patterns (`specification`), policy deliveries (e.g. `delivery_type`, `delivery_value`) and `expectation`.
+
+For how these two spec JSON5 files are merged, see [Sub projects](#sub-projects) section.
Note: `spec.src.json` is transitioning to JSON5 [#21710](https://github.com/web-platform-tests/wpt/issues/21710).
diff --git a/tests/wpt/web-platform-tests/common/security-features/tools/generate.py b/tests/wpt/web-platform-tests/common/security-features/tools/generate.py
index 3345d652069..057c4d81ef1 100755
--- a/tests/wpt/web-platform-tests/common/security-features/tools/generate.py
+++ b/tests/wpt/web-platform-tests/common/security-features/tools/generate.py
@@ -3,6 +3,7 @@
from __future__ import print_function
import argparse
+import collections
import copy
import json
import os
@@ -359,8 +360,14 @@ def main():
print('Error: No spec.src.json is found at %s.' % spec_directory)
return
- spec_json = util.load_spec_json(spec_filenames[0])
- for spec_filename in spec_filenames[1:]:
+ # Load the default spec JSON file, ...
+ default_spec_filename = os.path.join(util.script_directory, 'spec.src.json')
+ spec_json = collections.OrderedDict()
+ if os.path.exists(default_spec_filename):
+ spec_json = util.load_spec_json(default_spec_filename)
+
+ # ... and then make spec JSON files in subdirectories override the default.
+ for spec_filename in spec_filenames:
child_spec_json = util.load_spec_json(spec_filename)
merge_json(spec_json, child_spec_json)
diff --git a/tests/wpt/web-platform-tests/common/security-features/tools/spec.src.json b/tests/wpt/web-platform-tests/common/security-features/tools/spec.src.json
new file mode 100644
index 00000000000..7cf6a06c0f5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/common/security-features/tools/spec.src.json
@@ -0,0 +1,468 @@
+{
+ "selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s",
+ "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html",
+ "excluded_tests": [
+ {
+ "name": "Workers are same-origin only",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "subresource": [
+ "worker-classic",
+ "worker-module",
+ "sharedworker-classic",
+ "sharedworker-module"
+ ],
+ "origin": [
+ "cross-https",
+ "cross-http",
+ "cross-http-downgrade",
+ "cross-wss",
+ "cross-ws",
+ "cross-ws-downgrade"
+ ],
+ "expectation": "*"
+ },
+ {
+ "name": "Workers are same-origin only (redirects)",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": [
+ "swap-origin",
+ "swap-scheme"
+ ],
+ "subresource": [
+ "worker-classic",
+ "worker-module",
+ "sharedworker-classic",
+ "sharedworker-module"
+ ],
+ "origin": "*",
+ "expectation": "*"
+ },
+ {
+ "name": "Websockets are ws/wss-only",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "subresource": "websocket",
+ "origin": [
+ "same-https",
+ "same-http",
+ "same-http-downgrade",
+ "cross-https",
+ "cross-http",
+ "cross-http-downgrade"
+ ],
+ "expectation": "*"
+ },
+ {
+ // Redirects are intentionally forbidden in browsers:
+ // https://fetch.spec.whatwg.org/#concept-websocket-establish
+ "name": "Websockets are no-redirect only",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": [
+ "keep-origin",
+ "swap-origin",
+ "keep-scheme",
+ "swap-scheme",
+ "downgrade"
+ ],
+ "subresource": "websocket",
+ "origin": "*",
+ "expectation": "*"
+ },
+ {
+ "name": "ws/wss are websocket-only",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "subresource": [
+ "area-tag",
+ "a-tag",
+ "fetch",
+ "iframe-tag",
+ "img-tag",
+ "script-tag",
+ "sharedworker-classic",
+ "sharedworker-import-data",
+ "sharedworker-module",
+ "worker-classic",
+ "worker-import-data",
+ "worker-module",
+ "worklet-animation",
+ "worklet-animation-import-data",
+ "worklet-audio",
+ "worklet-audio-import-data",
+ "worklet-layout",
+ "worklet-layout-import-data",
+ "worklet-paint",
+ "worklet-paint-import-data",
+ "xhr"
+ ],
+ "origin": [
+ "same-wss",
+ "same-ws",
+ "same-ws-downgrade",
+ "cross-wss",
+ "cross-ws",
+ "cross-ws-downgrade"
+ ],
+ "expectation": "*"
+ }
+ ],
+ "source_context_schema": {
+ "supported_subresource": {
+ "top": "*",
+ "iframe": "*",
+ "iframe-blank": "*",
+ "srcdoc": "*",
+ "worker-classic": [
+ "xhr",
+ "fetch",
+ "websocket",
+ "worker-classic",
+ "worker-module"
+ ],
+ "worker-module": [
+ "xhr",
+ "fetch",
+ "websocket",
+ "worker-classic",
+ "worker-module"
+ ],
+ "worker-classic-data": [
+ "xhr",
+ "fetch",
+ "websocket"
+ ],
+ "worker-module-data": [
+ "xhr",
+ "fetch",
+ "websocket"
+ ],
+ "sharedworker-classic": [
+ "xhr",
+ "fetch",
+ "websocket"
+ ],
+ "sharedworker-module": [
+ "xhr",
+ "fetch",
+ "websocket"
+ ],
+ "sharedworker-classic-data": [
+ "xhr",
+ "fetch",
+ "websocket"
+ ],
+ "sharedworker-module-data": [
+ "xhr",
+ "fetch",
+ "websocket"
+ ]
+ }
+ },
+ "source_context_list_schema": {
+ // Warning: Currently, some nested patterns of contexts have different
+ // inheritance rules for different kinds of policies.
+ // For example, an HTTP(S) dedicated worker inherits parent's CSP but not
+ // parent's referrer policy, and "worker-classic" source_context_list
+ // value here reflects the referrer policy spec, not CSP.
+ // Perhaps we have to introduce separate source_context_list entries,
+ // e.g. "worker-classic-CSP" to test the same nested contexts with
+ // different policy inheritance expectations.
+ // The generated tests will be used to test/investigate the policy
+ // inheritance rules, and eventually the policy inheritance rules will
+ // be unified (https://github.com/w3ctag/design-principles/issues/111).
+ "top": {
+ "description": "Policy set by the top-level Document",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "req": {
+ "description": "Subresource request's policy should override Document's policy",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "anotherPolicy"
+ ]
+ }
+ ],
+ "subresourcePolicyDeliveries": [
+ "nonNullPolicy"
+ ]
+ },
+ "srcdoc-inherit": {
+ "description": "srcdoc iframe without its own policy should inherit parent Document's policy",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ },
+ {
+ "sourceContextType": "srcdoc"
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "srcdoc": {
+ "description": "srcdoc iframe's policy should override parent Document's policy",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "anotherPolicy"
+ ]
+ },
+ {
+ "sourceContextType": "srcdoc",
+ "policyDeliveries": [
+ "nonNullPolicy"
+ ]
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "iframe": {
+ "description": "external iframe's policy should override parent Document's policy",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "anotherPolicy"
+ ]
+ },
+ {
+ "sourceContextType": "iframe",
+ "policyDeliveries": [
+ "policy"
+ ]
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "iframe-blank-inherit": {
+ "description": "blank iframe should inherit parent Document's policy",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ },
+ {
+ "sourceContextType": "iframe-blank"
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "worker-classic": {
+ // Warning: This is incompatible with the current CSP spec,
+ // so is not applicable to upgrade-insecure-requests and mixed-content tests.
+ "description": "dedicated workers shouldn't inherit its parent's policy.",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "anotherPolicy"
+ ]
+ },
+ {
+ "sourceContextType": "worker-classic",
+ "policyDeliveries": [
+ "policy"
+ ]
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "worker-classic-data": {
+ "description": "data: dedicated workers should inherit its parent's policy.",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ },
+ {
+ "sourceContextType": "worker-classic-data",
+ "policyDeliveries": []
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "worker-module": {
+ // Warning: This is incompatible with the current CSP spec,
+ // so is not applicable to upgrade-insecure-requests and mixed-content tests.
+ "description": "dedicated workers shouldn't inherit its parent's policy.",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "anotherPolicy"
+ ]
+ },
+ {
+ "sourceContextType": "worker-module",
+ "policyDeliveries": [
+ "policy"
+ ]
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "worker-module-data": {
+ "description": "data: dedicated workers should inherit its parent's policy.",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ },
+ {
+ "sourceContextType": "worker-module-data",
+ "policyDeliveries": []
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "sharedworker-classic-data": {
+ "description": "data: shared workers should inherit its parent's policy.",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ },
+ {
+ "sourceContextType": "sharedworker-classic-data",
+ "policyDeliveries": []
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ },
+ "sharedworker-module-data": {
+ "description": "data: shared workers should inherit its parent's policy.",
+ "sourceContextList": [
+ {
+ "sourceContextType": "top",
+ "policyDeliveries": [
+ "policy"
+ ]
+ },
+ {
+ "sourceContextType": "sharedworker-module-data",
+ "policyDeliveries": []
+ }
+ ],
+ "subresourcePolicyDeliveries": []
+ }
+ },
+ "test_expansion_schema": {
+ "expansion": [
+ "default",
+ "override"
+ ],
+ "source_scheme": [
+ "http",
+ "https"
+ ],
+ "source_context_list": [
+ "top",
+ "req",
+ "srcdoc-inherit",
+ "srcdoc",
+ "iframe",
+ "iframe-blank-inherit",
+ "worker-classic",
+ "worker-classic-data",
+ "worker-module",
+ "worker-module-data",
+ "sharedworker-classic-data",
+ "sharedworker-module-data"
+ ],
+ "redirection": [
+ "no-redirect",
+ "keep-origin",
+ "swap-origin",
+ "keep-scheme",
+ "swap-scheme",
+ "downgrade"
+ ],
+ "origin": [
+ "same-https",
+ "same-http",
+ "same-http-downgrade",
+ "cross-https",
+ "cross-http",
+ "cross-http-downgrade",
+ "same-wss",
+ "same-ws",
+ "same-ws-downgrade",
+ "cross-wss",
+ "cross-ws",
+ "cross-ws-downgrade"
+ ],
+ "subresource": [
+ "a-tag",
+ "area-tag",
+ "audio-tag",
+ "beacon",
+ "fetch",
+ "iframe-tag",
+ "img-tag",
+ "link-css-tag",
+ "link-prefetch-tag",
+ "object-tag",
+ "picture-tag",
+ "script-tag",
+ "sharedworker-classic",
+ "sharedworker-import-data",
+ "sharedworker-module",
+ "video-tag",
+ "websocket",
+ "worker-classic",
+ "worker-import-data",
+ "worker-module",
+ "worklet-animation",
+ "worklet-animation-import-data",
+ "worklet-audio",
+ "worklet-audio-import-data",
+ "worklet-layout",
+ "worklet-layout-import-data",
+ "worklet-paint",
+ "worklet-paint-import-data",
+ "xhr"
+ ]
+ }
+}
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html
new file mode 100644
index 00000000000..a0646214e07
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- address type must come before field type -->
+ <input autocomplete="country shipping">
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html
new file mode 100644
index 00000000000..20b35d678f7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- empty -->
+ <input autocomplete="">
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html
new file mode 100644
index 00000000000..9d5e8a1187a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <input autocomplete="country section-blue">
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html
new file mode 100644
index 00000000000..2faa347bd28
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is valid</title>
+</head>
+<body>
+
+ <!-- country -->
+ <input autocomplete="country">
+ <input autocomplete="billing country">
+ <input autocomplete="section-blue country">
+ <input autocomplete="section-blue billing country">
+
+ <!-- cc-type -->
+ <input autocomplete="cc-type">
+ <input autocomplete="billing cc-type">
+ <input autocomplete="section-blue cc-type">
+ <input autocomplete="section-blue billing cc-type">
+
+ <!-- cc-exp-month -->
+ <input autocomplete="cc-exp-month">
+ <input autocomplete="billing cc-exp-month">
+ <input autocomplete="section-blue cc-exp-month">
+ <input autocomplete="section-blue billing cc-exp-month">
+
+ <!-- cc-exp-year -->
+ <input autocomplete="cc-exp-year">
+ <input autocomplete="billing cc-exp-year">
+ <input autocomplete="section-blue cc-exp-year">
+ <input autocomplete="section-blue billing cc-exp-year">
+ <!-- tel-country-code -->
+ <input autocomplete="work tel-country-code">
+ <input autocomplete="billing work tel-country-code">
+ <input autocomplete="section-blue work tel-country-code">
+ <input autocomplete="section-blue billing work tel-country-code">
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html
new file mode 100644
index 00000000000..544ca79dfdb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- unknown field type -->
+ <input autocomplete="qwerty">
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html
new file mode 100644
index 00000000000..2ff29bd9cc0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <input autocomplete="country work">
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/messages.json b/tests/wpt/web-platform-tests/conformance-checkers/messages.json
index 6c0e2c035e9..8e32e24ca2a 100644
--- a/tests/wpt/web-platform-tests/conformance-checkers/messages.json
+++ b/tests/wpt/web-platform-tests/conformance-checkers/messages.json
@@ -967,6 +967,11 @@
"html/elements/img/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
"html/elements/img/usemap-bad-value-novalid.html": "Bad value \u201c#\u201d for attribute \u201cusemap\u201d on element \u201cimg\u201d: Bad hash-name reference: A hash-name reference must have at least one character after \u201c#\u201d.",
"html/elements/img/width-height-negative-novalid.html": "Bad value \u201c-1\u201d for attribute \u201cwidth\u201d on element \u201cimg\u201d: Bad non-negative integer: Expected a digit but saw \u201c-\u201d instead.",
+ "html/elements/input/autocomplete-address-novalid.html": "Bad value \u201ccountry shipping\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: The token \u201cshipping\u201d must only appear as either the first token in a list of autofill detail tokens, or, if the first token is a \u201csection-*\u201d indicator, as the second token.",
+ "html/elements/input/autocomplete-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: Must not be empty.",
+ "html/elements/input/autocomplete-section-novalid.html": "Bad value \u201ccountry section-blue\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: A \u201csection-*\u201d indicator must only appear as the first token in a list of autofill detail tokens.",
+ "html/elements/input/autocomplete-token-novalid.html": "Bad value \u201cqwerty\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: The string \u201cqwerty\u201d is not a valid autofill field name.",
+ "html/elements/input/autocomplete-work-novalid.html": "Bad value \u201ccountry work\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: The token \u201cwork\u201d must only appear before any autofill field names.",
"html/elements/input/list-novalid.html": "The \u201clist\u201d attribute of the \u201cinput\u201d element must refer to a \u201cdatalist\u201d element.",
"html/elements/input/type-image-formaction-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
"html/elements/input/type-image-formaction-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
@@ -2360,6 +2365,16 @@
"html/parser/u10ffff-charref-novalid.html": "Character reference expands to an astral non-character (U+10ffff).",
"html/parser/ufffe-charref-novalid.html": "Character reference expands to a non-character (U+fffe).",
"html/parser/unassigned-charref-novalid.html": "Character reference expands to a permanently unassigned code point.",
+ "select/autocomplete-address-novalid.html": "Bad value \u201ccountry shipping\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): The token \u201cshipping\u201d must only appear as either the first token in a list of autofill detail tokens, or, if the first token is a \u201csection-*\u201d indicator, as the second token.",
+ "select/autocomplete-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): Must not be empty.",
+ "select/autocomplete-section-novalid.html": "Bad value \u201ccountry section-blue\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): A \u201csection-*\u201d indicator must only appear as the first token in a list of autofill detail tokens.",
+ "select/autocomplete-token-novalid.html": "Bad value \u201cqwerty\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): The string \u201cqwerty\u201d is not a valid autofill field name.",
+ "select/autocomplete-work-novalid.html": "Bad value \u201ccountry work\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): The token \u201cwork\u201d must only appear before any autofill field names.",
+ "textarea/autocomplete-address-novalid.html": "Bad value \u201ccountry shipping\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): The token \u201cshipping\u201d must only appear as either the first token in a list of autofill detail tokens, or, if the first token is a \u201csection-*\u201d indicator, as the second token.",
+ "textarea/autocomplete-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): Must not be empty.",
+ "textarea/autocomplete-section-novalid.html": "Bad value \u201ccountry section-blue\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): A \u201csection-*\u201d indicator must only appear as the first token in a list of autofill detail tokens.",
+ "textarea/autocomplete-token-novalid.html": "Bad value \u201cqwerty\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): The string \u201cqwerty\u201d is not a valid autofill field name.",
+ "textarea/autocomplete-work-novalid.html": "Bad value \u201ccountry work\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): The token \u201cwork\u201d must only appear before any autofill field names.",
"xhtml/attributes/accesskey/003-novalid.xhtml": "Bad value \u201ca b \u306c c \u306c\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Duplicate key label. Each key label must be unique.",
"xhtml/attributes/accesskey/004-novalid.xhtml": "Bad value \u201ca b \u307b\u3052\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Key label has multiple characters. Each key label must be a single character.",
"xhtml/attributes/data/002-novalid.xhtml": "\u201cdata-*\u201d attributes must not have characters from the range \u201cA\u201d\u2026\u201cZ\u201d in the name.",
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-address-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-address-novalid.html
new file mode 100644
index 00000000000..7e4087ab376
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-address-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- address type must come before field type -->
+ <select autocomplete="country shipping">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-empty-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-empty-novalid.html
new file mode 100644
index 00000000000..a45757df2d2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-empty-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- empty -->
+ <select autocomplete="">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-isvalid.html
new file mode 100644
index 00000000000..065b764b3d2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-isvalid.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is valid</title>
+</head>
+<body>
+
+ <select autocomplete="on"></select>
+ <select autocomplete="off"></select>
+
+ <!-- country -->
+ <select autocomplete="country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <select autocomplete="billing country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <select autocomplete="section-blue country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <select autocomplete="section-blue billing country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <!-- cc-type -->
+ <select autocomplete="cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <select autocomplete="billing cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <select autocomplete="section-blue cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <select autocomplete="section-blue billing cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <!-- cc-exp-month -->
+ <select autocomplete="cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <select autocomplete="billing cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <select autocomplete="section-blue cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <select autocomplete="section-blue billing cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <!-- cc-exp-year -->
+ <select autocomplete="cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <select autocomplete="billing cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <select autocomplete="section-blue cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <select autocomplete="section-blue billing cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <!-- tel-country-code -->
+ <select autocomplete="work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+ <select autocomplete="billing work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+ <select autocomplete="section-blue work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+ <select autocomplete="section-blue billing work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-section-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-section-novalid.html
new file mode 100644
index 00000000000..084fc2c9176
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-section-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <select autocomplete="country section-blue">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-token-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-token-novalid.html
new file mode 100644
index 00000000000..267c4d40c28
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-token-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- unknown field type -->
+ <select autocomplete="qwerty">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-work-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-work-novalid.html
new file mode 100644
index 00000000000..c26b4f8531f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/select/autocomplete-work-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <select autocomplete="country work">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-address-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-address-novalid.html
new file mode 100644
index 00000000000..1061d9a6202
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-address-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- address type must come before field type -->
+ <textarea autocomplete="country shipping">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-empty-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-empty-novalid.html
new file mode 100644
index 00000000000..d222846b4ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-empty-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- empty -->
+ <textarea autocomplete="">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-isvalid.html b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-isvalid.html
new file mode 100644
index 00000000000..23bdb9ab8fc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-isvalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is valid</title>
+</head>
+<body>
+
+ <textarea autocomplete="on"></textarea>
+ <textarea autocomplete="off"></textarea>
+
+ <!-- country -->
+ <textarea autocomplete="country">
+ </textarea>
+
+ <textarea autocomplete="billing country">
+ </textarea>
+
+ <textarea autocomplete="section-blue country">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing country">
+ </textarea>
+
+ <!-- cc-type -->
+ <textarea autocomplete="cc-type">
+ </textarea>
+
+ <textarea autocomplete="billing cc-type">
+ </textarea>
+
+ <textarea autocomplete="section-blue cc-type">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing cc-type">
+ </textarea>
+
+ <!-- cc-exp-month -->
+ <textarea autocomplete="cc-exp-month">
+ </textarea>
+
+ <textarea autocomplete="billing cc-exp-month">
+ </textarea>
+
+ <textarea autocomplete="section-blue cc-exp-month">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing cc-exp-month">
+ </textarea>
+
+ <!-- cc-exp-year -->
+ <textarea autocomplete="cc-exp-year">
+ </textarea>
+
+ <textarea autocomplete="billing cc-exp-year">
+ </textarea>
+
+ <textarea autocomplete="section-blue cc-exp-year">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing cc-exp-year">
+ </textarea>
+
+ <!-- tel-country-code -->
+ <textarea autocomplete="work tel-country-code">
+ </textarea>
+
+ <textarea autocomplete="billing work tel-country-code">
+ </textarea>
+
+ <textarea autocomplete="section-blue work tel-country-code">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing work tel-country-code">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-section-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-section-novalid.html
new file mode 100644
index 00000000000..ec1038b00f3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-section-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <textarea autocomplete="country section-blue">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-token-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-token-novalid.html
new file mode 100644
index 00000000000..761495b52de
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-token-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- unknown field type -->
+ <textarea autocomplete="qwerty">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-work-novalid.html b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-work-novalid.html
new file mode 100644
index 00000000000..6818e26c891
--- /dev/null
+++ b/tests/wpt/web-platform-tests/conformance-checkers/textarea/autocomplete-work-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <textarea autocomplete="country work">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonces.html b/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonces.html
index b023d060323..7ee10a7b29e 100644
--- a/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonces.html
+++ b/tests/wpt/web-platform-tests/content-security-policy/nonce-hiding/nonces.html
@@ -3,30 +3,62 @@
<script src="/resources/testharnessreport.js"></script>
<div id=log></div>
<script>
-[["meh", ""],
- ["div", ""],
- ["script", ""],
- ["meh", "http://www.w3.org/2000/svg"],
- ["svg", "http://www.w3.org/2000/svg"],
- ["script", "http://www.w3.org/2000/svg"]].forEach(([localName, namespace]) => {
- test(t => {
- const element = namespace === "" ? document.createElement(localName) : document.createElementNS(namespace, localName);
- t.add_cleanup(() => element.remove());
- assert_equals(element.nonce, "", "Initial IDL attribute value");
- element.setAttribute("nonce", "x");
- assert_equals(element.nonce, "x", "IDL attribute is modified after content attribute set");
- assert_equals(element.getAttribute("nonce"), "x", "Content attribute is modified after content attribute set");
- document.body.appendChild(element);
- assert_equals(element.nonce, "x", "IDL attribute is unchanged after element insertion");
- assert_equals(element.getAttribute("nonce"), "", "Content attribute is changed after element insertion");
- }, `Basic nonce tests for ${localName} in ${namespace === "" ? "HTML" : "SVG"} namespace`);
-
- test(t => {
- const element = namespace === "" ? document.createElement(localName) : document.createElementNS(namespace, localName);
- element.setAttribute("nonce", "x");
- assert_equals(element.nonce, "x", "IDL attribute is modified after content attribute set");
- element.removeAttribute("nonce");
- assert_equals(element.nonce, "", "IDL attribute is empty after content attribute removal");
- }, `Ensure that removal of content attribute does not affect IDL attribute for ${localName} in ${namespace === "" ? "HTML" : "SVG"} namespace`);
-});
+ const namespace_url= {
+ "HTML": "http://www.w3.org/1999/xhtml",
+ "SVG": "http://www.w3.org/2000/svg",
+ }
+ const test_cases = [
+ ["meh" , "HTML"],
+ ["div" , "HTML"],
+ ["script" , "HTML"],
+ ["meh" , "SVG"],
+ ["svg" , "SVG"],
+ ["script" , "SVG"],
+ ];
+
+ test_cases.forEach(([localName, namespace]) => {
+ test(t => {
+ const element = document.createElementNS(namespace_url[namespace], localName);
+ t.add_cleanup(() => element.remove());
+ assert_equals(element.nonce, "", "Initial IDL attribute value");
+ assert_equals(element.getAttribute("nonce"), null, "Initial content attribute");
+
+ element.setAttribute("nonce", "x");
+ assert_equals(element.nonce, "x", "IDL attribute is modified after content attribute set");
+ assert_equals(element.getAttribute("nonce"), "x", "Content attribute is modified after content attribute set");
+
+ document.body.appendChild(element);
+ assert_equals(element.nonce, "x", "IDL attribute is unchanged after element insertion");
+ assert_equals(element.getAttribute("nonce"), "", "Content attribute is changed after element insertion");
+ }, `Basic nonce tests for ${localName} in ${namespace} namespace`);
+
+ test(t => {
+ const element = document.createElementNS(namespace_url[namespace], localName);
+ t.add_cleanup(() => element.remove());
+ element.setAttribute("nonce", "x");
+ assert_equals(element.nonce, "x", "IDL attribute is modified after content attribute set");
+
+ element.removeAttribute("nonce");
+ assert_equals(element.nonce, "", "IDL attribute is empty after content attribute removal");
+ }, `Ensure that removal of content attribute does not affect IDL attribute for ${localName} in ${namespace} namespace`);
+
+ test(t => {
+ const element = document.createElementNS(namespace_url[namespace], localName);
+ t.add_cleanup(() => element.remove());
+ assert_equals(element.nonce, "");
+ assert_equals(element.getAttribute("nonce"), null);
+
+ element.setAttribute("nonce", "");
+ assert_equals(element.nonce, "");
+ assert_equals(element.getAttribute("nonce"), "");
+
+ document.body.appendChild(element);
+ assert_equals(element.nonce, "");
+ assert_equals(element.getAttribute("nonce"), "");
+
+ element.removeAttribute("nonce");
+ assert_equals(element.nonce, "");
+ assert_equals(element.getAttribute("nonce"), null);
+ }, `Test empty nonces for ${localName} in ${namespace} namespace`);
+ });
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative.html
new file mode 100644
index 00000000000..e6556dac4bd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative.html
@@ -0,0 +1,174 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>AnimationEffect.updateTiming() for CSS animations</title>
+<!-- TODO: Add a more specific link for this once it is specified. -->
+<link rel="help" href="https://drafts.csswg.org/css-animations-2/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testcommon.js"></script>
+<style>
+@keyframes anim-empty { }
+</style>
+<body>
+<div id="log"></div>
+<script>
+"use strict";
+
+test(t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim-empty 100s';
+
+ const animation = div.getAnimations()[0];
+ animation.effect.updateTiming({ duration: 2 * MS_PER_SEC });
+
+ div.style.animationDuration = '4s';
+ div.style.animationDelay = '6s';
+
+ assert_equals(
+ animation.effect.getTiming().duration,
+ 2 * MS_PER_SEC,
+ 'Duration should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().delay,
+ 6 * MS_PER_SEC,
+ 'Delay should be the value set by style'
+ );
+}, 'AnimationEffect.updateTiming({ duration }) causes changes to the'
+ + ' animation-duration to be ignored');
+
+// The above test covers duration (with delay as a control). The remaining
+// properties are:
+//
+// iterations - animation-iteration-count
+// direction - animation-direction
+// delay - animation-delay
+// fill - animation-fill-mode
+//
+// Which we test in two batches, overriding two properties each time and using
+// the remaining two properties as control values to check they are NOT
+// overridden.
+
+test(t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim-empty 100s';
+
+ const animation = div.getAnimations()[0];
+ animation.effect.updateTiming({ iterations: 2, direction: 'reverse' });
+
+ div.style.animationIterationCount = '4';
+ div.style.animationDirection = 'alternate';
+ div.style.animationDelay = '6s';
+ div.style.animationFillMode = 'both';
+
+ assert_equals(
+ animation.effect.getTiming().iterations,
+ 2,
+ 'Iterations should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().direction,
+ 'reverse',
+ 'Direction should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().delay,
+ 6 * MS_PER_SEC,
+ 'Delay should be the value set by style'
+ );
+ assert_equals(
+ animation.effect.getTiming().fill,
+ 'both',
+ 'Fill should be the value set by style'
+ );
+}, 'AnimationEffect.updateTiming({ iterations, direction }) causes changes to'
+ + ' the animation-iteration-count and animation-direction to be ignored');
+
+test(t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim-empty 100s';
+
+ const animation = div.getAnimations()[0];
+ animation.effect.updateTiming({ delay: 2 * MS_PER_SEC, fill: 'both' });
+
+ div.style.animationDelay = '4s';
+ div.style.animationFillMode = 'forwards';
+ div.style.animationIterationCount = '6';
+ div.style.animationDirection = 'reverse';
+
+ assert_equals(
+ animation.effect.getTiming().delay,
+ 2 * MS_PER_SEC,
+ 'Delay should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().fill,
+ 'both',
+ 'Fill should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().iterations,
+ 6,
+ 'Iterations should be the value set by style'
+ );
+ assert_equals(
+ animation.effect.getTiming().direction,
+ 'reverse',
+ 'Direction should be the value set by style'
+ );
+}, 'AnimationEffect.updateTiming({ delay, fill }) causes changes to'
+ + ' the animation-delay and animation-fill-mode to be ignored');
+
+test(t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim-empty 100s';
+
+ const animation = div.getAnimations()[0];
+ assert_throws_js(TypeError, () => {
+ animation.effect.updateTiming({ duration: 2 * MS_PER_SEC, iterations: -1 });
+ }, 'Negative iteration count should cause an error to be thrown');
+
+ div.style.animationDuration = '4s';
+
+ assert_equals(
+ animation.effect.getTiming().duration,
+ 4 * MS_PER_SEC,
+ 'Duration should be the value set by style'
+ );
+}, 'AnimationEffect.updateTiming() does override to changes from animation-*'
+ + ' properties if there is an error');
+
+test(t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim-empty 100s';
+
+ const animation = div.getAnimations()[0];
+ animation.effect.updateTiming({
+ easing: 'steps(4)',
+ endDelay: 2 * MS_PER_SEC,
+ iterationStart: 4,
+ });
+
+ div.style.animationDuration = '6s';
+ div.style.animationTimingFunction = 'ease-in';
+
+ assert_equals(
+ animation.effect.getTiming().easing,
+ 'steps(4)',
+ 'endDelay should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().endDelay,
+ 2 * MS_PER_SEC,
+ 'endDelay should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().iterationStart,
+ 4,
+ 'iterationStart should be the value set by style'
+ );
+}, 'AnimationEffect properties that do not map to animation-* properties'
+ + ' should not be changed when animation-* style is updated');
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html
index bbf35d5113a..5e2d18b5bf9 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html
@@ -128,4 +128,81 @@ promise_test(async t => {
}, 'After replacing a finished animation\'s effect with a longer one ' +
'it fires an animationstart event');
+test(t => {
+ const div = addDiv(t);
+
+ // Create custom keyframes so we can tweak them
+ const stylesheet = document.styleSheets[0];
+ const keyframes = '@keyframes anim-custom { to { left: 100px } }';
+ const ruleIndex = stylesheet.insertRule(keyframes, 0);
+ const keyframesRule = stylesheet.cssRules[ruleIndex];
+
+ t.add_cleanup(function() {
+ stylesheet.deleteRule(ruleIndex);
+ });
+
+ div.style.animation = 'anim-custom 100s';
+
+ // Replace the effect
+ const animation = div.getAnimations()[0];
+ animation.effect = new KeyframeEffect(
+ div,
+ { left: '200px' },
+ 200 * MS_PER_SEC
+ );
+
+ // Update the timing properties
+ div.style.animationDuration = '4s';
+ div.style.animationIterationCount = '6';
+ div.style.animationDirection = 'reverse';
+ div.style.animationDelay = '8s';
+ div.style.animationFillMode = 'both';
+ div.style.animationPlayState = 'paused';
+
+ // Update the keyframes
+ keyframesRule.deleteRule(0);
+ keyframesRule.appendRule('to { left: 300px }');
+
+ // Check nothing (except the play state) changed
+ assert_equals(
+ animation.effect.getTiming().duration,
+ 200 * MS_PER_SEC,
+ 'duration should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().iterations,
+ 1,
+ 'iterations should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().direction,
+ 'normal',
+ 'direction should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().delay,
+ 0,
+ 'delay should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getTiming().fill,
+ 'auto',
+ 'fill should be the value set by the API'
+ );
+ assert_equals(
+ animation.effect.getKeyframes()[0].left,
+ '200px',
+ 'keyframes should be the value set by the API'
+ );
+
+ // Unlike the other properties animation-play-state maps to the Animation
+ // not the KeyframeEffect so it should be overridden.
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'play state should be the value set by style'
+ );
+}, 'Replacing the effect of a CSSAnimation causes subsequent changes to'
+ + ' corresponding animation-* properties to be ignored');
+
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html
index 2b6e6853b41..156a1afa964 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html
@@ -16,129 +16,218 @@
<script>
'use strict';
-const getMarginLeft = cs => parseFloat(cs.marginLeft);
-
promise_test(async t => {
const div = addDiv(t);
- const cs = getComputedStyle(div);
div.style.animation = 'anim 1000s paused';
+
const animation = div.getAnimations()[0];
- assert_equals(getMarginLeft(cs), 0,
- 'Initial value of margin-left is zero');
animation.play();
await animation.ready;
await waitForNextFrame();
- assert_greater_than(getMarginLeft(cs), 0,
- 'Playing value of margin-left is greater than zero');
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Play state is running after calling play()'
+ );
+
+ // Flip the animation-play-state back and forth to check it has no effect
+
+ div.style.animationPlayState = 'running';
+ getComputedStyle(div).animationPlayState;
+ div.style.animationPlayState = 'paused';
+ getComputedStyle(div).animationPlayState;
+
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Should still be running even after flipping the animation-play-state'
+ );
}, 'play() overrides animation-play-state');
promise_test(async t => {
const div = addDiv(t);
- const cs = getComputedStyle(div);
- div.style.animation = 'anim 1000s paused';
+ div.style.animation = 'anim 100s infinite paused';
+
const animation = div.getAnimations()[0];
- assert_equals(getMarginLeft(cs), 0,
- 'Initial value of margin-left is zero');
+ animation.playbackRate = -1;
+ animation.currentTime = -1;
+ assert_throws_dom('InvalidStateError', () => {
+ animation.play();
+ }, 'Trying to play a reversed infinite animation should throw');
+
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'Animation should still be paused'
+ );
+
+ animation.playbackRate = 1;
+ div.style.animationPlayState = 'running';
+
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Changing the animation-play-state should play the animation'
+ );
+}, 'play() does NOT override the animation-play-state if there was an error');
+
+promise_test(async t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim 1000s paused';
+
+ const animation = div.getAnimations()[0];
animation.pause();
+
div.style.animationPlayState = 'running';
+ getComputedStyle(div).animationPlayState;
await animation.ready;
await waitForNextFrame();
- assert_equals(cs.animationPlayState, 'running',
- 'animation-play-state is running');
- assert_equals(getMarginLeft(cs), 0,
- 'Paused value of margin-left is zero');
+ assert_equals(animation.playState, 'paused', 'playState is paused ');
+
+ // Flip the animation-play-state back and forth to check it has no effect
+
+ div.style.animationPlayState = 'paused';
+ getComputedStyle(div).animationPlayState;
+ div.style.animationPlayState = 'running';
+ getComputedStyle(div).animationPlayState;
+
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'Should still be paused even after flipping the animation-play-state'
+ );
}, 'pause() overrides animation-play-state');
promise_test(async t => {
const div = addDiv(t);
- const cs = getComputedStyle(div);
- div.style.animation = 'anim 1000s paused';
+ div.style.animation = 'anim 100s paused';
+
const animation = div.getAnimations()[0];
- assert_equals(getMarginLeft(cs), 0,
- 'Initial value of margin-left is zero');
- animation.play();
+ animation.reverse();
- await animation.ready;
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Play state is running after calling reverse()'
+ );
- div.style.animationPlayState = 'running';
- cs.animationPlayState; // Trigger style resolution
- await waitForNextFrame();
+ // Flip the animation-play-state back and forth to check it has no effect
- assert_equals(cs.animationPlayState, 'running',
- 'animation-play-state is running');
+ div.style.animationPlayState = 'running';
+ getComputedStyle(div).animationPlayState;
div.style.animationPlayState = 'paused';
- await animation.ready;
+ getComputedStyle(div).animationPlayState;
- assert_equals(cs.animationPlayState, 'paused',
- 'animation-play-state is paused');
- const previousAnimVal = getMarginLeft(cs);
- await waitForNextFrame();
-
- assert_equals(getMarginLeft(cs), previousAnimVal,
- 'Animated value of margin-left does not change when'
- + ' paused by style');
-}, 'play() is overridden by later setting "animation-play-state: paused"');
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Should still be running even after flipping the animation-play-state'
+ );
+}, 'reverse() overrides animation-play-state when it starts playing the'
+ + ' animation');
promise_test(async t => {
const div = addDiv(t);
- const cs = getComputedStyle(div);
- div.style.animation = 'anim 1000s';
+ div.style.animation = 'anim 100s';
+
const animation = div.getAnimations()[0];
- assert_equals(getMarginLeft(cs), 0,
- 'Initial value of margin-left is zero');
+ animation.reverse();
+
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Play state is running after calling reverse()'
+ );
- // Set the specified style first. If implementations fail to
- // apply the style changes first, they will ignore the redundant
- // call to play() and fail to correctly override the pause style.
div.style.animationPlayState = 'paused';
- animation.play();
- const previousAnimVal = getMarginLeft(cs);
+ getComputedStyle(div).animationPlayState;
- await animation.ready;
- await waitForNextFrame();
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'Should be paused after changing the animation-play-state'
+ );
+}, 'reverse() does NOT override animation-play-state if the animation is'
+ + ' already running');
+
+promise_test(async t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim 100s';
+
+ const animation = div.getAnimations()[0];
+ animation.startTime = null;
+
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'Play state is paused after setting the start time to null'
+ );
+
+ // Flip the animation-play-state back and forth to check it has no effect
+
+ div.style.animationPlayState = 'paused';
+ getComputedStyle(div).animationPlayState;
+ div.style.animationPlayState = 'running';
+ getComputedStyle(div).animationPlayState;
- assert_equals(cs.animationPlayState, 'paused',
- 'animation-play-state is paused');
- assert_greater_than(getMarginLeft(cs), previousAnimVal,
- 'Playing value of margin-left is increasing');
-}, 'play() flushes pending changes to animation-play-state first');
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'Should still be paused even after flipping the animation-play-state'
+ );
+}, 'Setting the startTime to null overrides animation-play-state if the'
+ + ' animation is already running');
promise_test(async t => {
const div = addDiv(t);
- const cs = getComputedStyle(div);
- div.style.animation = 'anim 1000s paused';
+ div.style.animation = 'anim 100s paused';
+
const animation = div.getAnimations()[0];
- assert_equals(getMarginLeft(cs), 0,
- 'Initial value of margin-left is zero');
-
- // Unlike the previous test for play(), since calling pause() is sticky,
- // we'll apply it even if the underlying style also says we're paused.
- //
- // We would like to test that implementations flush styles before running
- // pause() but actually there's no style we can currently set that will
- // change the behavior of pause(). That may change in the future
- // (e.g. if we introduce animation-timeline or animation-playback-rate etc.).
- //
- // For now this just serves as a sanity check that we do the same thing
- // even if we set style before calling the API.
+ animation.startTime = document.timeline.currentTime;
+
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Play state is running after setting the start time to non-null'
+ );
+
+ // Flip the animation-play-state back and forth to check it has no effect
+
div.style.animationPlayState = 'running';
- animation.pause();
- const previousAnimVal = getMarginLeft(cs);
+ getComputedStyle(div).animationPlayState;
+ div.style.animationPlayState = 'paused';
+ getComputedStyle(div).animationPlayState;
- await animation.ready;
- await waitForNextFrame();
+ assert_equals(
+ animation.playState,
+ 'running',
+ 'Should still be running even after flipping the animation-play-state'
+ );
+}, 'Setting the startTime to non-null overrides animation-play-state if the'
+ + ' animation is paused');
+
+promise_test(async t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim 100s';
+
+ const animation = div.getAnimations()[0];
+ animation.startTime = document.timeline.currentTime;
+
+ div.style.animationPlayState = 'paused';
+ getComputedStyle(div).animationPlayState;
- assert_equals(cs.animationPlayState, 'running',
- 'animation-play-state is running');
- assert_equals(getMarginLeft(cs), previousAnimVal,
- 'Paused value of margin-left does not change');
-}, 'pause() applies pending changes to animation-play-state first');
-// (Note that we can't actually test for this; see comment above, in test-body.)
+ assert_equals(
+ animation.playState,
+ 'paused',
+ 'Should be paused after changing the animation-play-state'
+ );
+}, 'Setting the startTime to non-null does NOT override the'
+ + ' animation-play-state if the animation is already running');
promise_test(async t => {
const div = addDiv(t, { style: 'animation: anim 1000s' });
diff --git a/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html
index 591cc15a7ed..f7d767dea8c 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html
@@ -164,20 +164,6 @@
const getKeyframes = elem => elem.getAnimations()[0].effect.getKeyframes();
-const assert_frames_equal = (a, b, name) => {
- assert_equals(Object.keys(a).sort().toString(),
- Object.keys(b).sort().toString(),
- "properties on " + name);
- for (const p in a) {
- if (p === 'offset' || p === 'computedOffset') {
- assert_approx_equals(a[p], b[p], 0.00001,
- "value for '" + p + "' on " + name);
- } else {
- assert_equals(a[p], b[p], "value for '" + p + "' on " + name);
- }
- }
-};
-
// animation-timing-function values to test with, where the value
// is exactly the same as its serialization, sorted by the order
// getKeyframes() will group frames with the same easing function
@@ -221,11 +207,9 @@ test(t => {
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-simple 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease",
@@ -233,10 +217,7 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease",
color: "rgb(255, 255, 255)", composite: "auto" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for a simple'
+ ' animation');
@@ -292,11 +273,9 @@ test(t => {
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-simple-shorthand 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -306,21 +285,16 @@ test(t => {
marginBottom: "16px", marginLeft: "16px",
marginRight: "16px", marginTop: "16px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for a simple'
+ ' animation that specifies a single shorthand property');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-omit-to 100s';
div.style.color = 'rgb(255, 255, 255)';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -328,21 +302,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(255, 255, 255)" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with a 0% keyframe and no 100% keyframe');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-omit-from 100s';
div.style.color = 'rgb(255, 255, 255)';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -350,21 +319,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(0, 0, 255)" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with a 100% keyframe and no 0% keyframe');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-omit-from-to 100s';
div.style.color = 'rgb(255, 255, 255)';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 3, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -374,21 +338,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(255, 255, 255)" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with no 0% or 100% keyframe but with a 50% keyframe');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-partially-omit-to 100s';
div.style.marginTop = '250px';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -396,21 +355,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
marginTop: '250px', marginBottom: '200px' },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with a partially complete 100% keyframe (because the ' +
'!important rule is ignored)');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-different-props 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 4, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -422,21 +376,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(255, 255, 255)", marginTop: "16px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with different properties on different keyframes, all ' +
'with the same easing function');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-different-props-and-easing 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 4, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "linear", composite: "auto",
@@ -448,21 +397,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(255, 255, 255)", marginTop: "16px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with different properties on different keyframes, with ' +
'a different easing function on each');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-merge-offset 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -470,21 +414,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(255, 255, 255)", marginTop: "16px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with multiple keyframes for the same time, and all with ' +
'the same easing function');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-merge-offset-and-easing 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 3, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "steps(1)", composite: "auto",
@@ -495,21 +434,16 @@ test(t => {
color: "rgb(255, 255, 255)", fontSize: "32px", marginTop: "16px",
paddingLeft: "4px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with multiple keyframes for the same time and with ' +
'different easing functions');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-no-merge-equiv-easing 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 3, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "steps(1)", composite: "auto",
@@ -519,21 +453,16 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
marginTop: "20px", marginRight: "20px", marginBottom: "20px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for an ' +
'animation with multiple keyframes for the same time and with ' +
'different but equivalent easing functions');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-overriding 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 6, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -549,10 +478,7 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
paddingTop: "70px" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected frames for ' +
'overlapping keyframes');
@@ -561,11 +487,9 @@ test(t => {
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-filter 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -573,20 +497,15 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
filter: "blur(5px) sepia(60%) saturate(30%)" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animations with filter properties and missing keyframes');
test(t => {
const div = addDiv(t);
-
div.style.animation = 'anim-filter-drop-shadow 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -594,10 +513,7 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
filter: "drop-shadow(rgb(255, 0, 0) 50px 30px 10px)" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animation with drop-shadow of filter property');
@@ -607,14 +523,12 @@ test(t => {
test(t => {
const div = addDiv(t);
-
div.style.textShadow = '1px 1px 2px rgb(0, 0, 0), ' +
'0 0 16px rgb(0, 0, 255), ' +
'0 0 3.2px rgb(0, 0, 255)';
div.style.animation = 'anim-text-shadow 100s';
- const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
+ const frames = getKeyframes(div);
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
@@ -624,10 +538,7 @@ test(t => {
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
textShadow: "none" },
];
-
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animations with text-shadow properties and missing keyframes');
@@ -673,17 +584,13 @@ test(t => {
const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
-
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
transform: "none" },
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
transform: "translate(100px)" },
];
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animations with CSS variables as keyframe values');
@@ -693,8 +600,6 @@ test(t => {
const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
-
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
marginBottom: "0px",
@@ -707,9 +612,7 @@ test(t => {
marginRight: "100px",
marginTop: "100px" },
];
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animations with CSS variables as keyframe values in a shorthand property');
@@ -719,17 +622,13 @@ test(t => {
const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
-
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
color: "rgb(0, 0, 0)" },
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
color: "rgb(0, 255, 0)" },
];
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animations with a CSS variable which is overriden by the value in keyframe');
@@ -739,19 +638,63 @@ test(t => {
const frames = getKeyframes(div);
- assert_equals(frames.length, 2, "number of frames");
-
const expected = [
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto",
transform: "translate(100px)" },
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto",
transform: "none" },
];
- for (let i = 0; i < frames.length; i++) {
- assert_frames_equal(frames[i], expected[i], "ComputedKeyframe #" + i);
- }
+ assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +
'animations with only custom property in a keyframe');
+test(t => {
+ const div = addDiv(t);
+
+ // Add custom @keyframes rule
+ const stylesheet = document.styleSheets[0];
+ const keyframes = '@keyframes anim-custom { to { left: 100px } }';
+ const ruleIndex = stylesheet.insertRule(keyframes, 0);
+ const keyframesRule = stylesheet.cssRules[ruleIndex];
+
+ t.add_cleanup(function() {
+ stylesheet.deleteRule(ruleIndex);
+ });
+
+ div.style.animation = 'anim-custom 100s';
+
+ // Sanity check the initial result
+ let frames = getKeyframes(div);
+ assert_frames_equal(
+ frames[frames.length - 1],
+ {
+ offset: 1,
+ computedOffset: 1,
+ easing: 'ease',
+ composite: 'auto',
+ left: '100px',
+ },
+ 'Keyframes reflect the initial @keyframes rule'
+ );
+
+ // Update the @keyframes rule
+ keyframesRule.deleteRule(0);
+ keyframesRule.appendRule('to { left: 200px }');
+
+ // Check the result from getKeyframes() is updated
+ frames = getKeyframes(div);
+ assert_frames_equal(
+ frames[frames.length - 1],
+ {
+ offset: 1,
+ computedOffset: 1,
+ easing: 'ease',
+ composite: 'auto',
+ left: '200px',
+ },
+ 'Keyframes reflects the updated @keyframes rule'
+ );
+}, 'KeyframeEffect.getKeyframes() reflects changes to @keyframes rules');
+
</script>
</body>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative.html b/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative.html
new file mode 100644
index 00000000000..7d8f845413a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative.html
@@ -0,0 +1,122 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>KeyframeEffect.setKeyframes() for CSS animations</title>
+<!-- TODO: Add a more specific link for this once it is specified. -->
+<link rel="help" href="https://drafts.csswg.org/css-animations-2/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/testcommon.js"></script>
+<style>
+@keyframes anim-simple {
+ from { left: 0px }
+ to { left: 100px }
+}
+</style>
+<body>
+<div id="log"></div>
+<script>
+"use strict";
+
+// Note that the sanity check that getKeyframes() normally DOES return the
+// updated keyframes is contained in KeyframeEffect-getKeyframes.html.
+test(t => {
+ const div = addDiv(t);
+
+ // Add custom @keyframes rule
+ const stylesheet = document.styleSheets[0];
+ const keyframes = '@keyframes anim-custom { to { left: 100px } }';
+ const ruleIndex = stylesheet.insertRule(keyframes, 0);
+ const keyframesRule = stylesheet.cssRules[ruleIndex];
+
+ t.add_cleanup(function() {
+ stylesheet.deleteRule(ruleIndex);
+ });
+
+ div.style.animation = 'anim-custom 100s';
+
+ // Update the keyframes via the API
+ const animation = div.getAnimations()[0];
+ animation.effect.setKeyframes({ left: '200px' });
+
+ // Then update them via style
+ keyframesRule.deleteRule(0);
+ keyframesRule.appendRule('to { left: 300px }');
+
+ // The result should be the keyframes as set by the API, not via style.
+ const frames = animation.effect.getKeyframes();
+ assert_frames_equal(
+ frames[frames.length - 1],
+ {
+ offset: null,
+ computedOffset: 1,
+ easing: 'linear',
+ composite: 'auto',
+ left: '200px',
+ },
+ 'Keyframes reflect the value set via setKeyframes'
+ );
+}, 'KeyframeEffect.setKeyframes() causes subsequent changes to @keyframes'
+ + ' rules to be ignored');
+
+test(t => {
+ const div = addDiv(t);
+ div.style.animation = 'anim-simple 100s';
+
+ const animation = div.getAnimations()[0];
+ assert_equals(animation.effect.getKeyframes()[0].easing, 'ease');
+
+ animation.effect.setKeyframes({ left: ['200px', '300px'] });
+ assert_equals(animation.effect.getKeyframes()[0].easing, 'linear');
+
+ div.style.animationTimingFunction = 'ease-in';
+ getComputedStyle(div).animationTimingFunction;
+
+ assert_equals(
+ animation.effect.getKeyframes()[0].easing,
+ 'linear',
+ 'Easing should be the easing set by the API'
+ );
+}, 'KeyframeEffect.setKeyframes() causes subsequent changes to'
+ + ' animation-timing-function to be ignored');
+
+test(t => {
+ const div = addDiv(t);
+
+ const stylesheet = document.styleSheets[0];
+ const keyframes = '@keyframes anim-custom { to { left: 100px } }';
+ const ruleIndex = stylesheet.insertRule(keyframes, 0);
+ const keyframesRule = stylesheet.cssRules[ruleIndex];
+
+ t.add_cleanup(function() {
+ stylesheet.deleteRule(ruleIndex);
+ });
+
+ div.style.animation = 'anim-custom 100s';
+
+ // Try updating in a way that throws an error
+ const animation = div.getAnimations()[0];
+ assert_throws_js(TypeError, () => {
+ animation.effect.setKeyframes({ left: '200px', offset: 'yer' });
+ });
+
+ keyframesRule.deleteRule(0);
+ keyframesRule.appendRule('to { left: 300px }');
+
+ // The result should be the keyframes as set via style.
+ const frames = animation.effect.getKeyframes();
+ assert_frames_equal(
+ frames[frames.length - 1],
+ {
+ offset: 1,
+ computedOffset: 1,
+ easing: 'ease',
+ composite: 'auto',
+ left: '300px',
+ },
+ 'Keyframes reflect the value set via style'
+ );
+}, 'KeyframeEffect.setKeyframes() should NOT cause subsequent changes to'
+ + ' @keyframes rules to be ignored if it threw');
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js b/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js
index b4fde4b967d..7d63d2c49bc 100644
--- a/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js
+++ b/tests/wpt/web-platform-tests/css/css-animations/support/testcommon.js
@@ -36,6 +36,55 @@ function assert_time_equals_literal(actual, expected, description) {
assert_approx_equals(actual, expected, TIME_PRECISION, description);
}
+/*
+ * Compare two keyframes
+ */
+function assert_frames_equal(actual, expected, name) {
+ // TODO: Make this skip the 'composite' member when it is not specified in
+ // `expected` or when the implementation does not support it.
+ assert_array_equals(
+ Object.keys(actual).sort(),
+ Object.keys(expected).sort(),
+ `properties on ${name} should match`
+ );
+
+ for (const prop in actual) {
+ if (
+ // 'offset' can be null
+ (prop === 'offset' && typeof actual[prop] === 'number') ||
+ prop === 'computedOffset'
+ ) {
+ assert_approx_equals(
+ actual[prop],
+ expected[prop],
+ 0.00001,
+ "value for '" + prop + "' on " + name
+ );
+ } else {
+ assert_equals(
+ actual[prop],
+ expected[prop],
+ `value for '${prop}' on ${name} should match`
+ );
+ }
+ }
+}
+
+/*
+ * Compare two lists of keyframes
+ */
+function assert_frame_lists_equal(actual, expected) {
+ assert_equals(
+ actual.length,
+ expected.length,
+ 'Number of keyframes should match'
+ );
+
+ for (let i = 0; i < actual.length; i++) {
+ assert_frames_equal(actual[i], expected[i], `Keyframe #${i}`);
+ }
+}
+
/**
* Appends a div to the document body.
*
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative-ref.html
deleted file mode 100644
index fc43ebc49b5..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative-ref.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<title>Test for font-display-late-swap feature policy behavior when set to reporting</title>
-<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
-<style>
-.ahem {
- font-family: 'Ahem';
-}
-.arial {
- font-family: 'Arial';
-}
-</style>
-<p>Tests if font-display is set to optional for each option except for when it is set to fallback</p>
-<table id="container">
- <tr>
- <th>not-set</th>
- <th>auto</th>
- <th>block</th>
- <th>swap</th>
- <th>fallback</th>
- <th>optional</th>
- </tr>
- <tr>
- <td class="arial">a</td>
- <td class="arial">a</td>
- <td class="arial">a</td>
- <td class="arial">a</td>
- <td class="ahem">a</td>
- <td class="arial">a</td>
- </tr>
-</table>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html
deleted file mode 100644
index 56b040d8faf..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html class="reftest-wait">
-<title>Test for font-display-late-swap feature policy behavior when set to reporting</title>
-<link rel="help" href="https://github.com/w3c/webappsec-feature-policy/blob/master/policies/font-display-late-swap.md">
-<link rel="match" href="font-display-feature-policy-01.tentative-ref.html">
-<style>
-</style>
-<p>Tests if font-display is set to optional for each option except for when it is set to fallback</p>
-<table id="container">
- <tr>
- <th>not-set</th>
- <th>auto</th>
- <th>block</th>
- <th>swap</th>
- <th>fallback</th>
- <th>optional</th>
- </tr>
-</table>
-<script>
-const fontDisplayValues = ['', 'auto', 'block', 'swap', 'fallback', 'optional'];
-const table = document.getElementById('container');
-
-function makeFontFaceDeclaration(family, display) {
- url = '/fonts/Ahem.ttf?pipe=trickle(d1)'; // Before the swap period is over
- return '@font-face { font-family: ' + family + '; src: url("' + url + '"); font-display: ' + display + '; }';
-}
-
-window.onload = () => {
- let tr = document.createElement('tr');
- for (let display of fontDisplayValues) {
- const family = display + '-face';
- const rule = makeFontFaceDeclaration(family, display);
- document.styleSheets[0].insertRule(rule, 0);
- let td = document.createElement('td');
- td.textContent = 'a';
- td.style.fontFamily = family + ', Arial';
- tr.appendChild(td);
- }
- table.appendChild(tr);
- const timeoutMilliSec = 1500; // After the font is loaded
- setTimeout(() => {
- document.documentElement.classList.remove("reftest-wait");
- }, timeoutMilliSec);
-}
-</script>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.headers b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.headers
deleted file mode 100644
index 0c3e29db99f..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-01.tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: font-display-late-swap 'none'; \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html
deleted file mode 100644
index ff3a7f19783..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Test for font-display-late-swap feature policy set to report-only</title>
- <link rel="help" href="https://w3c.github.io/webappsec-feature-policy/#reporting">
- <script src='/resources/testharness.js'></script>
- <script src='/resources/testharnessreport.js'></script>
- <style>
- </style>
- </head>
- <body>
- <p>
- Tests if the correct number of violation reports are generated and each report corresponds to this feature.
- 4 reports should be created out of the 6 options below (reports for all except for 'fallback' and 'optional').
- </p>
- <table id="container">
- <tr>
- <th>not-set</th>
- <th>auto</th>
- <th>block</th>
- <th>swap</th>
- <th>fallback</th>
- <th>optional</th>
- </tr>
- </table>
- <script>
-const fontDisplayValues = ['', 'auto', 'block', 'swap', 'fallback', 'optional'];
-const table = document.getElementById('container');
-
-function makeFontFaceDeclaration(family, display) {
- url = '/fonts/Ahem.ttf?pipe=trickle(d1)'; // Before the swap period is over
- return '@font-face { font-family: ' + family + '; src: url("' + url + '"); font-display: ' + display + '; }';
-}
-
-window.onload = () => {
- let tr = document.createElement('tr');
- for (let display of fontDisplayValues) {
- const family = display + '-face';
- const rule = makeFontFaceDeclaration(family, display);
- document.styleSheets[0].insertRule(rule, 0);
- let td = document.createElement('td');
- td.textContent = 'a';
- td.style.fontFamily = family + ', Arial';
- tr.appendChild(td);
- }
- table.appendChild(tr);
-}
-
-let reportCounter = 4;
-let t = async_test('font-display-late-swap Report Format');
-
-let check_report_format = (reports, observer) => {
- reportCounter -= reports.length;
- for (let report of reports) {
- assert_equals(report.type, 'feature-policy-violation');
- assert_equals(report.url, document.location.href, 'Report URL');
- assert_equals(report.body.featureId, 'font-display-late-swap');
- assert_equals(report.body.disposition, 'report');
- assert_true('sourceFile' in report.body);
- assert_true('lineNumber' in report.body);
- assert_true('columnNumber' in report.body);
- }
- // Test is done when we have exactly 4 reports for the following
- // font-display values: not set, 'auto', 'block', 'swap'
- if (reportCounter == 0) t.done();
-};
-
-new ReportingObserver(t.step_func(check_report_format),
- {types: ['feature-policy-violation'], buffered: true}).observe();
- </script>
- </body>
-</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.headers
deleted file mode 100644
index e6c4898d5d3..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-report-only.tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy-Report-Only: font-display-late-swap 'none'; \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html
deleted file mode 100644
index 6f6a51a28fd..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>Test for font-display-late-swap feature policy set to reporting</title>
- <link rel="help" href="https://w3c.github.io/webappsec-feature-policy/#reporting">
- <script src='/resources/testharness.js'></script>
- <script src='/resources/testharnessreport.js'></script>
- <style>
- </style>
- </head>
- <body>
- <p>
- Tests if the correct number of violation reports are generated and each report corresponds to this feature.
- 4 reports should be created out of the 6 options below (reports for all except for 'fallback' and 'optional').
- </p>
- <table id="container">
- <tr>
- <th>not-set</th>
- <th>auto</th>
- <th>block</th>
- <th>swap</th>
- <th>fallback</th>
- <th>optional</th>
- </tr>
- </table>
- <script>
-const fontDisplayValues = ['', 'auto', 'block', 'swap', 'fallback', 'optional'];
-const table = document.getElementById('container');
-
-function makeFontFaceDeclaration(family, display) {
- url = '/fonts/Ahem.ttf?pipe=trickle(d1)'; // Before the swap period is over
- return '@font-face { font-family: ' + family + '; src: url("' + url + '"); font-display: ' + display + '; }';
-}
-
-window.onload = () => {
- let tr = document.createElement('tr');
- for (let display of fontDisplayValues) {
- const family = display + '-face';
- const rule = makeFontFaceDeclaration(family, display);
- document.styleSheets[0].insertRule(rule, 0);
- let td = document.createElement('td');
- td.textContent = 'a';
- td.style.fontFamily = family + ', Arial';
- tr.appendChild(td);
- }
- table.appendChild(tr);
-}
-
-let reportCounter = 4;
-let t = async_test('font-display-late-swap Report Format');
-
-let check_report_format = (reports, observer) => {
- reportCounter -= reports.length;
- for (let report of reports) {
- assert_equals(report.type, 'feature-policy-violation');
- assert_equals(report.url, document.location.href, 'Report URL');
- assert_equals(report.body.featureId, 'font-display-late-swap');
- assert_equals(report.body.disposition, 'enforce');
- assert_true('sourceFile' in report.body);
- assert_true('lineNumber' in report.body);
- assert_true('columnNumber' in report.body);
- }
- // Test is done when we have exactly 4 reports for the following
- // font-display values: not set, 'auto', 'block', 'swap'
- if (reportCounter == 0) t.done();
-};
-
-new ReportingObserver(t.step_func(check_report_format),
- {types: ['feature-policy-violation'], buffered: true}).observe();
- </script>
- </body>
-</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.headers b/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.headers
deleted file mode 100644
index 0c3e29db99f..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/font-display/font-display-feature-policy-reporting.tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: font-display-late-swap 'none'; \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-004.html b/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-004.html
new file mode 100644
index 00000000000..c33b1a9ee9e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-004.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Grid item placement with '&lt;integer&gt; && &lt;custom-ident&gt;' and auto repeat()</title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="Grid placement algorithm is able to select the right line when using the '<integer> && <custom-ident>' syntax and there is an auto repeat().">
+<style>
+.grid {
+ display: grid;
+ width: 300px;
+ height: 300px;
+ grid-template-columns: [foo] repeat(auto-fill, 100px [foo]);
+ grid-template-rows: repeat(auto-fill, [foo] 100px);
+}
+.grid > div {
+ grid-area: 1 foo / 1 foo;
+ background: green;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="grid">
+ <div></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-005.html b/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-005.html
new file mode 100644
index 00000000000..20d9298955f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-005.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Grid item placement with implicit named line and auto repeat()</title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="Grid placement algorithm is able to select the right line when defined implicitly with grid-template-areas.">
+<style>
+.grid {
+ display: grid;
+ width: 300px;
+ height: 300px;
+ grid-template-areas: "area";
+ grid-template-columns: repeat(auto-fill, 100px);
+ grid-template-rows: repeat(auto-fill, 100px) [area-end] 100px;
+}
+.grid > div {
+ grid-area: area;
+ background: green;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="grid">
+ <div></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-006.html b/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-006.html
new file mode 100644
index 00000000000..405858f73c5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-006.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Grid Layout Test: Grid item placement with implicit named line, '&lt;integer&gt; && &lt;custom-ident&gt;', and auto repeat()</title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<link rel="help" href="http://www.w3.org/TR/css-grid-1/#line-placement">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+<meta name="assert" content="Grid placement algorithm is able to select the right line when defined implicitly with grid-template-areas, referenced using the '<integer> && <custom-ident>' syntax, and with auto repeat().">
+<style>
+.grid {
+ display: grid;
+ width: 300px;
+ height: 300px;
+ margin-left: -100px;
+ margin-top: -100px;
+ grid-template-areas: ". ." ". foo";
+ grid-template-columns: repeat(auto-fill, 100px) [foo-start];
+ grid-template-rows: repeat(auto-fill, 100px) [foo-start];
+}
+.grid > div {
+ grid-area: 1 foo-start / 1 foo-start;
+ background: green;
+}
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div class="grid">
+ <div></div>
+</div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001-ref.html
index bbf5d374589..8cd0ef66b97 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001-ref.html
@@ -163,6 +163,45 @@ html,body {
<div style="grid-column:1"></div>
</div></div>
+<div class="grid"><div class="subgrid fill-0k">
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+</div></div>
+
+<div class="grid"><div class="subgrid fill-0l">
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+</div></div>
+
+<div class="grid"><div class="subgrid fill-0m">
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+</div></div>
+
<div class="grid"><div class="subgrid fill-1a">
<div style="grid-column:4"></div>
<div style="grid-column:4"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001.html
index e17fc8274f4..9e57028c4cc 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-001.html
@@ -37,6 +37,9 @@ html,body {
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
+.fill-0k { grid-template-columns: subgrid repeat(auto-fill, [y]) repeat(100, [z]) } /* [z] [z] [z] [z] [z] */
+.fill-0l { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) repeat(100, [z]) } /* [x] [z] [z] [z] [z] */
+.fill-0m { grid-template-columns: subgrid repeat(100, [x]) repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
@@ -195,6 +198,45 @@ html,body {
<div style="grid-column:y -5"></div>
</div></div>
+<div class="grid"><div class="subgrid fill-0k">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div>
+
+<div class="grid"><div class="subgrid fill-0l">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div>
+
+<div class="grid"><div class="subgrid fill-0m">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div>
+
<div class="grid"><div class="subgrid fill-1a">
<div style="grid-column:y 5"></div>
<div style="grid-column:y 4"></div>
@@ -402,6 +444,9 @@ html,body {
"subgrid [x] [x] [x] [x] [x]",
"subgrid [x] [x] [x] [x] [x]",
"subgrid [x] [x] [x] [x] [x]",
+ "subgrid [z] [z] [z] [z] [z]",
+ "subgrid [x] [z] [z] [z] [z]",
+ "subgrid [x] [x] [x] [x] [x]",
"subgrid [y] [z] [z] [z] [z]",
"subgrid [x] [y] [z] [z] [z]",
"subgrid [x] [x] [y] [z] [z]",
diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-002.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-002.html
index 38d0bea0d08..80980f14e9f 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-002.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-002.html
@@ -40,6 +40,9 @@ html,body {
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
+.fill-0k { grid-template-columns: subgrid repeat(auto-fill, [y]) repeat(100, [z]) } /* [z] [z] [z] [z] [z] */
+.fill-0l { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) repeat(100, [z]) } /* [x] [z] [z] [z] [z] */
+.fill-0m { grid-template-columns: subgrid repeat(100, [x]) repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
@@ -198,6 +201,45 @@ html,body {
<div style="grid-column:y -5"></div>
</div></div></div>
+<div class="grid"><div class="subgrid fill-0k"><div class="subgrid">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div></div>
+
+<div class="grid"><div class="subgrid fill-0l"><div class="subgrid">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div></div>
+
+<div class="grid"><div class="subgrid fill-0m"><div class="subgrid">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div></div>
+
<div class="grid"><div class="subgrid fill-1a"><div class="subgrid">
<div style="grid-column:y 5"></div>
<div style="grid-column:y 4"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html
index b58799bd86b..3a1d2707c37 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-003.html
@@ -45,6 +45,9 @@ html,body {
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
+.fill-0k { grid-template-columns: subgrid repeat(auto-fill, [y]) repeat(100, [z]) } /* [z] [z] [z] [z] [z] */
+.fill-0l { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) repeat(100, [z]) } /* [x] [z] [z] [z] [z] */
+.fill-0m { grid-template-columns: subgrid repeat(100, [x]) repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
@@ -204,6 +207,45 @@ html,body {
<div style="grid-row:y -5"></div>
</div></div></div>
+<div class="grid"><div class="subgrid fill-0k"><div class="subgrid">
+ <div style="grid-row:y 5"></div>
+ <div style="grid-row:y 4"></div>
+ <div style="grid-row:y 3"></div>
+ <div style="grid-row:y 2"></div>
+ <div style="grid-row:y 1"></div>
+ <div style="grid-row:y -1"></div>
+ <div style="grid-row:y -2"></div>
+ <div style="grid-row:y -3"></div>
+ <div style="grid-row:y -4"></div>
+ <div style="grid-row:y -5"></div>
+</div></div></div>
+
+<div class="grid"><div class="subgrid fill-0l"><div class="subgrid">
+ <div style="grid-row:y 5"></div>
+ <div style="grid-row:y 4"></div>
+ <div style="grid-row:y 3"></div>
+ <div style="grid-row:y 2"></div>
+ <div style="grid-row:y 1"></div>
+ <div style="grid-row:y -1"></div>
+ <div style="grid-row:y -2"></div>
+ <div style="grid-row:y -3"></div>
+ <div style="grid-row:y -4"></div>
+ <div style="grid-row:y -5"></div>
+</div></div></div>
+
+<div class="grid"><div class="subgrid fill-0m"><div class="subgrid">
+ <div style="grid-row:y 5"></div>
+ <div style="grid-row:y 4"></div>
+ <div style="grid-row:y 3"></div>
+ <div style="grid-row:y 2"></div>
+ <div style="grid-row:y 1"></div>
+ <div style="grid-row:y -1"></div>
+ <div style="grid-row:y -2"></div>
+ <div style="grid-row:y -3"></div>
+ <div style="grid-row:y -4"></div>
+ <div style="grid-row:y -5"></div>
+</div></div></div>
+
<div class="grid"><div class="subgrid fill-1a"><div class="subgrid">
<div style="grid-row:y 5"></div>
<div style="grid-row:y 4"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004-ref.html
index 07ba960200b..ca2729fa3f2 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004-ref.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004-ref.html
@@ -163,6 +163,45 @@ html,body {
<div style="grid-column:1"></div>
</div></div>
+<div class="grid"><div class="subgrid fill-0k">
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+</div></div>
+
+<div class="grid"><div class="subgrid fill-0l">
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+</div></div>
+
+<div class="grid"><div class="subgrid fill-0m">
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:4"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+ <div style="grid-column:1"></div>
+</div></div>
+
<div class="grid"><div class="subgrid fill-1a">
<div style="grid-column:4"></div>
<div style="grid-column:4"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004.html b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004.html
index beacff588a2..9dd8f33eb9b 100644
--- a/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004.html
+++ b/tests/wpt/web-platform-tests/css/css-grid/subgrid/repeat-auto-fill-004.html
@@ -40,6 +40,9 @@ html,body {
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
+.fill-0k { grid-template-columns: subgrid repeat(auto-fill, [y]) repeat(100, [z]) } /* [z] [z] [z] [z] [z] */
+.fill-0l { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) repeat(100, [z]) } /* [x] [z] [z] [z] [z] */
+.fill-0m { grid-template-columns: subgrid repeat(100, [x]) repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
@@ -198,6 +201,45 @@ html,body {
<div style="grid-column:y -5"></div>
</div></div></div>
+<div class="grid"><div class="subgrid fill-0k"><div class="subgrid">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div></div>
+
+<div class="grid"><div class="subgrid fill-0l"><div class="subgrid">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div></div>
+
+<div class="grid"><div class="subgrid fill-0m"><div class="subgrid">
+ <div style="grid-column:y 5"></div>
+ <div style="grid-column:y 4"></div>
+ <div style="grid-column:y 3"></div>
+ <div style="grid-column:y 2"></div>
+ <div style="grid-column:y 1"></div>
+ <div style="grid-column:y -1"></div>
+ <div style="grid-column:y -2"></div>
+ <div style="grid-column:y -3"></div>
+ <div style="grid-column:y -4"></div>
+ <div style="grid-column:y -5"></div>
+</div></div></div>
+
<div class="grid"><div class="subgrid fill-1a"><div class="subgrid">
<div style="grid-column:y 5"></div>
<div style="grid-column:y 4"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-000.html b/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-000.html
index 227b9148a38..cbe53855a0a 100644
--- a/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-000.html
+++ b/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-000.html
@@ -80,41 +80,43 @@
</style>
<script type="text/javascript">
- test(function(){
- let expectedForSelector = {
- "" : "margin-top: 5cm; margin-bottom: 10cm;",
- ":left" : "margin-right: 3cm;",
- ":right" : "margin-left: 3cm;",
- ":first" : "border-width: 1px;",
- "hello" : "color: green;",
- "world:right" : "background-color: green;",
- "auto_page" : "size: auto;",
- "square_page" : "size: 4in;",
- "letter_page" : "size: letter;",
- "page_width_height" : "size: 10cm 15cm;",
- "page_size_orientation" : "size: ledger landscape;",
- "page_orientation_size" : "size: a4 portrait;",
- "page_jis_size_orientation" : "size: jis-b5 portrait;",
- "page_orientation_jis_size" : "size: jis-b4 landscape;",
- "err_empty_size" : "",
- "err_unknow_page_size" : "",
- "err_length_and_page_size" : "",
- "err_length_and_orientation" : "",
- "err_orientations" : "",
- "err_too_many_params" : ""
- };
- let styleSheets = document.styleSheets;
- for (let i = 0; i < styleSheets.length; i++) {
- let rules = styleSheets[i].cssRules;
- for (let rule of rules) {
- if (rule.type == CSSRule.PAGE_RULE) {
- let expected = expectedForSelector[rule.selectorText];
+ let expectedForSelector = {
+ "" : "margin-top: 5cm; margin-bottom: 10cm;",
+ ":left" : "margin-right: 3cm;",
+ ":right" : "margin-left: 3cm;",
+ ":first" : "border-width: 1px;",
+ "hello" : "color: green;",
+ "world:right" : "background-color: green;",
+ "auto_page" : "size: auto;",
+ "square_page" : "size: 4in;",
+ "letter_page" : "size: letter;",
+ "page_width_height" : "size: 10cm 15cm;",
+ "page_size_orientation" : "size: ledger landscape;",
+ "page_orientation_size" : "size: a4 portrait;",
+ "page_jis_size_orientation" : "size: jis-b5 portrait;",
+ "page_orientation_jis_size" : "size: jis-b4 landscape;",
+ "err_empty_size" : "",
+ "err_unknow_page_size" : "",
+ "err_length_and_page_size" : "",
+ "err_length_and_orientation" : "",
+ "err_orientations" : "",
+ "err_too_many_params" : ""
+ };
+ let styleSheets = document.styleSheets;
+ for (let i = 0; i < styleSheets.length; i++) {
+ let rules = styleSheets[i].cssRules;
+ for (let rule of rules) {
+ if (rule.type == CSSRule.PAGE_RULE) {
+ let expected = expectedForSelector[rule.selectorText];
+ test(function(){
assert_equals(rule.style.cssText, expected, "unexpected @page contents");
- delete expectedForSelector[rule.selectorText];
- }
+ }, "unexpected contents for selector ['" + rule.selectorText + "']");
+ delete expectedForSelector[rule.selectorText];
}
}
+ }
+ test(function() {
assert_equals(Object.keys(expectedForSelector).length, 0, "missing @page selectors");
- }, "test CSS @page declarations");
+ });
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-001.html b/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-001.html
index e57424029ba..dc225b5abdc 100644
--- a/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-001.html
+++ b/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-001.html
@@ -27,29 +27,31 @@
</style>
<script type="text/javascript">
- test(function(){
- let expectedForSelector = {
- "" : "margin: 3cm;",
- ":first" : "margin-top: 6cm;",
- ":left" : "color: red;",
- ":right" : "color: blue;"
- };
- let styleSheets = document.styleSheets;
- for (let i = 0; i < styleSheets.length; i++) {
- let rules = styleSheets[i].cssRules;
- for (let rule of rules) {
- if (rule.type == CSSRule.MEDIA_RULE && rule.conditionText == 'print') {
- for (let mediaRule of rule.cssRules) {
- if (mediaRule.type == CSSRule.PAGE_RULE) {
- let expected = expectedForSelector[mediaRule.selectorText];
+ let expectedForSelector = {
+ "" : "margin: 3cm;",
+ ":first" : "margin-top: 6cm;",
+ ":left" : "color: red;",
+ ":right" : "color: blue;"
+ };
+ let styleSheets = document.styleSheets;
+ for (let i = 0; i < styleSheets.length; i++) {
+ let rules = styleSheets[i].cssRules;
+ for (let rule of rules) {
+ if (rule.type == CSSRule.MEDIA_RULE && rule.conditionText == 'print') {
+ for (let mediaRule of rule.cssRules) {
+ if (mediaRule.type == CSSRule.PAGE_RULE) {
+ let expected = expectedForSelector[mediaRule.selectorText];
+ test(function(){
assert_equals(mediaRule.style.cssText, expected, "unexpected @page contents");
- delete expectedForSelector[mediaRule.selectorText];
- }
+ }, "unexpected contents for selector ['" + mediaRule.selectorText + "']");
+ delete expectedForSelector[mediaRule.selectorText];
}
}
}
}
+ }
+ test(function() {
assert_equals(Object.keys(expectedForSelector).length, 0, "missing @page selectors in @media");
- }, "test @page inside a @media print rule");
+ });
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-002.html b/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-002.html
index 183072dec67..b35fa29244c 100644
--- a/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-002.html
+++ b/tests/wpt/web-platform-tests/css/css-page/page-rule-declarations-002.html
@@ -23,14 +23,12 @@
</style>
<script type="text/javascript">
- test(function(){
- test_valid_value("page", "auto");
- test_valid_value("page", "small_page");
- test_valid_value("page", "large_page");
- test_invalid_value("page", "auto small_page");
- test_invalid_value("page", "large_page auto");
- test_invalid_value("page", "small_page large_page");
- test_invalid_value("page", "1cm");
- }, "test page properties in HTML elements");
+ test_valid_value("page", "auto");
+ test_valid_value("page", "small_page");
+ test_valid_value("page", "large_page");
+ test_invalid_value("page", "auto small_page");
+ test_invalid_value("page", "large_page auto");
+ test_invalid_value("page", "small_page large_page");
+ test_invalid_value("page", "1cm");
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html
index a38bc21bde0..5ccb201082e 100644
--- a/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-transitions/CSSTransition-effect.tentative.html
@@ -179,7 +179,6 @@ promise_test(async t => {
transition.effect = new KeyframeEffect(div,
{ marginLeft: [ '0px' , '100px'] },
100 * MS_PER_SEC);
- assert_equals(transition.transitionProperty, 'left');
assert_true(transition.pending);
// As a sanity check, check that the transition actually exits the
@@ -189,4 +188,52 @@ promise_test(async t => {
}, 'After setting a new keyframe effect on a play-pending transition,'
+ ' the transition remains pending');
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+ transition.effect = null;
+
+ assert_equals(transition.transitionProperty, 'left');
+}, 'A transition with no effect still returns the original transitionProperty');
+
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+
+ // Seek to the middle and get the portion.
+ transition.currentTime = 50 * MS_PER_SEC;
+ const portion = transition.effect.getComputedTiming().progress;
+
+ // Replace the effect but keep the original timing
+ transition.effect = new KeyframeEffect(
+ div,
+ { top: ['200px', '300px', '100px'] },
+ transition.effect.getTiming()
+ );
+
+ // Reverse the transition
+ div.style.left = '0px';
+ const reversedTransition = div.getAnimations()[0];
+
+ const expectedDuration = 100 * MS_PER_SEC * portion;
+ assert_approx_equals(
+ reversedTransition.effect.getComputedTiming().activeDuration,
+ expectedDuration,
+ 1
+ );
+}, 'A transition with a replaced effect still exhibits the regular transition'
+ + ' reversing behavior');
+
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html b/tests/wpt/web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html
new file mode 100644
index 00000000000..df11c28234e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative.html
@@ -0,0 +1,117 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>KeyframeEffect.setKeyframes() for CSS transitions</title>
+<!-- TODO: Add a more specific link for this once it is specified. -->
+<link rel="help" href="https://drafts.csswg.org/css-transitions-2/#csstransition">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.js"></script>
+<div id="log"></div>
+<script>
+'use strict';
+
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+ transition.effect.setKeyframes({ left: ['200px', '300px', '100px'] });
+
+ assert_equals(getComputedStyle(div).left, '200px');
+}, 'Keyframes set using setKeyframes() are reflected in computed style for'
+ + ' a running transition');
+
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+ transition.effect.setKeyframes({ top: ['0px', '100px', '300px'] });
+
+ assert_equals(transition.transitionProperty, 'left');
+}, 'A transition with replaced keyframes still returns the original'
+ + ' transitionProperty');
+
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+ transition.effect.setKeyframes({ });
+
+ assert_equals(transition.transitionProperty, 'left');
+}, 'A transition with no keyframes still returns the original'
+ + ' transitionProperty');
+
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+
+ // Seek to the middle and get the portion.
+ //
+ // We deliberately DON'T set transition-timing-function to linear so that we
+ // can test that it is applied correctly.
+ transition.currentTime = 50 * MS_PER_SEC;
+ const portion = transition.effect.getComputedTiming().progress;
+
+ transition.effect.setKeyframes({ top: ['200px', '300px', '100px'] });
+
+ // Reverse transition
+ div.style.left = '0px';
+ const reversedTransition = div.getAnimations()[0];
+
+ const expectedDuration = 100 * MS_PER_SEC * portion;
+ assert_approx_equals(
+ reversedTransition.effect.getComputedTiming().activeDuration,
+ expectedDuration,
+ 1
+ );
+}, 'A transition with replaced keyframes still exhibits the regular transition'
+ + ' reversing behavior');
+
+test(t => {
+ const div = addDiv(t);
+
+ div.style.left = '0px';
+ getComputedStyle(div).transitionProperty;
+ div.style.transition = 'left 100s';
+ div.style.left = '100px';
+
+ const transition = div.getAnimations()[0];
+
+ transition.currentTime = 50 * MS_PER_SEC;
+ const portion = transition.effect.getComputedTiming().progress;
+
+ transition.effect.setKeyframes({ });
+
+ div.style.left = '0px';
+ const reversedTransition = div.getAnimations()[0];
+
+ const expectedDuration = 100 * MS_PER_SEC * portion;
+ assert_approx_equals(
+ reversedTransition.effect.getComputedTiming().activeDuration,
+ expectedDuration,
+ 1
+ );
+}, 'A transition with no keyframes still exhibits the regular transition'
+ + ' reversing behavior');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-with-padding-001.html b/tests/wpt/web-platform-tests/css/css-ui/outline-with-padding-001.html
deleted file mode 100644
index 716491ca25e..00000000000
--- a/tests/wpt/web-platform-tests/css/css-ui/outline-with-padding-001.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html>
-<title>Outline with padding</title>
-<link rel="match" href="reference/outline-with-padding-001-ref.html">
-<link rel="help" href="https://drafts.csswg.org/css-ui/#outline-props">
-<link rel="help" href="https://crbug.com/1048070">
-<link rel="author" href="mailto:kojii@chromium.org">
-<meta name="assert" content="Tests the rendering of outline applied to a box with padding">
-<style>
-inline-block {
- display: inline-block;
- width: 65px;
- color: transparent;
- background: orange;
-}
-</style>
-<body>
-<div style="display: flex">
- <span style="padding-left: 99px; outline: auto">
- <span>
- <inline-block>Previous</inline-block>
- </span>
- </span>
-</div>
-
-<div style="width: 50px; padding-left: 99px; outline: auto">
- <span>
- <inline-block>Previous</inline-block>
- </span>
-</div>
-</body>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/reference/outline-with-padding-001-ref.html b/tests/wpt/web-platform-tests/css/css-ui/reference/outline-with-padding-001-ref.html
deleted file mode 100644
index 62b0c41757d..00000000000
--- a/tests/wpt/web-platform-tests/css/css-ui/reference/outline-with-padding-001-ref.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<style>
-inline-block {
- display: inline-block;
- width: 65px;
- color: transparent;
- background: orange;
-}
-spacer {
- display: inline-block;
- width: 99px;
-}
-</style>
-<body>
-<div style="display: flex">
- <span style="outline: auto">
- <spacer></spacer><inline-block>Previous</inline-block>
- </span>
-</div>
-
-<div style="display: inline-block; outline: auto; white-space: nowrap;">
- <spacer></spacer><inline-block>Previous</inline-block>
-</div>
-</body>
diff --git a/tests/wpt/web-platform-tests/css/css-values/max-length-percent-001.html b/tests/wpt/web-platform-tests/css/css-values/max-length-percent-001.html
index ffb6c27db27..6d1e9ed248a 100644
--- a/tests/wpt/web-platform-tests/css/css-values/max-length-percent-001.html
+++ b/tests/wpt/web-platform-tests/css/css-values/max-length-percent-001.html
@@ -12,7 +12,15 @@ html, body { margin: 0px; padding: 0px; }
height: 200px;
background: green;
}
+#fail {
+ width: 200px;
+ height: 200px;
+ position: absolute;
+ z-index: -1;
+ background: red;
+}
</style>
<div id=parent>
+ <div id=fail></div>
<div id=target></div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-values/min-length-percent-001.html b/tests/wpt/web-platform-tests/css/css-values/min-length-percent-001.html
index 73069ecfe1e..0ffceb827a9 100644
--- a/tests/wpt/web-platform-tests/css/css-values/min-length-percent-001.html
+++ b/tests/wpt/web-platform-tests/css/css-values/min-length-percent-001.html
@@ -12,7 +12,15 @@ html, body { margin: 0px; padding: 0px; }
height: 200px;
background: green;
}
+#fail {
+ width: 200px;
+ height: 200px;
+ position: absolute;
+ z-index: -1;
+ background: red;
+}
</style>
<div id=parent>
+ <div id=fail></div>
<div id=target></div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-values/min-max-percentage-length-interpolation.html b/tests/wpt/web-platform-tests/css/css-values/min-max-percentage-length-interpolation.html
index 14af1352d17..089d6f04073 100644
--- a/tests/wpt/web-platform-tests/css/css-values/min-max-percentage-length-interpolation.html
+++ b/tests/wpt/web-platform-tests/css/css-values/min-max-percentage-length-interpolation.html
@@ -17,8 +17,17 @@
.test {
background-color: green;
- animation: anim 2000000s linear;
- animation-delay: -1000000s;
+ animation: anim 1s linear;
+ animation-delay: -.5s;
+ animation-play-state: paused;
+}
+
+.fail {
+ background: red;
+ position: absolute;
+ z-index: -1;
+ width: 100px;
+ height: 100px;
}
.container {
@@ -29,5 +38,6 @@
</style>
<p>Test passes if there is a filled green square.</p>
<div class="container">
+ <div class="fail"></div>
<div class="test"></div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html
index 84e598a8147..c0218a0899e 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-computed.html
@@ -5,16 +5,14 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="target"></div>
<div id="reference"></div>
<script>
function test_angle_equals(value, expected) {
- const reference = document.getElementById('reference');
- reference.style.transform = '';
- reference.style.transform = `rotate(${expected})`;
- const computed = getComputedStyle(reference).transform;
- test_computed_value('transform', `rotate(${value})`, computed);
+ test_math_used(`rotate(${value})`, `rotate(${expected})`,
+ {prop:'transform', base:'none',
+ msg: `${value} should be used-value-equivalent to ${expected}`});
}
// Identity tests
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-serialize.html b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-serialize.html
index 07b7d3c2b23..106d6d24111 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-angle-serialize.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-angle-serialize.html
@@ -3,37 +3,109 @@
<link rel="help" href="https://drafts.csswg.org/css-values-4/#angles">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-serialize">
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/parsing-testcommon.js"></script>
+<script src="../support/serialize-testcommon.js"></script>
+<div id=target></div>
<script>
-function test_valid_angle(value, expected) {
- test_valid_value('transform', `rotate(${value})`, `rotate(${expected})`);
+function test_serialization(t,s,c,u, {prop="transform"}={}) {
+ t = `rotate(${t})`;
+ test_specified_serialization(prop, t, `rotate(${s})`);
+ test_computed_serialization(prop, t, c);
+ if(u) test_used_serialization(prop, t, u);
}
-test_valid_angle('min(1deg)', 'min(1deg)');
-test_valid_angle('min(1rad)', 'min(1rad)');
-test_valid_angle('min(1turn)', 'min(1turn)');
-test_valid_angle('min(1grad)', 'min(1grad)');
-test_valid_angle('max(1deg)', 'max(1deg)');
-test_valid_angle('max(1rad)', 'max(1rad)');
-test_valid_angle('max(1turn)', 'max(1turn)');
-test_valid_angle('max(1grad)', 'max(1grad)');
+// Browsers aren't perfectly interoperable about how a 90deg rotation is serialized,
+// but that's not the focus of this test,
+// so just capture *whatever* the browser does and expect that.
+const rotateMatrix = (()=>{
+ const el = document.querySelector("#target");
+ el.style.transform = "rotate(90deg)";
+ const ret = getComputedStyle(el).transform;
+ el.removeAttribute('style');
+ return ret;
+})();
-test_valid_angle('min(1deg, 2deg, 3deg)', 'min(1deg, 2deg, 3deg)');
-test_valid_angle('min(3deg, 2deg, 1deg)', 'min(3deg, 2deg, 1deg)');
-test_valid_angle('min(90deg, 1.57rad, 0.25turn)', 'min(90deg, 1.57rad, 0.25turn)');
-test_valid_angle('min(0.25turn, 1.57rad, 90deg)', 'min(0.25turn, 1.57rad, 90deg)');
-test_valid_angle('max(1deg, 2deg, 3deg)', 'max(1deg, 2deg, 3deg)');
-test_valid_angle('max(3deg, 2deg, 1deg)', 'max(3deg, 2deg, 1deg)');
-test_valid_angle('max(90deg, 1.57rad, 0.25turn)', 'max(90deg, 1.57rad, 0.25turn)');
-test_valid_angle('max(0.25turn, 1.57rad, 90deg)', 'max(0.25turn, 1.57rad, 90deg)');
+test_serialization(
+ 'min(90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'min(.25turn)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'min(100grad)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(.25turn)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(100grad)',
+ 'calc(90deg)',
+ rotateMatrix);
+// No way to test 'rad' serialization without depending heavily on numeric serialization
+// and the precision used for radians...
-test_valid_angle('calc(min(1deg) + min(2deg))', 'calc(min(1deg) + min(2deg))');
-test_valid_angle('calc(max(1deg) + max(2deg))', 'calc(max(1deg) + max(2deg))');
-test_valid_angle('calc(1rad + min(1deg))', 'calc(1rad + min(1deg))');
-test_valid_angle('calc(min(1deg) + 1rad)', 'calc(1rad + min(1deg))');
-test_valid_angle('calc(1rad + max(1deg))', 'calc(1rad + max(1deg))');
-test_valid_angle('calc(max(1deg) + 1rad)', 'calc(1rad + max(1deg))');
+test_serialization(
+ 'min(90deg, 92deg, 93deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'min(93deg, 92deg, 90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'min(90deg, 1.58rad, 0.25turn)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'min(0.25turn, 1.58rad, 90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(81deg, 82deg, 90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(83deg, 82deg, 90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(90deg, 1.57rad, 0.25turn)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'max(0.25turn, 1.57rad, 90deg)',
+ 'calc(90deg)',
+ rotateMatrix);
+
+test_serialization(
+ 'calc(min(30deg) + max(60deg))',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'calc(50grad + min(45deg))',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'calc(min(45deg) + 50grad)',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'calc(50grad + max(45deg))',
+ 'calc(90deg)',
+ rotateMatrix);
+test_serialization(
+ 'calc(max(45deg) + 50grad)',
+ 'calc(90deg)',
+ rotateMatrix);
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-integer-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-integer-computed.html
index b3794acba9c..49dbe198c99 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-integer-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-integer-computed.html
@@ -5,18 +5,14 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="target"></div>
-<div id="reference"></div>
<script>
-const property = 'z-index';
-
function test_integer_equals(value, expected) {
- const reference = document.getElementById('reference');
- reference.style[property] = '';
- reference.style[property] = expected;
- const computed = getComputedStyle(reference)[property];
- test_computed_value(property, value, computed);
+ test_math_used(value, expected,
+ {base: '123',
+ prop: 'z-index'}
+ );
}
// Identity tests
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-length-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-length-computed.html
index 2d6e24e5194..f2444306230 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-length-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-length-computed.html
@@ -5,20 +5,15 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="container" style="font-size: 20px">
<div id="target"></div>
- <div id="reference"></div>
</div>
<script>
const property = 'letter-spacing';
-function test_length_equals(value, expected, titleExtra) {
- const reference = document.getElementById('reference');
- reference.style[property] = '';
- reference.style[property] = expected;
- const computed = getComputedStyle(reference)[property];
- test_computed_value(property, value, computed, titleExtra);
+function test_length_equals(value, expected, msgExtra) {
+ test_math_used(value, expected, {msgExtra});
}
// Identity tests
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-computed.html
index acd0f2b31bb..9788fa26df6 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-computed.html
@@ -5,80 +5,70 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="container" style="font-size: 20px; width: 400px">
<div id="target"></div>
- <div id="reference"></div>
</div>
<script>
-const property = 'margin-left';
-
-function test_length_percent_equals(value, expected, titleExtra) {
- const reference = document.getElementById('reference');
- reference.style[property] = '';
- reference.style[property] = expected;
- const computed = getComputedStyle(reference)[property];
- test_computed_value(property, value, computed, titleExtra);
-}
// Identity tests
-test_length_percent_equals('min(1px + 1%)', 'calc(1px + 1%)');
-test_length_percent_equals('min(1cm + 1%)', 'calc(1cm + 1%)');
-test_length_percent_equals('min(1mm + 1%)', 'calc(1mm + 1%)');
-test_length_percent_equals('min(1Q + 1%)', 'calc(1Q + 1%)');
-test_length_percent_equals('min(1in + 1%)', 'calc(1in + 1%)');
-test_length_percent_equals('min(1pc + 1%)', 'calc(1pc + 1%)');
-test_length_percent_equals('min(1pt + 1%)', 'calc(1pt + 1%)');
-test_length_percent_equals('min(1em + 1%)', 'calc(1em + 1%)');
-test_length_percent_equals('min(1ex + 1%)', 'calc(1ex + 1%)');
-test_length_percent_equals('min(1ch + 1%)', 'calc(1ch + 1%)');
-test_length_percent_equals('min(1rem + 1%)', 'calc(1rem + 1%)');
-test_length_percent_equals('min(1vh + 1%)', 'calc(1vh + 1%)');
-test_length_percent_equals('min(1vw + 1%)', 'calc(1vw + 1%)');
-test_length_percent_equals('min(1vmin + 1%)', 'calc(1vmin + 1%)');
-test_length_percent_equals('min(1vmax + 1%)', 'calc(1vmax + 1%)');
-test_length_percent_equals('max(1px + 1%)', 'calc(1px + 1%)');
-test_length_percent_equals('max(1cm + 1%)', 'calc(1cm + 1%)');
-test_length_percent_equals('max(1mm + 1%)', 'calc(1mm + 1%)');
-test_length_percent_equals('max(1Q + 1%)', 'calc(1Q + 1%)');
-test_length_percent_equals('max(1in + 1%)', 'calc(1in + 1%)');
-test_length_percent_equals('max(1pc + 1%)', 'calc(1pc + 1%)');
-test_length_percent_equals('max(1pt + 1%)', 'calc(1pt + 1%)');
-test_length_percent_equals('max(1em + 1%)', 'calc(1em + 1%)');
-test_length_percent_equals('max(1ex + 1%)', 'calc(1ex + 1%)');
-test_length_percent_equals('max(1ch + 1%)', 'calc(1ch + 1%)');
-test_length_percent_equals('max(1rem + 1%)', 'calc(1rem + 1%)');
-test_length_percent_equals('max(1vh + 1%)', 'calc(1vh + 1%)');
-test_length_percent_equals('max(1vw + 1%)', 'calc(1vw + 1%)');
-test_length_percent_equals('max(1vmin + 1%)', 'calc(1vmin + 1%)');
-test_length_percent_equals('max(1vmax + 1%)', 'calc(1vmax + 1%)');
+test_math_used('min(1px + 1%)', 'calc(1px + 1%)', {prop:'margin-left'});
+test_math_used('min(1cm + 1%)', 'calc(1cm + 1%)');
+test_math_used('min(1mm + 1%)', 'calc(1mm + 1%)');
+test_math_used('min(1Q + 1%)', 'calc(1Q + 1%)');
+test_math_used('min(1in + 1%)', 'calc(1in + 1%)');
+test_math_used('min(1pc + 1%)', 'calc(1pc + 1%)');
+test_math_used('min(1pt + 1%)', 'calc(1pt + 1%)');
+test_math_used('min(1em + 1%)', 'calc(1em + 1%)');
+test_math_used('min(1ex + 1%)', 'calc(1ex + 1%)');
+test_math_used('min(1ch + 1%)', 'calc(1ch + 1%)');
+test_math_used('min(1rem + 1%)', 'calc(1rem + 1%)');
+test_math_used('min(1vh + 1%)', 'calc(1vh + 1%)');
+test_math_used('min(1vw + 1%)', 'calc(1vw + 1%)');
+test_math_used('min(1vmin + 1%)', 'calc(1vmin + 1%)');
+test_math_used('min(1vmax + 1%)', 'calc(1vmax + 1%)');
+test_math_used('max(1px + 1%)', 'calc(1px + 1%)');
+test_math_used('max(1cm + 1%)', 'calc(1cm + 1%)');
+test_math_used('max(1mm + 1%)', 'calc(1mm + 1%)');
+test_math_used('max(1Q + 1%)', 'calc(1Q + 1%)');
+test_math_used('max(1in + 1%)', 'calc(1in + 1%)');
+test_math_used('max(1pc + 1%)', 'calc(1pc + 1%)');
+test_math_used('max(1pt + 1%)', 'calc(1pt + 1%)');
+test_math_used('max(1em + 1%)', 'calc(1em + 1%)');
+test_math_used('max(1ex + 1%)', 'calc(1ex + 1%)');
+test_math_used('max(1ch + 1%)', 'calc(1ch + 1%)');
+test_math_used('max(1rem + 1%)', 'calc(1rem + 1%)');
+test_math_used('max(1vh + 1%)', 'calc(1vh + 1%)');
+test_math_used('max(1vw + 1%)', 'calc(1vw + 1%)');
+test_math_used('max(1vmin + 1%)', 'calc(1vmin + 1%)');
+test_math_used('max(1vmax + 1%)', 'calc(1vmax + 1%)');
// Comparisons between lengths and percentages
-test_length_percent_equals('min(20px, 10%)', '20px');
-test_length_percent_equals('min(1em, 10%)', '20px');
-test_length_percent_equals('max(20px, 10%)', '40px');
-test_length_percent_equals('max(1em, 10%)', '40px');
+test_math_used('min(20px, 10%)', '20px');
+test_math_used('min(1em, 10%)', '20px');
+test_math_used('max(20px, 10%)', '40px');
+test_math_used('max(1em, 10%)', '40px');
document.getElementById('container').style.width = '100px';
-test_length_percent_equals('min(20px, 10%)', '10px', 'width=100px');
-test_length_percent_equals('min(1em, 10%)', '10px', 'width=100px');
-test_length_percent_equals('max(20px, 10%)', '20px', 'width=100px');
-test_length_percent_equals('max(1em, 10%)', '20px', 'width=100px');
+test_math_used('min(20px, 10%)', '10px', {msgExtra:'width=100px'});
+test_math_used('min(1em, 10%)', '10px', {msgExtra:'width=100px'});
+test_math_used('max(20px, 10%)', '20px', {msgExtra:'width=100px'});
+test_math_used('max(1em, 10%)', '20px', {msgExtra:'width=100px'});
document.getElementById('container').style.width = '400px';
// Comparisons between different mixings
-test_length_percent_equals('min(30px + 10%, 60px + 5%)', '70px');
-test_length_percent_equals('max(2em + 10%, 1em + 20%)', '100px');
+test_math_used('min(30px + 10%, 60px + 5%)', '70px');
+test_math_used('max(2em + 10%, 1em + 20%)', '100px');
// General calculations
-test_length_percent_equals('calc(min(1.5em, 10%) + 10px)', '40px');
-test_length_percent_equals('calc(min(1.5em, 10%) - 10px)', '20px');
-test_length_percent_equals('calc(min(1.5em, 10%) * 2)', '60px');
-test_length_percent_equals('calc(min(1.5em, 10%) / 2)', '15px');
-test_length_percent_equals('calc(max(1em, 15%) + 10px)', '70px');
-test_length_percent_equals('calc(max(1em, 15%) - 10px)', '50px');
-test_length_percent_equals('calc(max(1em, 15%) * 2)', '120px');
-test_length_percent_equals('calc(max(1em, 15%) / 2)', '30px');
-test_length_percent_equals('calc(min(1.5em, 10%) + max(1em, 15%))', '90px');
-test_length_percent_equals('calc(min(1.5em, 10%) - max(1em, 15%))', '-30px');
+test_math_used('calc(min(1.5em, 10%) + 10px)', '40px');
+test_math_used('calc(min(1.5em, 10%) - 10px)', '20px');
+test_math_used('calc(min(1.5em, 10%) * 2)', '60px');
+test_math_used('calc(min(1.5em, 10%) / 2)', '15px');
+test_math_used('calc(max(1em, 15%) + 10px)', '70px');
+test_math_used('calc(max(1em, 15%) - 10px)', '50px');
+test_math_used('calc(max(1em, 15%) * 2)', '120px');
+test_math_used('calc(max(1em, 15%) / 2)', '30px');
+test_math_used('calc(min(1.5em, 10%) + max(1em, 15%))', '90px');
+test_math_used('calc(min(1.5em, 10%) - max(1em, 15%))', '-30px');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-serialize.html b/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-serialize.html
index c353fa84907..9e215fd6874 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-serialize.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-length-percent-serialize.html
@@ -3,79 +3,117 @@
<link rel="help" href="https://drafts.csswg.org/css-values-4/#mixed-percentages">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-serialize">
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/parsing-testcommon.js"></script>
+<script src="../support/serialize-testcommon.js"></script>
+<div style="width: 100px;">
+ <div id=target></div>
+</div>
<script>
-const property = 'margin-left';
-
-function test_valid_length_percent(value, expected) {
- test_valid_value(property, value, expected);
+function test_serialization(t,s,c,u, {prop}={}) {
+ test_specified_serialization(prop || 'text-indent', t, s);
+ test_computed_serialization(prop || 'text-indent', t, c);
+ if(u) test_used_serialization(prop || 'margin-left', t, u);
}
-test_valid_length_percent('min(1px + 1%)', 'min(1% + 1px)');
-test_valid_length_percent('min(1cm + 1%)', 'min(1% + 1cm)');
-test_valid_length_percent('min(1mm + 1%)', 'min(1% + 1mm)');
-test_valid_length_percent('min(1Q + 1%)', 'min(1% + 1q)');
-test_valid_length_percent('min(1in + 1%)', 'min(1% + 1in)');
-test_valid_length_percent('min(1pc + 1%)', 'min(1% + 1pc)');
-test_valid_length_percent('min(1pt + 1%)', 'min(1% + 1pt)');
-test_valid_length_percent('min(1em + 1%)', 'min(1% + 1em)');
-test_valid_length_percent('min(1ex + 1%)', 'min(1% + 1ex)');
-test_valid_length_percent('min(1ch + 1%)', 'min(1% + 1ch)');
-test_valid_length_percent('min(1rem + 1%)', 'min(1% + 1rem)');
-test_valid_length_percent('min(1vh + 1%)', 'min(1% + 1vh)');
-test_valid_length_percent('min(1vw + 1%)', 'min(1% + 1vw)');
-test_valid_length_percent('min(1vmin + 1%)', 'min(1% + 1vmin)');
-test_valid_length_percent('min(1vmax + 1%)', 'min(1% + 1vmax)');
-test_valid_length_percent('max(1px + 1%)', 'max(1% + 1px)');
-test_valid_length_percent('max(1cm + 1%)', 'max(1% + 1cm)');
-test_valid_length_percent('max(1mm + 1%)', 'max(1% + 1mm)');
-test_valid_length_percent('max(1Q + 1%)', 'max(1% + 1q)');
-test_valid_length_percent('max(1in + 1%)', 'max(1% + 1in)');
-test_valid_length_percent('max(1pc + 1%)', 'max(1% + 1pc)');
-test_valid_length_percent('max(1pt + 1%)', 'max(1% + 1pt)');
-test_valid_length_percent('max(1em + 1%)', 'max(1% + 1em)');
-test_valid_length_percent('max(1ex + 1%)', 'max(1% + 1ex)');
-test_valid_length_percent('max(1ch + 1%)', 'max(1% + 1ch)');
-test_valid_length_percent('max(1rem + 1%)', 'max(1% + 1rem)');
-test_valid_length_percent('max(1vh + 1%)', 'max(1% + 1vh)');
-test_valid_length_percent('max(1vw + 1%)', 'max(1% + 1vw)');
-test_valid_length_percent('max(1vmin + 1%)', 'max(1% + 1vmin)');
-test_valid_length_percent('max(1vmax + 1%)', 'max(1% + 1vmax)');
+// If fully resolvable to a number, serialize to a calc() or all the way to a number.
+test_serialization(
+ 'min(1px)',
+ 'calc(1px)',
+ '1px',
+ '1px');
+test_serialization(
+ 'max(1px)',
+ 'calc(1px)',
+ '1px',
+ '1px');
-test_valid_length_percent('min(20px, 10%)', 'min(20px, 10%)');
-test_valid_length_percent('min(1em, 10%)', 'min(1em, 10%)');
-test_valid_length_percent('max(20px, 10%)', 'max(20px, 10%)');
-test_valid_length_percent('max(1em, 10%)', 'max(1em, 10%)');
-test_valid_length_percent('min(10%, 20px)', 'min(10%, 20px)');
-test_valid_length_percent('min(10%, 1em)', 'min(10%, 1em)');
-test_valid_length_percent('max(10%, 20px)', 'max(10%, 20px)');
-test_valid_length_percent('max(10%, 1em)', 'max(10%, 1em)');
+// If not, keep as the function.
+test_serialization(
+ 'min(1% + 1px)',
+ 'min(1% + 1px)',
+ 'min(1% + 1px)',
+ '2px');
+test_serialization(
+ 'min(1px + 1%)',
+ 'min(1% + 1px)',
+ 'min(1% + 1px)',
+ '2px');
+test_serialization(
+ 'max(1px + 1%)',
+ 'max(1% + 1px)',
+ 'max(1% + 1px)',
+ '2px');
-test_valid_length_percent('min(10% + 30px, 5% + 60px)', 'min(10% + 30px, 5% + 60px)')
-test_valid_length_percent('max(10% + 2em, 5% + 1em)', 'max(10% + 2em, 5% + 1em)')
+// Arguments are simplified, but not reordered.
+test_serialization(
+ 'min(20px, 10%)',
+ 'min(20px, 10%)',
+ 'min(20px, 10%)',
+ '10px');
+test_serialization(
+ 'min(1em, 10%)',
+ 'min(1em, 10%)',
+ 'min(16px, 10%)',
+ '10px');
+test_serialization(
+ 'min(10%, 20px)',
+ 'min(10%, 20px)',
+ 'min(10%, 20px)',
+ '10px');
+test_serialization(
+ 'min(10%, 1em)',
+ 'min(10%, 1em)',
+ 'min(10%, 16px)',
+ '10px');
+test_serialization(
+ 'max(20px, 10%)',
+ 'max(20px, 10%)',
+ 'max(20px, 10%)',
+ '20px');
+test_serialization(
+ 'max(1em, 10%)',
+ 'max(1em, 10%)',
+ 'max(16px, 10%)',
+ '16px');
+test_serialization(
+ 'max(10%, 20px)',
+ 'max(10%, 20px)',
+ 'max(10%, 20px)',
+ '20px');
+test_serialization(
+ 'max(10%, 1em)',
+ 'max(10%, 1em)',
+ 'max(10%, 16px)',
+ '16px');
-test_valid_length_percent('calc(min(10%) + max(1em) + min(20px))', 'calc(min(10%) + max(1em) + min(20px))');
-test_valid_length_percent('calc(max(20px) + min(1em) + max(10%))', 'calc(max(20px) + min(1em) + max(10%))');
-test_valid_length_percent('calc(max(10%) + min(1em) + max(20px))', 'calc(max(10%) + min(1em) + max(20px))');
-test_valid_length_percent('calc(min(20px) + max(1em) + min(10%))', 'calc(min(20px) + max(1em) + min(10%))');
+// Within an argument, normal sorting occurs
+test_serialization(
+ 'min(10% + 30px, 5em + 5%)',
+ 'min(10% + 30px, 5% + 5em)',
+ 'min(10% + 30px, 5% + 80px)',
+ '40px');
+test_serialization(
+ 'max(10% + 30px, 5em + 5%)',
+ 'max(10% + 30px, 5% + 5em)',
+ 'max(10% + 30px, 5% + 80px)',
+ '85px');
-test_valid_length_percent('calc(20px + min(10%))', 'calc(20px + min(10%))');
-test_valid_length_percent('calc(10% + min(20px))', 'calc(10% + min(20px))');
-test_valid_length_percent('calc(1em + min(10%))', 'calc(1em + min(10%))');
-test_valid_length_percent('calc(10% + min(1em))', 'calc(10% + min(1em))');
-test_valid_length_percent('calc(min(10%) + 20px)', 'calc(20px + min(10%))');
-test_valid_length_percent('calc(min(20px) + 10%)', 'calc(10% + min(20px))');
-test_valid_length_percent('calc(min(10%) + 1em)', 'calc(1em + min(10%))');
-test_valid_length_percent('calc(min(1em) + 10%)', 'calc(10% + min(1em))');
-test_valid_length_percent('calc(20px + max(10%))', 'calc(20px + max(10%))');
-test_valid_length_percent('calc(10% + max(20px))', 'calc(10% + max(20px))');
-test_valid_length_percent('calc(1em + max(10%))', 'calc(1em + max(10%))');
-test_valid_length_percent('calc(10% + max(1em))', 'calc(10% + max(1em))');
-test_valid_length_percent('calc(max(10%) + 20px)', 'calc(20px + max(10%))');
-test_valid_length_percent('calc(max(20px) + 10%)', 'calc(10% + max(20px))');
-test_valid_length_percent('calc(max(10%) + 1em)', 'calc(1em + max(10%))');
-test_valid_length_percent('calc(max(1em) + 10%)', 'calc(10% + max(1em))');
+// min()/max() are valid inside a calc(),
+// and retain their relative order
+test_serialization(
+ 'calc(min(10% + 1px) + max(1em + 10%) + min(10% + 20px))',
+ 'calc(min(10% + 1px) + max(10% + 1em) + min(10% + 20px))',
+ 'calc(min(10% + 1px) + max(10% + 16px) + min(10% + 20px))',
+ '67px');
+// min()/max() can be combined with plain units as well.
+// While min()/max() maintain their own ordering,
+// ordinary units will re-sort around them.
+test_serialization(
+ 'calc(1em + max(10% + 20px) + 5% + min(1em + 10%) + 10px)',
+ 'calc(5% + 1em + 10px + max(10% + 20px) + min(10% + 1em))',
+ 'calc(5% + 26px + max(10% + 20px) + min(10% + 16px))',
+ '87px');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-length-serialize.html b/tests/wpt/web-platform-tests/css/css-values/minmax-length-serialize.html
index 4b30864d234..bd00ee05885 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-length-serialize.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-length-serialize.html
@@ -5,61 +5,71 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/parsing-testcommon.js"></script>
+<script src="../support/serialize-testcommon.js"></script>
+<div style="width: 100px;">
+ <div id=target></div>
+</div>
<script>
-const property = 'letter-spacing';
-
-function test_valid_length(value, expected) {
- test_valid_value(property, value, expected);
+function test_serialization(t,s,c,u, {prop}={}) {
+ test_specified_serialization(prop || 'text-indent', t, s);
+ test_computed_serialization(prop || 'text-indent', t, c);
+ if(u) test_used_serialization(prop || 'margin-left', t, u);
}
-test_valid_length('min(1px)', 'min(1px)');
-test_valid_length('min(1cm)', 'min(1cm)');
-test_valid_length('min(1mm)', 'min(1mm)');
+test_serialization(
+ 'min(1px)',
+ 'calc(1px)',
+ '1px');
+test_serialization(
+ 'min(1in)',
+ 'calc(96px)',
+ '96px');
+test_serialization(
+ 'max(1px)',
+ 'calc(1px)',
+ '1px');
+test_serialization(
+ 'max(1in)',
+ 'calc(96px)',
+ '96px');
+
// Values are case-insensitive and serialize as lower case, for example 1Q
// serializes as 1q.
-test_valid_length('min(1Q)', 'min(1q)');
-test_valid_length('min(1in)', 'min(1in)');
-test_valid_length('min(1pc)', 'min(1pc)');
-test_valid_length('min(1pt)', 'min(1pt)');
-test_valid_length('min(1em)', 'min(1em)');
-test_valid_length('min(1ex)', 'min(1ex)');
-test_valid_length('min(1ch)', 'min(1ch)');
-test_valid_length('min(1rem)', 'min(1rem)');
-test_valid_length('min(1vh)', 'min(1vh)');
-test_valid_length('min(1vw)', 'min(1vw)');
-test_valid_length('min(1vmin)', 'min(1vmin)');
-test_valid_length('min(1vmax)', 'min(1vmax)');
-test_valid_length('max(1px)', 'max(1px)');
-test_valid_length('max(1cm)', 'max(1cm)');
-test_valid_length('max(1mm)', 'max(1mm)');
-test_valid_length('max(1Q)', 'max(1q)');
-test_valid_length('max(1in)', 'max(1in)');
-test_valid_length('max(1pc)', 'max(1pc)');
-test_valid_length('max(1pt)', 'max(1pt)');
-test_valid_length('max(1em)', 'max(1em)');
-test_valid_length('max(1ex)', 'max(1ex)');
-test_valid_length('max(1ch)', 'max(1ch)');
-test_valid_length('max(1rem)', 'max(1rem)');
-test_valid_length('max(1vh)', 'max(1vh)');
-test_valid_length('max(1vw)', 'max(1vw)');
-test_valid_length('max(1vmin)', 'max(1vmin)');
-test_valid_length('max(1vmax)', 'max(1vmax)');
+test_serialization(
+ 'min(1PX)',
+ 'calc(1px)',
+ '1px');
+
+// Arguments simplify down eagerly
+test_serialization(
+ 'min(50px, 1in + 1px)',
+ 'calc(50px)',
+ '50px');
+test_serialization(
+ 'max(50px, 1in + 1px)',
+ 'calc(97px)',
+ '97px');
-test_valid_length('min(10px, 20px, 30px)', 'min(10px, 20px, 30px)');
-test_valid_length('min(30px, 20px, 10px)', 'min(30px, 20px, 10px)');
-test_valid_length('min(20px, 1em, 10vw)', 'min(20px, 1em, 10vw)');
-test_valid_length('min(10vw, 1em, 20px)', 'min(10vw, 1em, 20px)');
-test_valid_length('max(10px, 20px, 30px)', 'max(10px, 20px, 30px)');
-test_valid_length('max(30px, 20px, 10px)', 'max(30px, 20px, 10px)');
-test_valid_length('max(20px, 1em, 10vw)', 'max(20px, 1em, 10vw)');
-test_valid_length('max(10vw, 1em, 20px)', 'max(10vw, 1em, 20px)');
+// And the entire function simplifies eagerly if possible
+test_serialization(
+ 'calc(1px + min(1in, 100px))',
+ 'calc(97px)',
+ '97px');
+test_serialization(
+ 'calc(1px + max(1in, 100px))',
+ 'calc(101px)',
+ '101px');
-test_valid_length('calc(min(10px) + max(1em) + min(10vw))', 'calc(min(10px) + max(1em) + min(10vw))');
-test_valid_length('calc(max(1em) + min(10vw) + max(10px))', 'calc(max(1em) + min(10vw) + max(10px))');
-test_valid_length('calc(10px + min(1em))', 'calc(10px + min(1em))');
-test_valid_length('calc(min(1em) + 10px)', 'calc(10px + min(1em))');
-test_valid_length('calc(10px + max(1em))', 'calc(10px + max(1em))');
-test_valid_length('calc(max(1em) + 10px)', 'calc(10px + max(1em))');
+// Computed-value units preserve min()/max() in specified values
+test_serialization(
+ 'min(1px, 1em)',
+ 'min(1px, 1em)',
+ '1px');
+test_serialization(
+ 'calc(min(1px, 1in) + max(100px + 1em, 10px + 1in) + 1px)',
+ 'calc(2px + max(1em + 100px, 106px))',
+ '118px');
+// Can't test that min()/max() are preserved in computed values with just lengths;
+// see minmax-length-percentage-serialize for tests of that.
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-number-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-number-computed.html
index 9a6e6142ea8..3a1c609e161 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-number-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-number-computed.html
@@ -5,41 +5,26 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="target"></div>
-<div id="reference"></div>
<script>
-const property = 'opacity';
-
-function test_number_equals(value, expected) {
- const reference = document.getElementById('reference');
- reference.style[property] = '';
- reference.style[property] = expected;
- const computed = getComputedStyle(reference)[property];
- test_computed_value(property, value, computed);
-}
-
// Identity tests
-test_number_equals('min(1)', '1');
-test_number_equals('max(1)', '1');
+test_math_used('min(1)', '1', {type:'number'});
+test_math_used('max(1)', '1', {type:'number'});
// Nestings
-test_number_equals('min(0.2, max(0.1, 0.15))', '0.15');
-test_number_equals('max(0.1, min(0.2, 0.15))', '0.15');
+test_math_used('min(0.2, max(0.1, 0.15))', '0.15', {type:'number'});
+test_math_used('max(0.1, min(0.2, 0.15))', '0.15', {type:'number'});
// General calculations
-test_number_equals('calc(min(0.1, 0.2) + 0.05)', '0.15');
-test_number_equals('calc(min(0.1, 0.2) - 0.05)', '0.05');
-test_number_equals('calc(min(0.1, 0.2) * 2)', '0.2');
-test_number_equals('calc(min(0.1, 0.2) / 2)', '0.05');
-test_number_equals('calc(max(0.1, 0.2) + 0.05)', '0.25');
-test_number_equals('calc(max(0.1, 0.2) - 0.05)', '0.15');
-test_number_equals('calc(max(0.1, 0.2) * 2)', '0.4');
-test_number_equals('calc(max(0.1, 0.2) / 2)', '0.1');
-test_number_equals('calc(min(0.1, 0.2) + max(0.1, 0.05))', '0.2');
-test_number_equals('calc(min(0.1, 0.2) - max(0.1, 0.05))', '0');
-
-// Mixing floats and integers
-test_number_equals('min(0, 0.5)', '0');
-test_number_equals('max(0, 0.5)', '0.5');
+test_math_used('calc(min(0.1, 0.2) + 0.05)', '0.15', {type:'number'});
+test_math_used('calc(min(0.1, 0.2) - 0.05)', '0.05', {type:'number'});
+test_math_used('calc(min(0.1, 0.2) * 2)', '0.2', {type:'number'});
+test_math_used('calc(min(0.1, 0.2) / 2)', '0.05', {type:'number'});
+test_math_used('calc(max(0.1, 0.2) + 0.05)', '0.25', {type:'number'});
+test_math_used('calc(max(0.1, 0.2) - 0.05)', '0.15', {type:'number'});
+test_math_used('calc(max(0.1, 0.2) * 2)', '0.4', {type:'number'});
+test_math_used('calc(max(0.1, 0.2) / 2)', '0.1', {type:'number'});
+test_math_used('calc(min(0.1, 0.2) + max(0.1, 0.05))', '0.2', {type:'number'});
+test_math_used('calc(min(0.1, 0.2) - max(0.1, 0.05))', '0', {type:'number'});
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-number-serialize.html b/tests/wpt/web-platform-tests/css/css-values/minmax-number-serialize.html
index e05ccc339c9..fc34f199834 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-number-serialize.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-number-serialize.html
@@ -3,27 +3,61 @@
<link rel="help" href="https://drafts.csswg.org/css-values-4/#numbers">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-serialize">
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/parsing-testcommon.js"></script>
+<script src="../support/serialize-testcommon.js"></script>
+<div id=target></div>
<script>
-function test_valid_number(value, expected) {
- test_valid_value('opacity', value, expected);
+function test_serialization(t,s,c) {
+ test_specified_serialization('opacity', t, s);
+ test_specified_serialization('transform', `scale(${t})`, `scale(calc(${c}))`);
+ test_computed_serialization('opacity', t, c);
+ test_computed_serialization('transform', `scale(${t})`, `matrix(${c}, 0, 0, ${c}, 0, 0)`);
}
-test_valid_number('min(1)', 'min(1)');
-test_valid_number('max(1)', 'max(1)');
+test_serialization(
+ 'min(.1)',
+ 'calc(0.1)',
+ '0.1');
+test_serialization(
+ 'max(.1)',
+ 'calc(0.1)',
+ '0.1');
-test_valid_number('min(1, 2, 3)', 'min(1, 2, 3)');
-test_valid_number('min(3, 2, 1)', 'min(3, 2, 1)');
-test_valid_number('max(1, 2, 3)', 'max(1, 2, 3)');
-test_valid_number('max(3, 2, 1)', 'max(3, 2, 1)');
+test_serialization(
+ 'min(.1, .2, .3)',
+ 'calc(0.1)',
+ '0.1');
+test_serialization(
+ 'max(.1, .2, .3)',
+ 'calc(0.3)',
+ '0.3');
-test_valid_number('calc(min(1) + min(2))', 'calc(min(1) + min(2))');
-test_valid_number('calc(max(1) + max(2))', 'calc(max(1) + max(2))');
-test_valid_number('calc(1 + min(1))', 'calc(1 + min(1))');
-test_valid_number('calc(min(1) + 1)', 'calc(1 + min(1))');
-test_valid_number('calc(1 + max(1))', 'calc(1 + max(1))');
-test_valid_number('calc(max(1) + 1)', 'calc(1 + max(1))');
+test_serialization(
+ 'min(.3, .2, .1)',
+ 'calc(0.1)',
+ '0.1');
+test_serialization(
+ 'max(.3, .2, .1)',
+ 'calc(0.3)',
+ '0.3');
+test_serialization(
+ 'calc(min(.1) + min(.2))',
+ 'calc(0.3)',
+ '0.3');
+test_serialization(
+ 'calc(max(.1) + max(.2))',
+ 'calc(0.3)',
+ '0.3');
+
+test_serialization(
+ 'calc(.1 + min(.1))',
+ 'calc(0.2)',
+ '0.2');
+test_serialization(
+ 'calc(max(.1) + .1)',
+ 'calc(0.2)',
+ '0.2');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-computed.html
index 9f9d0a59d12..8775a280f1a 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-computed.html
@@ -5,39 +5,29 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="container" style="width: 400px">
<div id="target"></div>
- <div id="reference"></div>
</div>
<script>
-const property = 'margin-left';
-
-function test_percentage_equals(value, expected) {
- const reference = document.getElementById('reference');
- reference.style[property] = '';
- reference.style[property] = expected;
- const computed = getComputedStyle(reference)[property];
- test_computed_value(property, value, computed);
-}
// Identity tests
-test_percentage_equals('min(1%)', '1%');
-test_percentage_equals('max(1%)', '1%');
+test_math_used('min(1%)', '1%');
+test_math_used('max(1%)', '1%');
// Nestings
-test_percentage_equals('min(20%, max(10%, 15%))', '15%');
-test_percentage_equals('max(10%, min(20%, 15%))', '15%');
+test_math_used('min(20%, max(10%, 15%))', '15%');
+test_math_used('max(10%, min(20%, 15%))', '15%');
// General calculations
-test_percentage_equals('calc(min(10%, 20%) + 5%)', '15%');
-test_percentage_equals('calc(min(10%, 20%) - 5%)', '5%');
-test_percentage_equals('calc(min(10%, 20%) * 2)', '20%');
-test_percentage_equals('calc(min(10%, 20%) / 2)', '5%');
-test_percentage_equals('calc(max(10%, 20%) + 5%)', '25%');
-test_percentage_equals('calc(max(10%, 20%) - 5%)', '15%');
-test_percentage_equals('calc(max(10%, 20%) * 2)', '40%');
-test_percentage_equals('calc(max(10%, 20%) / 2)', '10%');
-test_percentage_equals('calc(min(10%, 20%) + max(10%, 5%))', '20%');
-test_percentage_equals('calc(min(10%, 20%) - max(10%, 5%))', '0%');
+test_math_used('calc(min(10%, 20%) + 5%)', '15%');
+test_math_used('calc(min(10%, 20%) - 5%)', '5%');
+test_math_used('calc(min(10%, 20%) * 2)', '20%');
+test_math_used('calc(min(10%, 20%) / 2)', '5%');
+test_math_used('calc(max(10%, 20%) + 5%)', '25%');
+test_math_used('calc(max(10%, 20%) - 5%)', '15%');
+test_math_used('calc(max(10%, 20%) * 2)', '40%');
+test_math_used('calc(max(10%, 20%) / 2)', '10%');
+test_math_used('calc(min(10%, 20%) + max(10%, 5%))', '20%');
+test_math_used('calc(min(10%, 20%) - max(10%, 5%))', '0%');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-serialize.html b/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-serialize.html
index 79624be529e..f1cb5081a6d 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-serialize.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-percentage-serialize.html
@@ -3,27 +3,70 @@
<link rel="help" href="https://drafts.csswg.org/css-values-4/#percentages">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-serialize">
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/parsing-testcommon.js"></script>
+<script src="../support/serialize-testcommon.js"></script>
+<div style="width: 100px;">
+ <div id=target></div>
+</div>
<script>
-function test_valid_percentage(value, expected) {
- test_valid_value('margin-left', value, expected);
+function test_serialization(t,s,c,u, {prop}={}) {
+ test_specified_serialization(prop || 'text-indent', t,s);
+ test_computed_serialization(prop || 'text-indent', t,c);
+ if(u) test_used_serialization(prop || 'margin-left', t,u);
}
-test_valid_percentage('min(1%)', 'min(1%)');
-test_valid_percentage('max(1%)', 'max(1%)');
+test_serialization(
+ 'min(1%)',
+ 'calc(1%)',
+ '1%',
+ '1px');
+test_serialization(
+ 'max(1%)',
+ 'calc(1%)',
+ '1%',
+ '1px');
-test_valid_percentage('min(1%, 2%, 3%)', 'min(1%, 2%, 3%)');
-test_valid_percentage('min(3%, 2%, 1%)', 'min(3%, 2%, 1%)');
-test_valid_percentage('max(1%, 2%, 3%)', 'max(1%, 2%, 3%)');
-test_valid_percentage('max(3%, 2%, 1%)', 'max(3%, 2%, 1%)');
-test_valid_percentage('calc(min(1%) + min(2%))', 'calc(min(1%) + min(2%))');
-test_valid_percentage('calc(max(1%) + max(2%))', 'calc(max(1%) + max(2%))');
-test_valid_percentage('calc(1% + min(1%))', 'calc(1% + min(1%))');
-test_valid_percentage('calc(min(1%) + 1%)', 'calc(1% + min(1%))');
-test_valid_percentage('calc(1% + max(1%))', 'calc(1% + max(1%))');
-test_valid_percentage('calc(max(1%) + 1%)', 'calc(1% + max(1%))');
+// %s can't be simplified until we resolve them,
+// since in some cases they can resolve against a negative value
+// (so that 20% is less than 10%),
+// and we don't want to try and distinguish between the properties
+// where the resolving value is possibly-negative or always non-negative.
+test_serialization(
+ 'min(1%, 2%, 3%)',
+ 'min(1%, 2%, 3%)',
+ 'min(1%, 2%, 3%)',
+ '1px');
+test_serialization(
+ 'min(3%, 2%, 1%)',
+ 'min(3%, 2%, 1%)',
+ 'min(3%, 2%, 1%)',
+ '1px');
+test_serialization(
+ 'max(1%, 2%, 3%)',
+ 'max(1%, 2%, 3%)',
+ 'max(1%, 2%, 3%)',
+ '3px');
+test_serialization(
+ 'max(3%, 2%, 1%)',
+ 'max(3%, 2%, 1%)',
+ 'max(3%, 2%, 1%)',
+ '3px');
+
+// Also ensure that this works against a possibly-negative resolving value...
+test_serialization(
+ 'min(1%, 2%, 3%) 0px',
+ 'min(1%, 2%, 3%) 0px',
+ 'min(1%, 2%, 3%) 0px',
+ '',
+ {prop:'background-position'});
+
+test_serialization(
+ 'calc(min(1%, 2%) + max(3%, 4%) + 10%)',
+ 'calc(15%)',
+ '15%',
+ '15px');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-time-computed.html b/tests/wpt/web-platform-tests/css/css-values/minmax-time-computed.html
index 36bcf601eb8..47f70ed0181 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-time-computed.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-time-computed.html
@@ -5,18 +5,11 @@
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/computed-testcommon.js"></script>
+<script src="../support/numeric-testcommon.js"></script>
<div id="target"></div>
-<div id="reference"></div>
<script>
-const property = 'transition-delay';
-
-function test_time_equals(value, expected) {
- const reference = document.getElementById('reference');
- reference.style[property] = '';
- reference.style[property] = expected;
- const computed = getComputedStyle(reference)[property];
- test_computed_value(property, value, computed);
+function test_time_equals(t,e) {
+ test_math_used(t, e, {type:"time"});
}
// Identity tests
@@ -50,4 +43,6 @@ test_time_equals('calc(max(0.5s, 400ms) * 2)', '1s');
test_time_equals('calc(max(0.5s, 400ms) / 2)', '0.25s');
test_time_equals('calc(min(0.5s, 600ms) + max(500ms, 0.4s))', '1s');
test_time_equals('calc(min(0.5s, 600ms) - max(500ms, 0.4s))', '0s');
+test_time_equals('min(1s + 100ms, 500ms * 3)', '1.1s');
+test_time_equals('calc(min(1s, 2s) + max(3s, 4s) + 10s)', '15s');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/minmax-time-serialize.html b/tests/wpt/web-platform-tests/css/css-values/minmax-time-serialize.html
index d7dd4edb588..27d09cfa28b 100644
--- a/tests/wpt/web-platform-tests/css/css-values/minmax-time-serialize.html
+++ b/tests/wpt/web-platform-tests/css/css-values/minmax-time-serialize.html
@@ -3,36 +3,62 @@
<link rel="help" href="https://drafts.csswg.org/css-values-4/#time">
<link rel="help" href="https://drafts.csswg.org/css-values-4/#calc-serialize">
<link rel="author" title="Xiaocheng Hu" href="mailto:xiaochengh@chromium.org">
+<link rel="author" title="Tab Atkins-Bittner" href="https://xanthir.com/contact">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
-<script src="../support/parsing-testcommon.js"></script>
+<script src="../support/serialize-testcommon.js"></script>
+<div id=target></div>
<script>
-function test_valid_time(value, expected) {
- test_valid_value('transition-delay', value, expected);
+function test_serialization(t,s,c,u, {prop="transition-delay"}={}) {
+ test_specified_serialization(prop, t, s);
+ test_computed_serialization(prop, t, c);
+ if(u) test_used_serialization(prop, t, u);
}
-test_valid_time('min(1ms)', 'min(1ms)');
-test_valid_time('min(1s)', 'min(1s)');
-test_valid_time('max(1ms)', 'max(1ms)');
-test_valid_time('max(1s)', 'max(1s)');
+test_serialization(
+ 'min(1ms)',
+ 'calc(0.001s)',
+ '0.001s');
+test_serialization(
+ 'min(1s)',
+ 'calc(1s)',
+ '1s');
+test_serialization(
+ 'max(1ms)',
+ 'calc(0.001s)',
+ '0.001s');
+test_serialization(
+ 'max(1s)',
+ 'calc(1s)',
+ '1s');
-test_valid_time('min(1ms, 2ms, 3ms)', 'min(1ms, 2ms, 3ms)');
-test_valid_time('min(3ms, 2ms, 1ms)', 'min(3ms, 2ms, 1ms)');
-test_valid_time('max(1ms, 2ms, 3ms)', 'max(1ms, 2ms, 3ms)');
-test_valid_time('max(3ms, 2ms, 1ms)', 'max(3ms, 2ms, 1ms)');
-test_valid_time('min(1000ms, 1s)', 'min(1000ms, 1s)');
-test_valid_time('min(1s, 1000ms)', 'min(1s, 1000ms)');
-test_valid_time('max(1000ms, 1s)', 'max(1000ms, 1s)');
-test_valid_time('max(1s, 1000ms)', 'max(1s, 1000ms)');
-
-test_valid_time('calc(min(1s) + min(2s))', 'calc(min(1s) + min(2s))');
-test_valid_time('calc(min(2s) + min(1s))', 'calc(min(2s) + min(1s))');
-test_valid_time('calc(max(1s) + max(2s))', 'calc(max(1s) + max(2s))');
-test_valid_time('calc(max(2s) + max(1s))', 'calc(max(2s) + max(1s))');
-
-test_valid_time('calc(1s + min(2s))', 'calc(1s + min(2s))');
-test_valid_time('calc(min(2s) + 1s)', 'calc(1s + min(2s))');
-test_valid_time('calc(1s + max(2s))', 'calc(1s + max(2s))');
-test_valid_time('calc(max(2s) + 1s)', 'calc(1s + max(2s))');
+test_serialization(
+ 'min(1s, 2s, 3s)',
+ 'calc(1s)',
+ '1s');
+test_serialization(
+ 'min(3s, 2s, 1s)',
+ 'calc(1s)',
+ '1s');
+test_serialization(
+ 'max(1s, 2s, 3s)',
+ 'calc(3s)',
+ '3s');
+test_serialization(
+ 'max(3s, 2s, 1s)',
+ 'calc(3s)',
+ '3s');
+test_serialization(
+ 'min(900ms, 1s)',
+ 'calc(0.9s)',
+ '0.9s');
+test_serialization(
+ 'max(1100ms, 1s)',
+ 'calc(1.1s)',
+ '1.1s');
+test_serialization(
+ 'calc(min(1s, 2s) + max(3s, 4s) + 10s)',
+ 'calc(15s)',
+ '15s');
</script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/round-function.html b/tests/wpt/web-platform-tests/css/css-values/round-function.html
index 236b9a9a8a3..b1e950efe72 100644
--- a/tests/wpt/web-platform-tests/css/css-values/round-function.html
+++ b/tests/wpt/web-platform-tests/css/css-values/round-function.html
@@ -1,5 +1,6 @@
<!doctype html>
<title>round() function</title>
+<meta charset=utf-8>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../support/numeric-testcommon.js"></script>
diff --git a/tests/wpt/web-platform-tests/css/css-values/update-subpixel-rem-unit.html b/tests/wpt/web-platform-tests/css/css-values/update-subpixel-rem-unit.html
new file mode 100644
index 00000000000..98d4f00f92a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-values/update-subpixel-rem-unit.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<html style="font-size:16px">
+<head>
+ <title>CSS Values and Units Test: rem subpixel change</title>
+ <link rel="help" href="https://drafts.csswg.org/css-values/#rem">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+</head>
+<body>
+ <div style="font-size:16px">
+ <div id="remElement" style="width: 10rem"></div>
+ </div>
+ <script>
+ test(() => {
+ assert_equals(getComputedStyle(remElement).width, "160px");
+ document.documentElement.style.fontSize = "16.1px";
+ assert_equals(getComputedStyle(remElement).width, "161px");
+ }, "Check that a 0.1px change in root font-size affect rem units.");
+ </script>
+<body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html
new file mode 100644
index 00000000000..b43ed61c3ee
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-baseURL.tentative.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<title>CSSStyleSheet baseURL</title>
+<link rel="author" title="Erik Nordin" href="mailto:enordin@mozilla.com">
+<link rel="help" href="https://github.com/WICG/construct-stylesheets/issues/95#issuecomment-593545252">
+<div id="target"></div>
+<script src='/resources/testharness.js'></script>
+<script src='/resources/testharnessreport.js'></script>
+<script>
+
+function currentLocation() {
+ const sections = location.href.split("/")
+ sections.pop();
+ return sections.join("/");
+}
+
+test(() => {
+ const span = document.createElement("span");
+ target.appendChild(span);
+ span.attachShadow({ mode: "open" })
+ const shadowDiv = document.createElement("div");
+ span.shadowRoot.appendChild(shadowDiv);
+
+ const fileName = "example.png"
+ const baseURL = `${location.origin}/custom/path/`;
+ const fullURL = `${baseURL}${fileName}`;
+
+ const sheet = new CSSStyleSheet({ baseURL });
+ span.shadowRoot.adoptedStyleSheets = [sheet];
+
+ sheet.replaceSync(`* { background-image: url("${fileName}"); }`);
+ const styleFromRelative = getComputedStyle(shadowDiv).backgroundImage;
+
+ sheet.replaceSync(`* { background-image: url("${fullURL}"); }`);
+ const styleFromFull = getComputedStyle(shadowDiv).backgroundImage;
+
+ assert_equals(styleFromRelative, styleFromFull);
+}, "Constructing sheet with custom base URL ueses that URL for CSS rules");
+
+test(() => {
+ const span = document.createElement("span");
+ target.appendChild(span);
+ span.attachShadow({ mode: "open" })
+ const shadowDiv = document.createElement("div");
+ span.shadowRoot.appendChild(shadowDiv);
+
+ const fileName = "example.png"
+ const baseURL = "custom/path/";
+ const fullURL = `${currentLocation()}/${baseURL}${fileName}`;
+
+ const sheet = new CSSStyleSheet({ baseURL });
+ span.shadowRoot.adoptedStyleSheets = [sheet];
+
+ sheet.replaceSync(`* { background-image: url("${fileName}"); }`);
+ const styleFromRelative = getComputedStyle(shadowDiv).backgroundImage;
+
+ sheet.replaceSync(`* { background-image: url("${fullURL}"); }`);
+ const styleFromFull = getComputedStyle(shadowDiv).backgroundImage;
+
+ assert_equals(styleFromRelative, styleFromFull);
+}, "Constructing sheet with relative URL adds to the constructor document's base URL");
+
+test(() => {
+ assert_throws_dom("NotAllowedError", () => { new CSSStyleSheet({ baseURL: "chrome://"}) });
+}, "Constructing sheet with invalid base URL throws a NotAllowedError");
+
+</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-duplicate.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-duplicate.html
index 30a3ed1d09b..579f5d0fced 100644
--- a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-duplicate.html
+++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable-duplicate.html
@@ -4,17 +4,81 @@
<link rel="help" href="https://wicg.github.io/construct-stylesheets/">
<script src = '/resources/testharness.js'></script>
<script src = '/resources/testharnessreport.js'></script>
-<div></div>
+<div id="target"></div>
<script>
-test(function() {
- let sheets = [];
- for (let i = 0; i < 2; ++i) {
+function attachShadowDiv(host) {
+ const shadowRoot = host.attachShadow({mode: 'open'});
+ const shadowDiv = document.createElement("div");
+ shadowRoot.appendChild(shadowDiv);
+ return shadowDiv;
+}
+
+function blueSheetsWithIncreasingZIndex(n) {
+ let sheets = [];
+ for (let i = 0; i < n; ++i) {
sheets.push(new CSSStyleSheet());
- sheets[i].replaceSync("div { z-index: " + i + " }");
+ sheets[i].replaceSync("div { z-index: " + i + "; color: blue; }");
}
+ return sheets;
+}
+
+let sheets = [];
+
+test(function() {
+ sheets = blueSheetsWithIncreasingZIndex(2);
document.adoptedStyleSheets = [sheets[1], sheets[0], sheets[1]];
assert_equals(getComputedStyle(document.querySelector("div")).zIndex, "1", "duplicate stylesheet should take right position in the cascade");
-});
+
+ document.adoptedStyleSheets = [];
+}, "Duplicate stylesheets have the right cascade position in the Document");
+
+test(function() {
+ sheets = blueSheetsWithIncreasingZIndex(2);
+
+ const sheet = new CSSStyleSheet();
+ sheet.replaceSync("div { color: red; }");
+
+ document.adoptedStyleSheets = [sheets[1], sheets[0]];
+ assert_equals(getComputedStyle(document.querySelector("div")).zIndex, "0", "backmost stylesheet should take precedence");
+ assert_equals(getComputedStyle(document.querySelector("div")).color, "rgb(0, 0, 255)", "backmost stylesheet should take precedence");
+
+ document.adoptedStyleSheets = [sheets[1], sheets[0], sheets[1], sheet];
+ assert_equals(getComputedStyle(document.querySelector("div")).zIndex, "1", "duplicate stylesheet should take the right position in the cascade");
+ assert_equals(getComputedStyle(document.querySelector("div")).color, "rgb(255, 0, 0)", "backmost stylesheet should take precedence");
+
+ document.adoptedStyleSheets = [];
+}, "Appending duplicate stylesheets yields the correct cascade position in the Document");
+
+test(function() {
+ sheets = blueSheetsWithIncreasingZIndex(2);
+
+ const span = document.createElement("span");
+ target.appendChild(span);
+ attachShadowDiv(span);
+
+ span.shadowRoot.adoptedStyleSheets = [sheets[1], sheets[0], sheets[1]];
+ assert_equals(getComputedStyle(span.shadowRoot.querySelector("div")).zIndex, "1", "duplicate stylesheet should take right position in the cascade");
+}, "Duplicate stylesheets have the right cascade position in the ShadowRoot");
+
+test(function() {
+ sheets = blueSheetsWithIncreasingZIndex(2);
+
+ const sheet = new CSSStyleSheet();
+ sheet.replaceSync("div { color: red; }");
+
+ const span = document.createElement("span");
+ target.appendChild(span);
+ attachShadowDiv(span);
+
+ span.shadowRoot.adoptedStyleSheets = [sheets[1], sheets[0]];
+ assert_equals(getComputedStyle(span.shadowRoot.querySelector("div")).zIndex, "0", "backmost stylesheet should take precedence");
+ assert_equals(getComputedStyle(span.shadowRoot.querySelector("div")).color, "rgb(0, 0, 255)", "backmost stylesheet should take precedence");
+
+ span.shadowRoot.adoptedStyleSheets = [sheets[1], sheets[0], sheets[1], sheet];
+ assert_equals(getComputedStyle(span.shadowRoot.querySelector("div")).zIndex, "1", "duplicate stylesheet should take right position in the cascade");
+ assert_equals(getComputedStyle(span.shadowRoot.querySelector("div")).color, "rgb(255, 0, 0)", "backmost stylesheet should take precedence");
+}, "Appending duplicate stylesheets yields the correct cascade position in the ShadowRoot");
+
</script>
diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
index c7e21538104..fbee4298c14 100644
--- a/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
+++ b/tests/wpt/web-platform-tests/css/cssom/CSSStyleSheet-constructable.html
@@ -742,4 +742,30 @@ test(() => {
sheet.replaceSync('');
}, 'Modifying an adopted stylesheet on a disconnected shadow root should not crash.');
+function currentLocation() {
+ const sections = location.href.split("/")
+ sections.pop();
+ return sections.join("/");
+}
+
+test(() => {
+ const span = document.createElement("span");
+ thirdSection.appendChild(span);
+ const shadowDiv = attachShadowDiv(span);
+
+ const fileName = "example.png"
+ const fullPath = `${currentLocation()}/${fileName}`
+
+ const sheet = new CSSStyleSheet();
+ span.shadowRoot.adoptedStyleSheets = [sheet];
+
+ sheet.replaceSync(`* { background-image: url("${fileName}"); }`);
+ const styleFromRelative = getComputedStyle(shadowDiv).backgroundImage;
+
+ sheet.replaceSync(`* { background-image: url("${fullPath}"); }`);
+ const styleFromFull = getComputedStyle(shadowDiv).backgroundImage;
+
+ assert_equals(styleFromRelative, styleFromFull);
+}, "Constructing a sheet with the default base URL uses the constructor document's base URL for CSS rules");
+
</script>
diff --git a/tests/wpt/web-platform-tests/css/support/numeric-testcommon.js b/tests/wpt/web-platform-tests/css/support/numeric-testcommon.js
index 56022d06399..e0569fed264 100644
--- a/tests/wpt/web-platform-tests/css/support/numeric-testcommon.js
+++ b/tests/wpt/web-platform-tests/css/support/numeric-testcommon.js
@@ -1,54 +1,189 @@
'use strict';
/*
-Tests to verify that numeric values
-(math functions, generally),
-are handled correctly.
+Provides functions to help test that two numeric values are equivalent.
+These *do not* rely on you predicting what one value will serialize to;
+instead, they set and serialize *both* values,
+and just ensure that they serialize to the same thing.
-Relies on a #target element existing in the document,
+They rely on a #target element existing in the document,
as this might rely on layout to resolve styles,
and so it needs to be in the document.
-*/
+Three main functions are defined, with the same signatures:
+test_math_used() (for testing used values),
+test_math_computed() (for testing computed values),
+and test_math_specified() (for testing specified values).
+Signature for all is:
+
+test_math_X(
+ testString, // A numeric value; required.
+ expectedString, // A hopefully-equivalent numeric value; required.
+ { // all of these are optional
+ type, // "number", "length", etc. See impl for full list. Defaults to "length".
+ msg, // The message to display for the test; autogenned if not provided.
+ msgExtra, // Extra info to put after the auto-genned message.
+ prop, // If you want to override the automatic choice of tested property.
+ extraStyle, // Styles that need to be set at the same time to properly test the value.
+ }
+);
+
+
+Additionally, five specialized functions are provided
+to test that a given value is ±∞, ±0, or NaN:
+
+* test_plus_infinity(testString)
+* test_minus_infinity(testString)
+* test_plus_zero(testString)
+* test_minus_zero(testString)
+* test_nan(testString)
-/*
-By default, assumes testString evaluates to a <length>.
-If this isn't true, override {base, prop} accordingly.
*/
-function test_math_used(testString, expectedString, {base="123px", msg, prop="left"}={}) {
+
+
+
+function test_math_used(testString, expectedString, {msg, msgExtra, type, prop, prefix, suffix, extraStyle={}}={}) {
+ if(type === undefined) type = "length";
+ if(!prop) {
+ switch(type) {
+ case "number": prop = "transform"; prefix="scale("; suffix=")"; break;
+ case "integer": prop = "z-index"; extraStyle.position="absolute"; break;
+ case "length": prop = "margin-left"; break;
+ case "angle": prop = "transform"; prefix="rotate("; suffix=")"; break;
+ case "time": prop = "transition-delay"; break;
+ case "resolution": prop = "image-resolution"; break;
+ case "flex": prop = "grid-template-rows"; break;
+ default: throw Exception(`Value type '${type}' isn't capable of math.`);
+ }
+
+ }
+ _test_math({stage:'used', testString, expectedString, type, msg, msgExtra, prop, prefix, suffix, extraStyle});
+}
+
+function test_math_computed(testString, expectedString, {msg, msgExtra, type, prop, prefix, suffix, extraStyle={}}={}) {
+ if(type === undefined) type = "length";
+ if(!prop) {
+ switch(type) {
+ case "number": prop = "transform"; prefix="scale("; suffix=")"; break;
+ case "integer": prop = "z-index"; extraStyle.position="absolute"; break;
+ case "length": prop = "flex-basis"; break;
+ case "angle": prop = "transform"; prefix="rotate("; suffix=")"; break;
+ case "time": prop = "transition-delay"; break;
+ case "resolution": prop = "image-resolution"; break;
+ case "flex": prop = "grid-template-rows"; break;
+ default: throw Exception(`Value type '${type}' isn't capable of math.`);
+ }
+
+ }
+ _test_math({stage:'computed', testString, expectedString, type, msg, msgExtra, prop, prefix, suffix, extraStyle});
+}
+
+function test_math_specified(testString, expectedString, {msg, msgExtra, type, prop, prefix, suffix, extraStyle={}}={}) {
+ if(type === undefined) type = "length";
+ const stage = "specified";
+ if(!prop) {
+ switch(type) {
+ case "number": prop = "transform"; prefix="scale("; suffix=")"; break;
+ case "integer": prop = "z-index"; extraStyle.position="absolute"; break;
+ case "length": prop = "flex-basis"; break;
+ case "angle": prop = "transform"; prefix="rotate("; suffix=")"; break;
+ case "time": prop = "transition-delay"; break;
+ case "resolution": prop = "image-resolution"; break;
+ case "flex": prop = "grid-template-rows"; break;
+ default: throw Exception(`Value type '${type}' isn't capable of math.`);
+ }
+
+ }
+ // Find the test element
const testEl = document.getElementById('target');
- if(testEl == null) throw "Couldn't find #target element to run tests on."
+ if(testEl == null) throw "Couldn't find #target element to run tests on.";
+ // Then reset its styles
+ testEl.style = "";
+ for(const p in extraStyle) {
+ testEl.style[p] = extraStyle[p];
+ }
+ if(!msg) {
+ msg = `${testString} should be ${stage}-value-equivalent to ${expectedString}`;
+ if(msgExtra) msg += "; " + msgExtra;
+ }
+ let t = testString;
+ let e = expectedString;
+ if(prefix) {
+ t = prefix + t;
+ e = prefix + e;
+ }
+ if(suffix) {
+ t += suffix;
+ e += suffix;
+ }
test(()=>{
- testEl.style[prop] = base;
- testEl.style[prop] = testString;
- const usedValue = getComputedStyle(testEl)[prop];
- assert_not_equals(usedValue, base, `${testString} isn't valid in '${prop}'; got the default value instead.`);
- testEl.style[prop] = base;
- testEl.style[prop] = expectedString;
- const expectedValue = getComputedStyle(testEl)[prop];
- assert_not_equals(expectedValue, base, `${testString} isn't valid in '${prop}'; got the default value instead.`)
- assert_equals(usedValue, expectedValue, `${testString} and ${expectedString} serialize to the same thing in used values.`);
- }, msg || `${testString} should be used-value-equivalent to ${expectedString}`);
+ testEl.style[prop] = '';
+ testEl.style[prop] = t;
+ const usedValue = testEl.style[prop];
+ assert_not_equals(usedValue, '', `${testString} isn't valid in '${prop}'; got the default value instead.`);
+ testEl.style[prop] = '';
+ testEl.style[prop] = e;
+ const expectedValue = testEl.style[prop];
+ assert_not_equals(expectedValue, '', `${expectedString} isn't valid in '${prop}'; got the default value instead.`)
+ assert_equals(usedValue, expectedValue, `${testString} and ${expectedString} serialize to the same thing in ${stage} values.`);
+ }, msg || `${testString} should be ${stage}-value-equivalent to ${expectedString}`);
}
/*
All of these expect the testString to evaluate to a <number>.
*/
function test_plus_infinity(testString) {
- test_math_used(`calc(1px * ${testString})`, "calc(infinity * 1px)");
+ test_math_used(testString, "calc(infinity)", {type:"number"});
}
function test_minus_infinity(testString) {
- test_math_used(`calc(1px * ${testString})`, "calc(-infinity * 1px)");
+ test_math_used(testString, "calc(-infinity)", {type:"number"});
}
function test_plus_zero(testString) {
- test_math_used(`calc(1px / ${testString})`, "calc(infinity * 1px)");
+ test_math_used(`calc(1 / ${testString})`, "calc(infinity)", {type:"number"});
}
function test_minus_zero(testString) {
- test_math_used(`calc(1px / ${testString})`, "calc(-infinity * 1px)");
+ test_math_used(`calc(1 / ${testString})`, "calc(-infinity)", {type:"number"});
}
function test_nan(testString) {
// Make sure that it's NaN, not an infinity,
// by making sure that it's the same value both pos and neg.
- test_math_used(`calc(1px * ${testString})`, "calc(NaN * 1px)");
- test_math_used(`calc(-1px * ${testString})`, "calc(NaN * 1px)");
+ test_math_used(testString, "calc(NaN)", {type:"number"});
+ test_math_used(`calc(-1 * ${testString})`, "calc(NaN)", {type:"number"});
+}
+
+
+function _test_math({stage, testEl, testString, expectedString, type, msg, msgExtra, prop, prefix, suffix, extraStyle}={}) {
+ // Find the test element
+ if(!testEl) testEl = document.getElementById('target');
+ if(testEl == null) throw "Couldn't find #target element to run tests on.";
+ // Then reset its styles
+ testEl.style = "";
+ for(const p in extraStyle) {
+ testEl.style[p] = extraStyle[p];
+ }
+ if(!msg) {
+ msg = `${testString} should be ${stage}-value-equivalent to ${expectedString}`;
+ if(msgExtra) msg += "; " + msgExtra;
+ }
+ let t = testString;
+ let e = expectedString;
+ if(prefix) {
+ t = prefix + t;
+ e = prefix + e;
+ }
+ if(suffix) {
+ t += suffix;
+ e += suffix;
+ }
+ test(()=>{
+ testEl.style[prop] = '';
+ testEl.style[prop] = t;
+ const usedValue = getComputedStyle(testEl)[prop];
+ assert_not_equals(usedValue, '', `${testString} isn't valid in '${prop}'; got the default value instead.`);
+ testEl.style[prop] = '';
+ testEl.style[prop] = e;
+ const expectedValue = getComputedStyle(testEl)[prop];
+ assert_not_equals(expectedValue, '', `${expectedString} isn't valid in '${prop}'; got the default value instead.`)
+ assert_equals(usedValue, expectedValue, `${testString} and ${expectedString} serialize to the same thing in ${stage} values.`);
+ }, msg || `${testString} should be ${stage}-value-equivalent to ${expectedString}`);
} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/css/support/serialize-testcommon.js b/tests/wpt/web-platform-tests/css/support/serialize-testcommon.js
new file mode 100644
index 00000000000..18cebf538ef
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/support/serialize-testcommon.js
@@ -0,0 +1,94 @@
+"use strict";
+
+
+/* Functions to test serialization of properties.
+
+Each takes (property, testString, expectedSerialization) arguments.
+
+These functions depend on a #target element existing in the page,
+and will error if they don't find one.
+
+Note that test_computed_serialization and test_used_serialization
+are identical except for assertion messages;
+you need to choose properties with the correct resolved values
+to test the value stage that you want.
+
+
+For ease of use, it's recommended that you define and use
+the following function in your test page:
+
+function test_serialization(t,s,c,u, {prop}={}) {
+ test_specified_serialization(prop || 'text-indent', t, s);
+ test_computed_serialization(prop || 'text-indent', t, c);
+ if(u) test_used_serialization(prop || 'margin-left', t, u);
+}
+
+(swapping the property names for what you're expecting to test)
+
+Then you can write tests easily as:
+
+test_serialization(
+ 'calc(min(1%, 2%) + max(3%, 4%) + 10%)', // test string
+ 'calc(15%)', // expected specified value
+ '15%', // expected computed value
+ '15px'); // expected used value
+
+*/
+
+
+
+
+function test_specified_serialization(prop, t, e) {
+ const el = document.querySelector("#target");
+ if(!el) throw new Exception("Couldn't find #target element to run tests on.");
+ test(()=>{
+ el.style[prop] = '';
+ el.style[prop] = t;
+ const tValue = el.style[prop];
+ assert_not_equals(tValue, '', `'${t}' should be valid in ${prop}.`);
+
+ el.style[prop] = '';
+ el.style[prop] = e;
+ const eValue = el.style[prop];
+ assert_not_equals(eValue, '', `'${e}' should be valid in ${prop}.`);
+ assert_equals(eValue, e, `'${e}' should round-trip exactly in specified values.`);
+
+ assert_equals(tValue, e, `'${t}' and '${e}' should serialize the same in specified values.`);
+ }, `'${t}' as a specified value should serialize as '${e}'.`);
+}
+function test_computed_serialization(prop, t, e) {
+ const el = document.querySelector("#target");
+ if(!el) throw new Exception("Couldn't find #target element to run tests on.");
+ test(()=>{
+ el.style[prop] = '';
+ el.style[prop] = t;
+ const tValue = getComputedStyle(el)[prop];
+ assert_not_equals(tValue, '', `'${t}' should be valid in ${prop}.`);
+
+ el.style[prop] = '';
+ el.style[prop] = e;
+ const eValue = getComputedStyle(el)[prop];
+ assert_not_equals(eValue, '', `'${e}' should be valid in ${prop}.`);
+ assert_equals(eValue, e, `'${e}' should round-trip exactly in computed values.`);
+
+ assert_equals(tValue, e, `'${t}' and '${e}' should serialize the same in computed values.`);
+ }, `'${t}' as a computed value should serialize as '${e}'.`);
+}
+function test_used_serialization(prop, t, e) {
+ const el = document.querySelector("#target");
+ if(!el) throw new Exception("Couldn't find #target element to run tests on.");
+ test(()=>{
+ el.style[prop] = '';
+ el.style[prop] = t;
+ const tValue = getComputedStyle(el)[prop];
+ assert_not_equals(tValue, '', `'${t}' should be valid in ${prop}.`);
+
+ el.style[prop] = '';
+ el.style[prop] = e;
+ const eValue = getComputedStyle(el)[prop];
+ assert_not_equals(eValue, '', `'${e}' should be valid in ${prop}.`);
+ assert_equals(eValue, e, `'${e}' should round-trip exactly in used values.`);
+
+ assert_equals(tValue, e, `'${t}' and '${e}' should serialize the same in used values.`);
+ }, `'${t}' as a used value should serialize as '${e}'.`);
+} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html
new file mode 100644
index 00000000000..03fa5b68a3e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test for font-display-late-swap feature policy set to report-only</title>
+ <link rel="help" href="https://github.com/w3c/webappsec-feature-policy/blob/master/policies/font-display-late-swap.md">
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <style>
+ </style>
+ </head>
+ <body>
+ <p>
+ Tests if the correct number of violation reports are generated and each report corresponds to this feature.
+ 4 reports should be created out of the 6 options below (reports for all except for 'fallback' and 'optional').
+ </p>
+ <table id="container">
+ <tr>
+ <th>not-set</th>
+ <th>auto</th>
+ <th>block</th>
+ <th>swap</th>
+ <th>fallback</th>
+ <th>optional</th>
+ </tr>
+ </table>
+ <script>
+const fontDisplayValues = ['', 'auto', 'block', 'swap', 'fallback', 'optional'];
+const table = document.getElementById('container');
+
+function makeFontFaceDeclaration(family, display) {
+ url = '/fonts/Ahem.ttf?pipe=trickle(d1)'; // Before the swap period is over
+ return '@font-face { font-family: ' + family + '; src: url("' + url + '"); font-display: ' + display + '; }';
+}
+
+window.onload = () => {
+ let tr = document.createElement('tr');
+ for (let display of fontDisplayValues) {
+ const family = display + '-face';
+ const rule = makeFontFaceDeclaration(family, display);
+ document.styleSheets[0].insertRule(rule, 0);
+ let td = document.createElement('td');
+ td.textContent = 'a';
+ td.style.fontFamily = family + ', Arial';
+ tr.appendChild(td);
+ }
+ table.appendChild(tr);
+}
+
+let reportCounter = 4;
+let t = async_test('font-display-late-swap Report Format');
+
+let check_report_format = (reports, observer) => {
+ reportCounter -= reports.length;
+ for (let report of reports) {
+ assert_equals(report.type, 'document-policy-violation');
+ assert_equals(report.url, document.location.href, 'Report URL');
+ assert_equals(report.body.featureId, 'font-display-late-swap');
+ assert_equals(report.body.disposition, 'report');
+ assert_true('sourceFile' in report.body);
+ assert_true('lineNumber' in report.body);
+ assert_true('columnNumber' in report.body);
+ }
+ // Test is done when we have exactly 4 reports for the following
+ // font-display values: not set, 'auto', 'block', 'swap'
+ if (reportCounter == 0) t.done();
+};
+
+new ReportingObserver(t.step_func(check_report_format),
+ {types: ['document-policy-violation'], buffered: true}).observe();
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html.headers
new file mode 100644
index 00000000000..e090edd0da4
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-report-only.tentative.html.headers
@@ -0,0 +1 @@
+Document-Policy-Report-Only: no-font-display-late-swap \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html
new file mode 100644
index 00000000000..db871d19f7e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>Test for font-display-late-swap feature policy set to reporting</title>
+ <link rel="help" href="https://github.com/w3c/webappsec-feature-policy/blob/master/policies/font-display-late-swap.md">
+ <script src='/resources/testharness.js'></script>
+ <script src='/resources/testharnessreport.js'></script>
+ <style>
+ </style>
+ </head>
+ <body>
+ <p>
+ Tests if the correct number of violation reports are generated and each report corresponds to this feature.
+ 4 reports should be created out of the 6 options below (reports for all except for 'fallback' and 'optional').
+ </p>
+ <table id="container">
+ <tr>
+ <th>not-set</th>
+ <th>auto</th>
+ <th>block</th>
+ <th>swap</th>
+ <th>fallback</th>
+ <th>optional</th>
+ </tr>
+ </table>
+ <script>
+const fontDisplayValues = ['', 'auto', 'block', 'swap', 'fallback', 'optional'];
+const table = document.getElementById('container');
+
+function makeFontFaceDeclaration(family, display) {
+ url = '/fonts/Ahem.ttf?pipe=trickle(d1)'; // Before the swap period is over
+ return '@font-face { font-family: ' + family + '; src: url("' + url + '"); font-display: ' + display + '; }';
+}
+
+window.onload = () => {
+ let tr = document.createElement('tr');
+ for (let display of fontDisplayValues) {
+ const family = display + '-face';
+ const rule = makeFontFaceDeclaration(family, display);
+ document.styleSheets[0].insertRule(rule, 0);
+ let td = document.createElement('td');
+ td.textContent = 'a';
+ td.style.fontFamily = family + ', Arial';
+ tr.appendChild(td);
+ }
+ table.appendChild(tr);
+}
+
+let reportCounter = 4;
+let t = async_test('font-display-late-swap Report Format');
+
+let check_report_format = (reports, observer) => {
+ reportCounter -= reports.length;
+ for (let report of reports) {
+ assert_equals(report.type, 'document-policy-violation');
+ assert_equals(report.url, document.location.href, 'Report URL');
+ assert_equals(report.body.featureId, 'font-display-late-swap');
+ assert_equals(report.body.disposition, 'enforce');
+ assert_true('sourceFile' in report.body);
+ assert_true('lineNumber' in report.body);
+ assert_true('columnNumber' in report.body);
+ }
+ // Test is done when we have exactly 4 reports for the following
+ // font-display values: not set, 'auto', 'block', 'swap'
+ if (reportCounter == 0) t.done();
+};
+
+new ReportingObserver(t.step_func(check_report_format),
+ {types: ['document-policy-violation'], buffered: true}).observe();
+ </script>
+ </body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html.headers b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html.headers
new file mode 100644
index 00000000000..84ad7cbf97b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/document-policy/font-display/font-display-document-policy-reporting.tentative.html.headers
@@ -0,0 +1 @@
+Document-Policy: no-font-display-late-swap \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html
index 2241d57e511..7690f753d9c 100644
--- a/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html
+++ b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-click.html
@@ -191,6 +191,24 @@ async_test(function(t) {
input.click()
}, "disconnected radio should be checked")
+async_test(t => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+ input.onclick = t.step_func_done(() => {
+ assert_true(input.checked);
+ });
+ input.dispatchEvent(new MouseEvent('click'));
+}, `disconnected checkbox should be checked from dispatchEvent(new MouseEvent('click'))`);
+
+async_test(t => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+ input.onclick = t.step_func_done(() => {
+ assert_true(input.checked);
+ });
+ input.dispatchEvent(new MouseEvent('click'));
+}, `disconnected radio should be checked from dispatchEvent(new MouseEvent('click'))`);
+
async_test(function(t) {
var form = document.createElement("form")
var didSubmit = false
diff --git a/tests/wpt/web-platform-tests/dom/events/Event-dispatch-detached-input-and-change.html b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-detached-input-and-change.html
new file mode 100644
index 00000000000..a53ae71ac2a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/dom/events/Event-dispatch-detached-input-and-change.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org">
+<title>input and change events for detached checkbox and radio elements</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<body>
+<script>
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.click();
+ assert_false(inputEventFired);
+ assert_false(changeEventFired);
+}, 'detached checkbox should not emit input or change events on click().');
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.click();
+ assert_false(inputEventFired);
+ assert_false(changeEventFired);
+}, 'detached radio should not emit input or change events on click().');
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.dispatchEvent(new MouseEvent('click'));
+ assert_false(inputEventFired);
+ assert_false(changeEventFired);
+}, `detached checkbox should not emit input or change events on dispatchEvent(new MouseEvent('click')).`);
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.dispatchEvent(new MouseEvent('click'));
+ assert_false(inputEventFired);
+ assert_false(changeEventFired);
+}, `detached radio should not emit input or change events on dispatchEvent(new MouseEvent('click')).`);
+
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+ document.body.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.click();
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, 'attached checkbox should emit input and change events on click().');
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+ document.body.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.click();
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, 'attached radio should emit input and change events on click().');
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+ document.body.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.dispatchEvent(new MouseEvent('click'));
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, `attached checkbox should emit input and change events on dispatchEvent(new MouseEvent('click')).`);
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+ document.body.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.dispatchEvent(new MouseEvent('click'));
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, `attached radio should emit input and change events on dispatchEvent(new MouseEvent('click')).`);
+
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+ const shadowHost = document.createElement('div');
+ document.body.appendChild(shadowHost);
+ const shadowRoot = shadowHost.attachShadow({mode: 'open'});
+ shadowRoot.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.click();
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, 'attached to shadow dom checkbox should emit input and change events on click().');
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+ const shadowHost = document.createElement('div');
+ document.body.appendChild(shadowHost);
+ const shadowRoot = shadowHost.attachShadow({mode: 'open'});
+ shadowRoot.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.click();
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, 'attached to shadow dom radio should emit input and change events on click().');
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'checkbox';
+ const shadowHost = document.createElement('div');
+ document.body.appendChild(shadowHost);
+ const shadowRoot = shadowHost.attachShadow({mode: 'open'});
+ shadowRoot.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.dispatchEvent(new MouseEvent('click'));
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, `attached to shadow dom checkbox should emit input and change events on dispatchEvent(new MouseEvent('click')).`);
+
+test(() => {
+ const input = document.createElement('input');
+ input.type = 'radio';
+ const shadowHost = document.createElement('div');
+ document.body.appendChild(shadowHost);
+ const shadowRoot = shadowHost.attachShadow({mode: 'open'});
+ shadowRoot.appendChild(input);
+
+ let inputEventFired = false;
+ input.addEventListener('input', () => inputEventFired = true);
+ let changeEventFired = false;
+ input.addEventListener('change', () => changeEventFired = true);
+ input.dispatchEvent(new MouseEvent('click'));
+ assert_true(inputEventFired);
+ assert_true(changeEventFired);
+}, `attached to shadow dom radio should emit input and change events on dispatchEvent(new MouseEvent('click')).`);
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html b/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html
deleted file mode 100644
index db21427c8ed..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <title>Test oversized-images policy with threshold 'inf'</title>
-</head>
-<body>
- <!-- The sample image has an intrinsic image size of 200x200px -->
- <img src="resources/sample-1.png" width="200" height="200">
- <img src="resources/sample-1.png" width="100" height="200">
- <img src="resources/sample-1.png" width="50" height="200">
- <br>
- <img src="resources/sample-1.png" width="200" height="100">
- <img src="resources/sample-1.png" width="100" height="100">
- <img src="resources/sample-1.png" width="50" height="100">
- <br>
- <img src="resources/sample-1.png" width="200" height="50">
- <img src="resources/sample-1.png" width="100" height="50">
- <img src="resources/sample-1.png" width="50" height="50">
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html.headers b/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html.headers
deleted file mode 100644
index 1ec003431b3..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-inf.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: oversized-images (inf)
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-with-frames.html b/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-with-frames.html
deleted file mode 100644
index de0a3ab1e39..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters-with-frames.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <script src="/feature-policy/resources/featurepolicy.js"></script>
- <title>Test oversized-images policy with threshold 1.5</title>
-</head>
-<body>
- <iframe scrolling="no" name="a" style="overflow:hidden" width="380" height="220"></iframe>
- <iframe scrolling="no" name="b" style="overflow:hidden" width="380" height="220"></iframe>
- <iframe scrolling="no" name="c" style="overflow:hidden" width="380" height="220"></iframe>
- <iframe scrolling="no" name="d" style="overflow:hidden" width="380" height="220"></iframe>
- <iframe scrolling="no" name="e" style="overflow:hidden" width="380" height="220"></iframe>
-
- <script>
- const frame_to_test_map = {};
- window.addEventListener('message', ev => {
- if (ev.data.type == "finished") {
- if (frame_to_test_map.hasOwnProperty(ev.data.name)) {
- frame_to_test_map[ev.data.name].done();
- }
- }
- });
- const config = {
- a: {threshold: 0.0, blocked: 3},
- b: {threshold: 1.0, blocked: 2},
- c: {threshold: 2.5, blocked: 1},
- d: {threshold: 4.0, blocked: 0},
- e: {threshold: "inf", blocked: 0}
- };
- const iframes = document.querySelectorAll('iframe');
- const total_iframes = iframes.length;
- iframes.forEach(iframe => {
- const frame_config = config[iframe.name]
- async_test(t => {
- frame_to_test_map[iframe.name] = t;
- iframe.src = "resources/feature-parameters-frame.html?name="+iframe.name+"&n="+frame_config.blocked+"&pipe=header(Feature-Policy,oversized-images%20("+frame_config.threshold+"\\);)";
- }, "Test frame with threshold " + frame_config.threshold + " should block " + frame_config.blocked + " images.");
- });
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html b/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html
deleted file mode 100644
index 9830f93eb4d..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <script src="/feature-policy/resources/featurepolicy.js"></script>
- <title>Test oversized-images policy with threshold 1.5</title>
-</head>
-<body>
- <!-- The sample image has an intrinsic image size of 200x200px -->
- <img src="resources/sample-1.png" width="200" height="200">
- <img src="resources/sample-1.png" width="100" height="200">
- <img src="resources/sample-1.png" width="50" height="200">
- <br>
- <img src="resources/sample-1.png" width="200" height="100">
- <img src="resources/sample-1.png" width="100" height="100">
- <img src="resources/sample-1.png" width="50" height="100">
- <br>
- <img src="resources/sample-1.png" width="200" height="50">
- <img src="resources/sample-1.png" width="100" height="50">
- <img src="resources/sample-1.png" width="50" height="50">
-
- <script>
- expect_reports(8, "oversized-images", "8 images should be blocked by policy");
- </script>
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html.headers b/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html.headers
deleted file mode 100644
index b4fa805c569..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/feature-parameters.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Feature-Policy: oversized-images (1.5)
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/resources/feature-parameters-frame.html b/tests/wpt/web-platform-tests/feature-policy/parameters/resources/feature-parameters-frame.html
deleted file mode 100644
index 4f01f85795d..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/resources/feature-parameters-frame.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <meta charset="utf-8">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <script src="/feature-policy/resources/featurepolicy.js"></script>
- <title>Test oversized-images policy in subframe</title>
-</head>
-<body>
- <!-- The sample image has an intrinsic image size of 200x200px -->
- <img width="200" height="200">
- <img width="100" height="200">
- <img width="50" height="200">
-
- <script>
- const policy_name = "oversized-images";
- const params = new URLSearchParams(document.location.search);
- const frame_name = params.get('name');
- const expected_report_count = +params.get('n');
- var num_received_reports = 0;
-
- const images = document.querySelectorAll('img');
- const total_images = images.length;
- var images_loaded = 0;
-
- const notifyIfDone = () => {
- if (num_received_reports >= expected_report_count &&
- images_loaded == total_images) {
- parent.postMessage({
- "type": "finished",
- "name": frame_name
- },"*");
- }
- };
-
- images.forEach(image => {
- image.addEventListener('load', () => { images_loaded++; notifyIfDone(); });
- image.src = "sample-1.png";
- });
-
- new ReportingObserver((reports, observer) => {
- const relevant_reports = reports.filter(r => (r.body.featureId === policy_name));
- num_received_reports += relevant_reports.length;
- notifyIfDone();
- }, {types: ['feature-policy-violation'], buffered: true}).observe();
- </script>
-
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/feature-policy/parameters/resources/sample-1.png b/tests/wpt/web-platform-tests/feature-policy/parameters/resources/sample-1.png
deleted file mode 100644
index 92901925c60..00000000000
--- a/tests/wpt/web-platform-tests/feature-policy/parameters/resources/sample-1.png
+++ /dev/null
Binary files differ
diff --git a/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff b/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff
index 9f5d59ae6a7..70f366a3d0b 100644
--- a/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff
+++ b/tests/wpt/web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff
Binary files differ
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https.html
index 2559de839a3..dced705206f 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker-cache-storage.https.html
@@ -5,6 +5,7 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script>
+// See also: ./shared-worker-cache-storage.https.html
function remote(path) {
const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
@@ -12,11 +13,11 @@ function remote(path) {
}
const iframe_path = "./resources/iframe.html?pipe=";
-const dedicated_worker_path = "./dedicated-worker.js?pipe=";
+const dedicated_worker_path = "./universal-worker.js?pipe=";
const ressource_path = "/images/blue.png?pipe=";
const coep_header= {
- "coep-none" : "|header(Cross-Origin-Embedder-Policy,none)",
+ "coep-none" : "",
"coep-require-corp" : "|header(Cross-Origin-Embedder-Policy,require-corp)",
}
@@ -107,7 +108,7 @@ function check(
iframe.contentWindow.postMessage(iframe_eval);
const {data} = await iframe_response;
- assert_equals(data == "success", loaded);
+ assert_equals(data === "success", loaded);
}, `${iframe_coep} ${worker_coep} ${response_corp}`)
}
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html
new file mode 100644
index 00000000000..ff9e5b64a08
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html
@@ -0,0 +1,86 @@
+<!doctype html>
+<meta name="timeout" content="long">
+<title>Cross-Origin-Embedder-Policy-Report-Only header does not affect the actual behavior</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script src=/common/utils.js></script> <!-- Use token() to allow running tests in parallel -->
+<script src="/common/get-host-info.sub.js"></script>
+<div id=log></div>
+<script>
+const HOST = get_host_info();
+const BASE = new URL("resources", location).pathname;
+
+async_test(t => {
+ const frame = document.createElement("iframe");
+ t.add_cleanup(() => frame.remove());
+ frame.onload = t.step_func_done(() => {
+ assert_not_equals(frame.contentDocument, null);
+ });
+ frame.src = "/common/blank.html";
+ document.body.append(frame);
+ assert_equals(frame.contentDocument.body.localName, "body");
+}, `"none" top-level: navigating a frame to "none" should succeed`);
+
+async_test(t => {
+ const frame = document.createElement("iframe");
+ t.add_cleanup(() => frame.remove());
+ const blank = "/common/blank.html";
+ let firstNavOk = false;
+ frame.onload = t.step_func(() => {
+ if (!firstNavOk) {
+ assert_not_equals(frame.contentDocument, null);
+ firstNavOk = true;
+ } else {
+ assert_not_equals(frame.contentDocument, null);
+ assert_equals(frame.contentWindow.location.pathname, blank);
+ t.done();
+ }
+ });
+ frame.src = `resources/navigate-require-corp.sub.html?to=${blank}`;
+ document.body.append(frame);
+ assert_equals(frame.contentDocument.body.localName, "body");
+}, `"none" top-level: navigating a frame from "require-corp" to "none" should succeed`);
+
+async_test(t => {
+ const w = window.open(`resources/navigate-none.sub.html?to=navigate-require-corp.sub.html`, "window_name");
+ t.add_cleanup(() => w.close());
+
+ w.onload = t.step_func(() => {
+ w.history.back();
+ t.step_timeout(() => {
+ assert_not_equals(w.document, null);
+ t.done();
+ }, 1500);
+ });
+}, `"none" top-level: navigating a frame back from "require-corp" should succeed`);
+
+async_test(t => {
+ let pageLoaded = false;
+ const bc = new BroadcastChannel(token());
+ let finished = false;
+ let doneCheck = _ => {
+ if (finished && pageLoaded) {
+ t.done();
+ }
+ }
+ bc.onmessage = t.step_func((event) => {
+ pageLoaded = true;
+ let payload = event.data;
+ assert_equals(payload, "loaded");
+
+ doneCheck();
+ });
+
+ const bc2 = new BroadcastChannel(token());
+ bc2.onmessage = t.step_func((event) => {
+ finished = true;
+ let payload = event.data;
+ assert_equals(payload, "loaded");
+
+ doneCheck();
+ });
+
+ const win = window.open(`resources/navigate-require-corp.sub.html?channelName=${bc.name}&to=navigate-none.sub.html?channelName=${bc2.name}`, "_blank", "noopener");
+ assert_equals(win, null);
+}, `"require-corp" top-level noopener popup: navigating to "none" should succeed`);
+</script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html.headers b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html.headers
new file mode 100644
index 00000000000..289659a41fd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/report-only-require-corp.https.html.headers
@@ -0,0 +1 @@
+cross-origin-embedder-policy-report-only: require-corp
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/reporting.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/reporting.https.html
new file mode 100644
index 00000000000..3a0aebe49a7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/reporting.https.html
@@ -0,0 +1,68 @@
+<!doctype html>
+<html>
+<html>
+<body>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/utils.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script>
+const HOST = get_host_info();
+function getIframeUrl(filename, token1, token2) {
+ let query = `template=${filename}`;
+ if (token1) {
+ query += `&coep=${token1}`
+ }
+ if (token2) {
+ query += `&coep-report-only=${token2}`
+ }
+ return `resources/reporting-iframe.py?${query}`;
+}
+
+function checkReports(reports, contextUrl) {
+ assert_not_equals(reports, null);
+ assert_equals(reports.length, 2);
+ assert_equals(reports[0].type, 'coep');
+ assert_equals(reports[0].url, contextUrl);
+ assert_equals(reports[0].body.type, 'corp');
+ assert_equals(reports[1].type, 'coep');
+ assert_equals(reports[1].url, contextUrl);
+ assert_equals(reports[1].body.type, 'corp');
+
+ // The order of the reports is non-deterministic.
+ const actualBlockedUrls = reports.map((r) => r.body['blocked-url']).sort();
+ const expectedBlockedUrls = [
+ `${HOST.REMOTE_ORIGIN}/common/text-plain.txt`,
+ `${HOST.ORIGIN}/common/redirect.py?location=${HOST.REMOTE_ORIGIN}/common/text-plain.txt`,
+ ];
+ assert_array_equals(actualBlockedUrls.sort(), expectedBlockedUrls.sort());
+}
+
+async_test(async (t) => {
+ try {
+ const iframe = document.createElement('iframe');
+ t.add_cleanup(() => iframe.remove());
+ const token1 = token();
+ const token2 = token();
+
+ iframe.src = `resources/subresource-corp.html?token1=${token1}&token2=${token2}`;
+ document.body.appendChild(iframe);
+
+ await new Promise(resolve => t.step_timeout(resolve, 3000));
+
+ const res1 = await fetch(`resources/stash-take.py?key=${token1}`);
+ const res2 = await fetch(`resources/stash-take.py?key=${token2}`);
+
+ const reports = JSON.parse(await res1.text());
+ const reportsForReportOnly = JSON.parse(await res2.text());
+
+ checkReports(reports, iframe.src);
+ checkReports(reportsForReportOnly, iframe.src);
+
+ t.done();
+ } catch (e) {
+ t.step(() => { throw e });
+ };
+}, 'report-to parameter for COEP and COEP-report-only');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw.https.html
index 690ea6314f5..bb154aecae8 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/require-corp-sw.https.html
@@ -34,4 +34,20 @@ promise_test(async t => {
worker.postMessage('WithoutCorp');
assert_equals((await p).data, 'TypeError: Failed to fetch');
}, "fetch() to no CORP response should not succeed.");
+
+promise_test(async t => {
+ const scope = `${SCOPE}-2`;
+ await service_worker_unregister(t, scope);
+ const promise = navigator.serviceWorker.register(
+ 'resources/require-corp-sw-import-scripts.js', {scope});
+ await promise_rejects_js(t, TypeError, promise, 'register() should fail.');
+}, 'importScripts() fails for a script with no corp.');
+
+promise_test(async t => {
+ const scope = `${SCOPE}-3`;
+ await service_worker_unregister(t, scope);
+ const registration = await navigator.serviceWorker.register(
+ 'resources/require-corp-sw-import-scripts.js?corp=cross-origin', {scope});
+ t.add_cleanup(() => registration.unregister());
+}, 'importScripts() succeeds for a script with corp: cross-origin.');
</script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/report.py b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/report.py
new file mode 100644
index 00000000000..8adf3009d08
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/report.py
@@ -0,0 +1,19 @@
+import json
+
+
+def main(request, response):
+ if request.method == 'OPTIONS':
+ # CORS preflight
+ response.headers.set('Access-Control-Allow-Origin', '*')
+ response.headers.set('Access-Control-Allow-Methods', 'POST')
+ response.headers.set('Access-Control-Allow-Headers', 'content-type')
+ return ''
+
+ url_dir = '/'.join(request.url_parts.path.split('/')[:-1]) + '/'
+ key = request.GET.first('key')
+ reports = request.server.stash.take(key, url_dir) or []
+ for report in json.loads(request.body):
+ reports.append(report)
+ request.server.stash.put(key, reports, url_dir)
+ response.headers.set('Access-Control-Allow-Origin', '*')
+ return 'done'
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js
new file mode 100644
index 00000000000..e652c5bf303
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js
@@ -0,0 +1,23 @@
+// Service worker with 'COEP: require-corp' response header.
+// This service worker issues a network request to import scripts with or
+// without CORP response header.
+
+importScripts("/common/get-host-info.sub.js");
+
+function url_for_empty_js(corp) {
+ const url = new URL(get_host_info().HTTPS_REMOTE_ORIGIN);
+ url.pathname = '/service-workers/service-worker/resources/empty.js';
+ if (corp) {
+ url.searchParams.set(
+ 'pipe', `header(Cross-Origin-Resource-Policy, ${corp})`);
+ }
+ return url.href;
+}
+
+const params = new URL(location.href).searchParams;
+
+if (params.get('corp') === 'cross-origin') {
+ importScripts(url_for_empty_js('cross-origin'));
+} else {
+ importScripts(url_for_empty_js());
+}
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js.headers b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js.headers
new file mode 100644
index 00000000000..6604450991a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/require-corp-sw-import-scripts.js.headers
@@ -0,0 +1 @@
+Cross-Origin-Embedder-Policy: require-corp
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/stash-take.py b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/stash-take.py
new file mode 100644
index 00000000000..73e0def86ca
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/stash-take.py
@@ -0,0 +1,9 @@
+from wptserve.handlers import json_handler
+
+
+@json_handler
+def main(request, response):
+ path = '/'.join(request.url_parts.path.split('/')[:-1]) + '/'
+ key = request.GET.first('key')
+ response.headers.set('Access-Control-Allow-Origin', '*')
+ return request.server.stash.take(key, path)
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html
new file mode 100644
index 00000000000..4b029700e0e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html
@@ -0,0 +1,35 @@
+<!doctype html>
+<html>
+<script src="/common/get-host-info.sub.js"></script>
+<script>
+const HOST = get_host_info();
+const current = new URL(window.location.href);
+const token = current.searchParams.get("token");
+
+const cache = 'no-store';
+const mode = 'no-cors';
+
+async function run() {
+ const init = { mode, cache };
+ // This is not blocked.
+ await fetch('/common/text-plain.txt', init);
+ // This is blocked but not due to COEP.
+ try {
+ await fetch('nothing-same-origin-corp.txt', init);
+ } catch (e) {
+ }
+
+ try {
+ await fetch(`${HOST.REMOTE_ORIGIN}/common/text-plain.txt`, init);
+ } catch (e) {
+ }
+ try {
+ await fetch(`/common/redirect.py?location=${HOST.REMOTE_ORIGIN}/common/text-plain.txt`, init);
+ } catch (e) {
+ }
+}
+
+run();
+
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html.sub.headers b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html.sub.headers
new file mode 100644
index 00000000000..00609991031
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/subresource-corp.html.sub.headers
@@ -0,0 +1,4 @@
+cache-control: no-store, no-cache
+report-to: { "group": "endpoint", "max_age": 3600, "endpoints": [{ "url": "https://{{hosts[][www]}}:{{ports[https][0]}}/html/cross-origin-embedder-policy/resources/report.py?key={{GET[token1]}}" }] }, { "group": "report-only-endpoint", "max_age": 3600, "endpoints": [{ "url": "https://{{hosts[][www]}}:{{ports[https][0]}}/html/cross-origin-embedder-policy/resources/report.py?key={{GET[token2]}}" }] }
+cross-origin-embedder-policy: require-corp; report-to="endpoint"
+cross-origin-embedder-policy-report-only: require-corp; report-to="report-only-endpoint"
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/dedicated-worker.js b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/universal-worker.js
index 5d46edcde24..5d46edcde24 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/dedicated-worker.js
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/resources/universal-worker.js
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/service-worker-cache-storage.https.html b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/service-worker-cache-storage.https.html
new file mode 100644
index 00000000000..873f06ce4ff
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/cross-origin-embedder-policy/service-worker-cache-storage.https.html
@@ -0,0 +1,117 @@
+<!doctype html>
+<html>
+<title> Check enforcement of COEP in a ServiceWorker using CacheStorage. </title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
+<script>
+// See also: ./dedicated-worker-cache-storage.https.html
+
+function remote(path) {
+ const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
+ return new URL(path, REMOTE_ORIGIN);
+}
+
+const iframe_path = "./resources/iframe.html?pipe=";
+const service_worker_path = "./resources/universal-worker.js?pipe=";
+const ressource_path = "/images/blue.png?pipe=";
+
+const coep_header= {
+ "coep-none" : "",
+ "coep-require-corp" : "|header(Cross-Origin-Embedder-Policy,require-corp)",
+}
+
+const corp_header = {
+ "corp-undefined" : "",
+ "corp-cross-origin" : "|header(Cross-Origin-Resource-Policy,cross-origin)",
+}
+
+// Send a message to the |worker| and wait for its response.
+function executeCommandInServiceWorker(worker, command) {
+ const channel = new MessageChannel();
+ const response = new Promise(resolve => channel.port1.onmessage = resolve);
+ worker.postMessage(command, [ channel.port2 ]);
+ return response;
+}
+
+// Check enforcement of COEP in a ServiceWorker using CacheStorage.
+//
+// 1) Fetch a response from a document with COEP:none. Store it in the
+// CacheStorage. The response is cross-origin without any CORS header.
+// 2) From a ServiceWorker, retrieve the response from the CacheStorage.
+//
+// Test parameters:
+// - |worker_coep| the COEP header of the ServiceWorker's script response.
+// - |response_corp| the CORP header of the response.
+//
+// Test expectations:
+// |loaded| is true whenever the worker is able to fetch the response from
+// the CacheStorage. According to the specification:
+// https://mikewest.github.io/corpp/#initialize-embedder-policy-for-global
+// it must be false when:
+// - |worker_coep| is 'coep-require-corp' and
+// - |response-corp| is 'corp-undefined'.
+function check(
+ // Test parameters:
+ worker_coep,
+ response_corp,
+
+ // Test expectations:
+ loaded) {
+
+ promise_test(async (t) => {
+ // 1) Fetch a response from a document with COEP:none. Store it in the
+ // CacheStorage. The response is cross-origin without any CORS header.
+ const resource_path = ressource_path + corp_header[response_corp];
+ const resource_url = remote(resource_path);
+ const fetch_request = new Request(resource_url, {mode: 'no-cors'});
+ const cache = await caches.open('v1');
+ const fetch_response = await fetch(fetch_request);
+ await cache.put(fetch_request, fetch_response);
+
+ // 2) Start a ServiceWorker.
+ const SCOPE= new URL(location.href).pathname;
+ const service_worker_allowed = `|header(service-worker-allowed,${SCOPE})`;
+ const SCRIPT =
+ service_worker_path +
+ coep_header[worker_coep] +
+ service_worker_allowed;
+
+ const reg = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
+ add_completion_callback(() => reg.unregister());
+
+ // Start talking to the ServiceWorker, no matter its state.
+ const worker = reg.installing || reg.waiting || reg.active;
+
+ // 3) From the service worker, try to retrieve the response from the
+ // CacheStorage.
+ const response = executeCommandInServiceWorker(worker, `
+ (async function() {
+ const cache = await caches.open('v1');
+ const request = new Request('${resource_url}', {
+ mode: 'no-cors'
+ });
+ try {
+ const response = await cache.match(request);
+ message.ports[0].postMessage('success');
+ } catch(error) {
+ message.ports[0].postMessage('error');
+ }
+ })()
+ `);
+ const {data} = await response;
+ assert_equals(data === "success", loaded);
+ }, `A ServiceWorker with ${worker_coep} use CacheStorage to get a ${response_corp} response.`)
+}
+
+// ------------------------------------------------------
+// worker_coep , response_corp , loaded
+// ------------------------------------------------------
+check("coep-none" , "corp-undefined" , true);
+check("coep-none" , "corp-cross-origin" , true);
+check("coep-require-corp" , "corp-undefined" , false);
+check("coep-require-corp" , "corp-cross-origin" , true);
+
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html
new file mode 100644
index 00000000000..b057967e7e9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-alt-crash-001.html
@@ -0,0 +1,15 @@
+<!doctype html>
+<title>Crash test: img alt rendering in combination with style attribute selector</title>
+<link rel="help" href="https://crbug.com/1057210">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ img { display: block; width: 100px; }
+ [style] + * {}
+</style>
+<img id="img" alt="alternative text">
+<script>
+ test(() => {
+ assert_equals(getComputedStyle(img).width, "100px");
+ }, "Should not crash.");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html b/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html
index 3f457eb492f..5824f836f0d 100644
--- a/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html
+++ b/tests/wpt/web-platform-tests/html/rendering/unmapped-attributes.html
@@ -52,6 +52,10 @@ const tests = [
[ newElem("iframe"), "border", "borderRightWidth" ],
[ newElem("iframe"), "border", "borderBottomWidth" ],
[ newElem("iframe"), "border", "borderLeftWidth" ],
+ [ newElem("iframe"), "hspace", "marginLeft" ],
+ [ newElem("iframe"), "hspace", "marginRight" ],
+ [ newElem("iframe"), "vspace", "marginTop" ],
+ [ newElem("iframe"), "vspace", "marginBottom" ],
[ newElem("marquee"), "border", "borderTopWidth" ],
[ newElem("marquee"), "border", "borderRightWidth" ],
[ newElem("marquee"), "border", "borderBottomWidth" ],
diff --git a/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html
new file mode 100644
index 00000000000..86a290d50db
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-subframe-detached-crash.html
@@ -0,0 +1,26 @@
+<!doctype html>
+<html class="test-wait">
+<title>Crash when detaching a frame during a lazy-load operation</title>
+<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
+<link rel="author" href="https://mozilla.org" title="Mozilla">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1619858">
+<iframe srcdoc=""></iframe>
+<script>
+onload = function() {
+ let frame = document.querySelector("iframe");
+ frame.contentDocument.body.innerHTML = `
+ <div style="height: 300vh"></div>
+ <img loading="lazy" src="/images/blue96x96.png" width=96 height=96>
+ `;
+ let img = frame.contentDocument.querySelector("img");
+ new IntersectionObserver(() => {
+ frame.remove();
+ requestAnimationFrame(function() {
+ requestAnimationFrame(function() {
+ document.documentElement.className = "";
+ });
+ });
+ }).observe(img);
+ frame.contentWindow.scrollTo(0, img.getBoundingClientRect().top);
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
new file mode 100644
index 00000000000..4c83c7e8a54
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/webrtc/dictionary-helper.js"></script>
+<script>
+ test(t => {
+ assert_true("userAgentData" in navigator);
+ }, "navigator.getUserAgent() is exposed.");
+
+ promise_test(async t => {
+ const uaData = navigator.userAgentData;
+ for (ua of uaData.uaList) {
+ assert_equals(typeof ua.brand, "string", "brand should be a string");
+ assert_equals(typeof ua.version, "string", "version should be a string");
+ }
+ assert_equals(typeof uaData.mobile, "boolean", "mobile should be a boolean");
+ const highEntropyData = await uaData.getHighEntropyValues(["platform", "platformVersion", "architecture", "model"]);
+ assert_equals(typeof highEntropyData["platform"], "string", "Platform brand should be a string");
+ assert_equals(typeof highEntropyData["platformVersion"], "string", "Platform version should be a string");
+ assert_equals(typeof highEntropyData["architecture"], "string", "Architecture should be a string");
+ assert_equals(typeof highEntropyData["model"], "string", "Model should be a string");
+ const highEntropyData2 = await uaData.getHighEntropyValues([]);
+ assert_equals(highEntropyData2["platform"], "", "Platform brand should be an empty string");
+ assert_equals(highEntropyData2["platformVersion"], "", "Platform version should be an empty string");
+ assert_equals(highEntropyData2["architecture"], "", "Architecture should be an empty string");
+ assert_equals(highEntropyData2["model"], "", "Model should be an empty string");
+ }, "navigator.getUserAgent() returns a UserAgentMetadata object.");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html
deleted file mode 100644
index 5f0dba6bcf7..00000000000
--- a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.tentative.https.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/webrtc/dictionary-helper.js"></script>
-<script>
- test(t => {
- assert_true("getUserAgent" in navigator);
- }, "navigator.getUserAgent() is exposed.");
-
- promise_test(t => {
- return navigator.getUserAgent()
- .then(ua => {
- // TODO(web-platform-tests/wpt#9106): Use `idlharness.js` once it supports dictionaries.
- assert_string_field(ua, "brand");
- assert_string_field(ua, "version");
- assert_string_field(ua, "platform");
- assert_string_field(ua, "architecture");
- assert_string_field(ua, "model");
- });
- }, "navigator.getUserAgent() returns a UserAgentMetadata object.");
-</script>
diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/assumptions/allowed-to-play.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/assumptions/allowed-to-play.html.ini
index 87726f49239..6891cbe24e3 100644
--- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/assumptions/allowed-to-play.html.ini
+++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/assumptions/allowed-to-play.html.ini
@@ -7,7 +7,3 @@
[<audio> autoplay]
expected:
if product == "safari": FAIL # https://bugs.webkit.org/show_bug.cgi?id=190775
-
- [<video> autoplay]
- expected:
- if product == "safari": TIMEOUT # https://bugs.webkit.org/show_bug.cgi?id=190775
diff --git a/tests/wpt/web-platform-tests/interfaces/construct-stylesheets.idl b/tests/wpt/web-platform-tests/interfaces/construct-stylesheets.idl
index fca2a3e2887..35121866f66 100644
--- a/tests/wpt/web-platform-tests/interfaces/construct-stylesheets.idl
+++ b/tests/wpt/web-platform-tests/interfaces/construct-stylesheets.idl
@@ -16,6 +16,6 @@ dictionary CSSStyleSheetInit {
boolean disabled = false;
};
-partial interface DocumentOrShadowRoot {
+partial interface mixin DocumentOrShadowRoot {
attribute FrozenArray<CSSStyleSheet> adoptedStyleSheets;
};
diff --git a/tests/wpt/web-platform-tests/interfaces/origin-policy.idl b/tests/wpt/web-platform-tests/interfaces/origin-policy.idl
new file mode 100644
index 00000000000..e48e0632bd8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/interfaces/origin-policy.idl
@@ -0,0 +1,8 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into reffy-reports
+// (https://github.com/tidoust/reffy-reports)
+// Source: Origin Policy (https://wicg.github.io/origin-policy/)
+
+partial interface mixin WindowOrWorkerGlobalScope {
+ readonly attribute FrozenArray<DOMString> originPolicyIds;
+};
diff --git a/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl b/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl
index 51c996959be..5b1c45a7739 100644
--- a/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl
+++ b/tests/wpt/web-platform-tests/interfaces/shape-detection-api.idl
@@ -15,12 +15,9 @@ dictionary FaceDetectorOptions {
boolean fastMode;
};
-[Exposed=(Window,Worker),
- SecureContext,
- Serializable]
-interface DetectedFace {
- [SameObject] readonly attribute DOMRectReadOnly boundingBox;
- [SameObject] readonly attribute FrozenArray<Landmark>? landmarks;
+dictionary DetectedFace {
+ required DOMRectReadOnly boundingBox;
+ required FrozenArray<Landmark>? landmarks;
};
dictionary Landmark {
@@ -47,14 +44,11 @@ dictionary BarcodeDetectorOptions {
sequence<BarcodeFormat> formats;
};
-[Exposed=(Window,Worker),
- SecureContext,
- Serializable]
-interface DetectedBarcode {
- [SameObject] readonly attribute DOMRectReadOnly boundingBox;
- [SameObject] readonly attribute DOMString rawValue;
- [SameObject] readonly attribute BarcodeFormat format;
- [SameObject] readonly attribute FrozenArray<Point2D> cornerPoints;
+dictionary DetectedBarcode {
+ required DOMRectReadOnly boundingBox;
+ required DOMString rawValue;
+ required BarcodeFormat format;
+ required FrozenArray<Point2D> cornerPoints;
};
enum BarcodeFormat {
diff --git a/tests/wpt/web-platform-tests/interfaces/trusted-types.tentative.idl b/tests/wpt/web-platform-tests/interfaces/trusted-types.tentative.idl
index be58b63b2c3..29a1822465f 100644
--- a/tests/wpt/web-platform-tests/interfaces/trusted-types.tentative.idl
+++ b/tests/wpt/web-platform-tests/interfaces/trusted-types.tentative.idl
@@ -4,34 +4,43 @@ typedef (DOMString or TrustedHTML) HTMLString;
typedef (DOMString or TrustedScript) ScriptString;
typedef (DOMString or TrustedScriptURL) ScriptURLString;
-[Exposed=(Window, Worker)]
-interface TrustedHTML {
+[
+ Exposed=(Window, Worker),
+ SecureContext
+] interface TrustedHTML {
stringifier;
};
-[Exposed=(Window, Worker)]
-interface TrustedScript {
+[
+ Exposed=(Window, Worker),
+ SecureContext
+] interface TrustedScript {
stringifier;
};
-[Exposed=(Window, Worker)]
-interface TrustedScriptURL {
+[
+ Exposed=(Window, Worker),
+ SecureContext
+] interface TrustedScriptURL {
stringifier;
};
-[Exposed=(Window, Worker)]
-interface TrustedTypePolicyFactory {
- [Unforgeable] TrustedTypePolicy createPolicy(DOMString policyName, TrustedTypePolicyOptions policyOptions);
+[
+ Exposed=(Window, Worker),
+ SecureContext
+] interface TrustedTypePolicyFactory {
+ TrustedTypePolicy createPolicy(DOMString policyName, TrustedTypePolicyOptions policyOptions);
// All the policy object names that have been created
- [Unforgeable] sequence<DOMString> getPolicyNames();
};
-[Exposed=(Window, Worker)]
-interface TrustedTypePolicy {
- [Unforgeable] readonly attribute DOMString name;
- [Unforgeable] TrustedHTML createHTML(DOMString input);
- [Unforgeable] TrustedScript createScript(DOMString input);
- [Unforgeable] TrustedScriptURL createScriptURL(DOMString input);
+[
+ Exposed=(Window, Worker),
+ SecureContext
+] interface TrustedTypePolicy {
+ readonly attribute DOMString name;
+ TrustedHTML createHTML(DOMString input);
+ TrustedScript createScript(DOMString input);
+ TrustedScriptURL createScriptURL(DOMString input);
};
dictionary TrustedTypePolicyOptions {
diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
index d1a54898b9a..f66b0791cb2 100644
--- a/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
+++ b/tests/wpt/web-platform-tests/interfaces/webrtc-stats.idl
@@ -203,7 +203,7 @@ dictionary RTCVideoSourceStats : RTCMediaSourceStats {
unsigned long height;
unsigned long bitDepth;
unsigned long frames;
- unsigned long framesPerSecond;
+ double framesPerSecond;
};
dictionary RTCRtpContributingSourceStats : RTCStats {
@@ -220,7 +220,7 @@ dictionary RTCPeerConnectionStats : RTCStats {
unsigned long dataChannelsAccepted;
};
-dictionary RTCRtpTransceiverStats {
+dictionary RTCRtpTransceiverStats : RTCStats {
DOMString senderId;
DOMString receiverId;
DOMString mid;
@@ -257,7 +257,7 @@ dictionary RTCAudioReceiverStats : RTCAudioHandlerStats {
dictionary RTCDataChannelStats : RTCStats {
DOMString label;
DOMString protocol;
- long dataChannelIdentifier;
+ unsigned short dataChannelIdentifier;
DOMString transportId;
RTCDataChannelState state;
unsigned long messagesSent;
@@ -354,95 +354,3 @@ dictionary RTCIceServerStats : RTCStats {
unsigned long totalResponsesReceived;
double totalRoundTripTime;
};
-
-dictionary RTCMediaStreamStats : RTCStats {
- DOMString streamIdentifier;
- sequence<DOMString> trackIds;
-};
-
-dictionary RTCSenderVideoTrackAttachmentStats : RTCVideoSenderStats {
-};
-
-dictionary RTCSenderAudioTrackAttachmentStats : RTCAudioSenderStats {
-};
-
-dictionary RTCReceiverVideoTrackAttachmentStats : RTCVideoReceiverStats {};
-
-dictionary RTCReceiverAudioTrackAttachmentStats : RTCAudioReceiverStats {};
-
-partial dictionary RTCCodecStats {
- DOMString implementation;
-};
-
-partial dictionary RTCIceCandidateStats {
- boolean deleted = false;
- boolean isRemote;
-};
-
-partial dictionary RTCIceCandidatePairStats {
- double totalRtt;
- double currentRtt;
- unsigned long long priority;
-};
-
-partial dictionary RTCRtpStreamStats {
- DOMString mediaType;
- double averageRTCPInterval;
-};
-
-partial dictionary RTCInboundRtpStreamStats {
- double fractionLost;
-};
-
-partial dictionary RTCAudioHandlerStats {
- double audioLevel;
- double totalAudioEnergy;
- double totalSamplesDuration;
- boolean voiceActivityFlag;
-};
-
-partial dictionary RTCAudioSenderStats {
- unsigned long long totalSamplesSent;
- double echoReturnLoss;
- double echoReturnLossEnhancement;
-};
-
-partial dictionary RTCAudioReceiverStats {
- DOMHighResTimeStamp estimatedPlayoutTimestamp;
- double jitterBufferDelay;
- unsigned long long jitterBufferEmittedCount;
- unsigned long long totalSamplesReceived;
- unsigned long long concealedSamples;
- unsigned long long silentConcealedSamples;
- unsigned long long concealmentEvents;
- unsigned long long insertedSamplesForDeceleration;
- unsigned long long removedSamplesForAcceleration;
- double audioLevel;
- double totalAudioEnergy;
- double totalSamplesDuration;
-};
-
-partial dictionary RTCVideoHandlerStats {
- unsigned long frameWidth;
- unsigned long frameHeight;
- double framesPerSecond;
-};
-
-partial dictionary RTCVideoSenderStats {
- unsigned long keyFramesSent;
- unsigned long framesCaptured;
- unsigned long framesSent;
- unsigned long hugeFramesSent;
-};
-
-partial dictionary RTCVideoReceiverStats {
- unsigned long keyFramesReceived;
- DOMHighResTimeStamp estimatedPlayoutTimestamp;
- double jitterBufferDelay;
- unsigned long long jitterBufferEmittedCount;
- unsigned long framesReceived;
- unsigned long framesDecoded;
- unsigned long framesDropped;
- unsigned long partialFramesLost;
- unsigned long fullFramesLost;
-};
diff --git a/tests/wpt/web-platform-tests/kv-storage/META.yml b/tests/wpt/web-platform-tests/kv-storage/META.yml
deleted file mode 100644
index bf4a1e6e8b4..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/META.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-spec: https://wicg.github.io/kv-storage/
-suggested_reviewers:
- - domenic
diff --git a/tests/wpt/web-platform-tests/kv-storage/backingstore.https.html b/tests/wpt/web-platform-tests/kv-storage/backingstore.https.html
deleted file mode 100644
index c0f49d48f48..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/backingstore.https.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: backingStore getter</title>
-<!-- See https://github.com/WICG/kv-storage/issues/45 -->
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import storage from "std:kv-storage";
-
-test(() => {
- assert_equals(storage.backingStore, storage.backingStore);
-}, "backingStore must return the same object each time");
-
-test(() => {
- assert_true(Object.isFrozen(storage.backingStore));
-}, "backingStore must be a frozen object");
-
-test(() => {
- const { backingStore } = storage;
- assert_array_equals(Object.keys(backingStore), ["database", "store", "version"], "property names");
- assert_array_equals(Object.getOwnPropertySymbols(backingStore), [], "no symbols")
- assert_own_property(backingStore, "database");
- assert_own_property(backingStore, "store");
- assert_own_property(backingStore, "version");
- assert_equals(Object.getPrototypeOf(backingStore), Object.prototype);
-
- assert_equals(backingStore.database, "kv-storage:default");
- assert_equals(backingStore.store, "store");
- assert_equals(backingStore.version, 1);
-}, "backingStore object must have the right shape");
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/cause-errors-via-idb.https.html b/tests/wpt/web-platform-tests/kv-storage/cause-errors-via-idb.https.html
deleted file mode 100644
index 16be979d037..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/cause-errors-via-idb.https.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: causing errors by directly manipulating the IDB</title>
-<meta name="timeout" content="long">
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/IndexedDB/support-promises.js"></script>
-
-<script type="module">
-import { testWithArea, testWithAreaNoCleanup } from "./helpers/kvs-tests.js";
-
-const mustFail = {
- "set()": area => area.set(1, "value 1"),
- "get()": area => area.get(1),
- "delete()": area => area.delete(1),
- "keys()": area => {
- const iter = area.keys();
- return iter.next();
- },
- "values()": area => {
- const iter = area.values();
- return iter.next();
- },
- "entries()": area => {
- const iter = area.entries();
- return iter.next();
- }
-};
-
-for (const [method, testFn] of Object.entries(mustFail)) {
- testWithArea(async (area, t) => {
- const { database, version } = area.backingStore;
- const db = await migrateNamedDatabase(t, database, version + 1, () => {});
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "VersionError", result);
- }, `${method}: upgrading the database must cause a "VersionError" DOMException`);
-
- testWithAreaNoCleanup(async (area, t) => {
- const { database } = area.backingStore;
-
- // Set up a new database with that name, but with no object stores!
- // NB: this depends on the fact that createNameDatabase sets the initial version to 1, which is
- // the same as the database version used/expected by KV Storage.
- const db = await createNamedDatabase(t, database, () => {});
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "InvalidStateError", result);
- }, `${method}: creating a same-named database with no object store must cause an "InvalidStateError" DOMException`);
-
- testWithAreaNoCleanup(async (area, t) => {
- const { database } = area.backingStore;
-
- const db = await createNamedDatabase(t, database, db => {
- db.createObjectStore("wrongName");
- });
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "InvalidStateError", result);
- }, `${method}: creating a same-named database with a single object store with the wrong name must cause an "InvalidStateError" DOMException`);
-
- testWithAreaNoCleanup(async (area, t) => {
- const { database, store } = area.backingStore;
-
- const db = await createNamedDatabase(t, database, db => {
- db.createObjectStore(store);
- db.createObjectStore("wrongName");
- });
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "InvalidStateError", result);
- }, `${method}: creating a same-named database with more than one object store must cause an "InvalidStateError" DOMException`);
-
- testWithAreaNoCleanup(async (area, t) => {
- const { database, store } = area.backingStore;
-
- const db = await createNamedDatabase(t, database, db => {
- db.createObjectStore(store, { autoIncrement: true });
- });
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "InvalidStateError", result);
- }, `${method}: creating a same-named database the right object store but a bad schema (autoIncrement = true) must cause an "InvalidStateError" DOMException`);
-
- testWithAreaNoCleanup(async (area, t) => {
- const { database, store } = area.backingStore;
-
- const db = await createNamedDatabase(t, database, db => {
- db.createObjectStore(store, { keyPath: "somekey" });
- });
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "InvalidStateError", result);
- }, `${method}: creating a same-named database the right object store but a bad schema (keyPath != null) must cause an "InvalidStateError" DOMException`);
-
- testWithAreaNoCleanup(async (area, t) => {
- const { database, store } = area.backingStore;
-
- const db = await createNamedDatabase(t, database, db => {
- const s = db.createObjectStore(store);
- s.createIndex("index", "indexKey");
- });
-
- const result = testFn(area);
-
- await promise_rejects_dom(t, "InvalidStateError", result);
- }, `${method}: creating a same-named database the right object store but a bad schema (has indices) must cause an "InvalidStateError" DOMException`);
-}
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/entries.https.html b/tests/wpt/web-platform-tests/kv-storage/entries.https.html
deleted file mode 100644
index 07815920d5e..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/entries.https.html
+++ /dev/null
@@ -1,291 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: entries() trickier tests</title>
-<meta name="timeout" content="long">
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import { testWithArea } from "./helpers/kvs-tests.js";
-import * as iterAssert from "./helpers/iter-assert.js";
-import {
- assertAsyncIteratorEquals,
- assertAsyncIteratorCustomEquals,
- assertArrayCustomEquals,
- assertEqualPostKeyRoundtripping
-} from "./helpers/equality-asserters.js";
-
-function assertEqualsArrayOrUndefined(actual, expected, label) {
- if (expected === undefined) {
- return assert_equals(actual, expected, label);
- }
- return assert_array_equals(actual, expected, label);
-}
-
-testWithArea(async area => {
- await area.set(1, "value 1");
- await area.set(2, "value 2");
- await area.set(3, "value 3");
-
- await assertAsyncIteratorCustomEquals(
- area.entries(),
- [[1, "value 1"], [2, "value 2"], [3, "value 3"]],
- assert_array_equals
- );
-}, "Using for-await-of to collect the results works");
-
-testWithArea(async area => {
- // We're not testing every key type since this isn't a test of IndexedDB.
- await area.set(1, "value 1");
- await area.set(new Date(500), "value date 500");
- await area.set(-1, "value -1");
- await area.set(new Date(-20), "value date -20");
- await area.set("aaa", "value aaa");
- await area.set("a", "value a");
- await area.set(-Infinity, "value -Infinity");
-
- await assertAsyncIteratorCustomEquals(
- area.entries(),
- [
- [-Infinity, "value -Infinity"],
- [-1, "value -1"],
- [1, "value 1"],
- [new Date(-20), "value date -20"],
- [new Date(500), "value date 500"],
- ["a", "value a"],
- ["aaa", "value aaa"]
- ],
- (actual, expected, label) => {
- return assertArrayCustomEquals(actual, expected, assertEqualPostKeyRoundtripping, label);
- }
- );
-}, "Results are returned in IndexedDB order");
-
-testWithArea(async area => {
- await area.set(1, "value 1");
- await area.set(2, "value 2");
- await area.set(3, "value 3");
-
- const iter = area.entries();
- const iterResults = [
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next()
- ];
-
- iterAssert.iterResultsCustom(
- iterResults,
- [
- [[1, "value 1"], false],
- [[2, "value 2"], false],
- [[3, "value 3"], false],
- [undefined, true],
- [undefined, true],
- [undefined, true]
- ],
- assertEqualsArrayOrUndefined
- );
-}, "Manual testing of .next() calls, with awaiting");
-
-testWithArea(async area => {
- area.set(1, "value 1");
- area.set(2, "value 2");
- area.set(3, "value 3");
-
- const iter = area.entries();
- const promises = [
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next()
- ];
- const iterResults = await Promise.all(promises);
-
- iterAssert.iterResultsCustom(
- iterResults,
- [
- [[1, "value 1"], false],
- [[2, "value 2"], false],
- [[3, "value 3"], false],
- [undefined, true],
- [undefined, true],
- [undefined, true]
- ],
- assertEqualsArrayOrUndefined
- );
-}, "Manual testing of .next() calls, no awaiting");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.set(15, "value 15");
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [30, "value 30"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Inserting an entry before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.set(25, "value 25");
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [25, "value 25"], [30, "value 30"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Inserting an entry after the current entry must show up in iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.delete(10);
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [30, "value 30"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Deleting an entry before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.delete(20);
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [30, "value 30"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Deleting the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.delete(30);
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Deleting an entry after the current entry must show up in iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.set(10, "value 10, but changed!!");
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [30, "value 30"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Modifying a value before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.set(20, "value 20, but changed!!");
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [30, "value 30"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Modifying a value at the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const entry of area.entries()) {
- seen.push(entry);
- if (entry[0] === 20) {
- await area.set(30, "value 30, but changed!!");
- }
- }
-
- assertArrayCustomEquals(
- seen,
- [[10, "value 10"], [20, "value 20"], [30, "value 30, but changed!!"], [40, "value 40"]],
- assert_array_equals
- );
-}, "Modifying a value after the current entry must show up in iteration");
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/helpers/equality-asserters.js b/tests/wpt/web-platform-tests/kv-storage/helpers/equality-asserters.js
deleted file mode 100644
index 448ab31348c..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/helpers/equality-asserters.js
+++ /dev/null
@@ -1,91 +0,0 @@
-export function assertEqualDates(actual, expected, label) {
- label = formatLabel(label);
-
- assert_equals(expected.constructor, Date,
- `${label}assertEqualDates usage check: expected must be a Date`);
-
- assert_equals(actual.constructor, Date, `${label}must be a Date`);
- assert_equals(actual.valueOf(), expected.valueOf(), `${label}timestamps must match`);
-}
-
-export function assertEqualPostKeyRoundtripping(actual, expected, label) {
- label = formatLabel(label);
-
- // Please extend this to support other types as needed!
- assert_true(
- typeof expected === "number" || typeof expected === "string" || expected.constructor === Date,
- `${label}assertEqualPostKeyRoundtripping usage check: currently only supports numbers, strings, and dates`
- );
-
- if (expected.constructor === Date) {
- assert_equals(actual.constructor, Date, `${label}comparing to Date(${Number(expected)}) (actual = ${actual})`);
- actual = Number(actual);
- expected = Number(expected);
- }
-
- assert_equals(actual, expected, label);
-}
-
-export function assertEqualArrayBuffers(actual, expected, label) {
- label = formatLabel(label);
-
- assert_equals(expected.constructor, ArrayBuffer,
- `${label}assertEqualArrayBuffers usage check: expected must be an ArrayBuffer`);
-
- assert_equals(actual.constructor, ArrayBuffer, `${label}must be an ArrayBuffer`);
- assert_array_equals(new Uint8Array(actual), new Uint8Array(expected), `${label}must match`);
-}
-
-export function assertArrayBufferEqualsABView(actual, expected, label) {
- label = formatLabel(label);
-
- assert_true(ArrayBuffer.isView(expected),
- `${label}assertArrayBufferEqualsABView usage check: expected must be an ArrayBuffer view`);
-
- assertEqualArrayBuffers(actual, expected.buffer, label);
-}
-
-export function assertAsyncIteratorEquals(actual, expected, label) {
- return assertAsyncIteratorCustomEquals(actual, expected, Object.is, label);
-}
-
-export function assertArrayCustomEquals(actual, expected, equalityAsserter, label) {
- label = formatLabel(label);
-
- assert_true(Array.isArray(expected),
- `${label} assertArrayCustomEquals usage check: expected must be an Array`);
-
- assert_true(Array.isArray(actual), `${label}must be an array`);
- assert_equals(actual.length, expected.length, `${label}length must be as expected`);
-
- for (let i = 0; i < actual.length; ++i) {
- equalityAsserter(actual[i], expected[i], `${label}index ${i}`);
- }
-}
-
-export async function assertAsyncIteratorCustomEquals(actual, expected, equalityAsserter, label) {
- label = formatLabel(label);
-
- assert_true(Array.isArray(expected),
- `${label} assertAsyncIteratorCustomEquals usage check: expected must be an Array`);
-
- const collected = await collectAsyncIterator(actual);
- assert_equals(collected.length, expected.length, `${label}length must be as expected`);
-
- for (let i = 0; i < collected.length; ++i) {
- equalityAsserter(collected[i], expected[i], `${label}index ${i}`);
- }
-}
-
-async function collectAsyncIterator(asyncIterator) {
- const array = [];
- for await (const entry of asyncIterator) {
- array.push(entry);
- }
-
- return array;
-}
-
-function formatLabel(label) {
- return label !== undefined ? `${label} ` : "";
-}
diff --git a/tests/wpt/web-platform-tests/kv-storage/helpers/expose-as-global.html b/tests/wpt/web-platform-tests/kv-storage/helpers/expose-as-global.html
deleted file mode 100644
index 4ff3c6cf9c2..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/helpers/expose-as-global.html
+++ /dev/null
@@ -1,8 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>Helper file to be loaded in an iframe that exposes a copy of StorageArea as a global</title>
-
-<script type="module">
-import { StorageArea } from "std:kv-storage";
-window.StorageArea = StorageArea;
-</script> \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/kv-storage/helpers/iter-assert.js b/tests/wpt/web-platform-tests/kv-storage/helpers/iter-assert.js
deleted file mode 100644
index e1ac73c8e9a..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/helpers/iter-assert.js
+++ /dev/null
@@ -1,42 +0,0 @@
-export function iterResultCustom(o, expectedValue, expectedDone, valueAsserter, label) {
- label = formatLabel(label);
-
- assert_equals(typeof expectedDone, "boolean",
- `${label} iterResult assert usage check: expectedDone must be a boolean`);
-
- propertyKeys(o, ["value", "done"], [], label);
- assert_equals(Object.getPrototypeOf(o), Object.prototype, `${label}prototype must be Object.prototype`);
- valueAsserter(o.value, expectedValue, `${label}value`);
- assert_equals(o.done, expectedDone, `${label}done`);
-}
-
-export function iterResult(o, expectedValue, expectedDone, label) {
- return iterResultCustom(o, expectedValue, expectedDone, assert_equals, label);
-}
-
-export function iterResultsCustom(actualArray, expectedArrayOfArrays, valueAsserter, label) {
- label = formatLabel(label);
-
- assert_equals(actualArray.length, expectedArrayOfArrays.length,
- `${label} iterResults assert usage check: actual and expected must have the same length`);
-
- for (let i = 0; i < actualArray.length; ++i) {
- const [expectedValue, expectedDone] = expectedArrayOfArrays[i];
- iterResultCustom(actualArray[i], expectedValue, expectedDone, valueAsserter, `${label}iter result ${i}`);
- }
-}
-
-export function iterResults(actualArray, expectedArrayOfArrays, label) {
- return iterResultsCustom(actualArray, expectedArrayOfArrays, assert_equals, label);
-}
-
-function propertyKeys(o, expectedNames, expectedSymbols, label) {
- label = formatLabel(label);
- assert_array_equals(Object.getOwnPropertyNames(o), expectedNames, `${label}property names`);
- assert_array_equals(Object.getOwnPropertySymbols(o), expectedSymbols,
- `${label}property symbols`);
-}
-
-function formatLabel(label) {
- return label !== undefined ? `${label} ` : "";
-}
diff --git a/tests/wpt/web-platform-tests/kv-storage/helpers/kvs-tests.js b/tests/wpt/web-platform-tests/kv-storage/helpers/kvs-tests.js
deleted file mode 100644
index 9fd9d205ae1..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/helpers/kvs-tests.js
+++ /dev/null
@@ -1,82 +0,0 @@
-import defaultArea, { StorageArea } from "std:kv-storage";
-import { assertAsyncIteratorEquals, assertAsyncIteratorCustomEquals } from "./equality-asserters.js";
-
-// Used when we're manually creating the database, and so the IDB helpers also want to clean it up.
-// If we used testWithArea, then the IDB helpers would time out in their cleanup steps when they
-// fail to delete the already-deleted database.
-export function testWithAreaNoCleanup(testFn, description) {
- promise_test(t => {
- const area = new StorageArea(description);
-
- return testFn(area, t);
- }, description);
-}
-
-export function testWithArea(testFn, description) {
- promise_test(t => {
- const area = new StorageArea(description);
- t.add_cleanup(t => area.clear());
-
- return testFn(area, t);
- }, description);
-}
-
-export function testWithDefaultArea(testFn, description) {
- promise_test(t => {
- t.add_cleanup(t => defaultArea.clear());
-
- return testFn(defaultArea, t);
- }, description);
-}
-
-// These two functions take a key/value and use them to test
-// set()/get()/delete()/keys()/values()/entries(). The keyEqualityAsserter should be a
-// function from ./equality-asserters.js.
-
-export function testVariousMethodsWithDefaultArea(label, key, value, keyEqualityAsserter) {
- testWithDefaultArea(testVariousMethodsInner(key, value, keyEqualityAsserter), label);
-}
-
-export function testVariousMethods(label, key, value, keyEqualityAsserter) {
- testWithArea(testVariousMethodsInner(key, value, keyEqualityAsserter), label);
-}
-
-function testVariousMethodsInner(key, value, keyEqualityAsserter) {
- return async area => {
- await assertPromiseEquals(area.set(key, value), undefined, "set()", "undefined");
-
- await assertPromiseEquals(area.get(key), value, "get()", "the set value");
-
- const keysIter = area.keys();
- await assertAsyncIteratorCustomEquals(keysIter, [key], keyEqualityAsserter, "keys() must have the key");
-
- const valuesIter = area.values();
- await assertAsyncIteratorEquals(valuesIter, [value], "values() must have the value");
-
- const entriesIter = area.entries();
-
- const entry0 = await entriesIter.next();
- assert_false(entry0.done, "entries() 0th iter-result must not be done");
- assert_true(Array.isArray(entry0.value), "entries() 0th iter-result value must be an array");
- assert_equals(entry0.value.length, 2, "entries() 0th iter-result value must have 2 elements");
- keyEqualityAsserter(entry0.value[0], key, "entries() 0th iter-result value's 0th element must be the key");
- assert_equals(entry0.value[1], value, "entries() 0th iter-result value's 1st element must be the value");
-
- const entry1 = await entriesIter.next();
- assert_true(entry1.done, "entries() 1st iter-result must be done");
- assert_equals(entry1.value, undefined, "entries() 1st iter-result must have undefined value");
-
- await assertPromiseEquals(area.delete(key), undefined, "delete()", "undefined");
-
- await assertPromiseEquals(area.get(key), undefined, "get()", "undefined after deleting");
- };
-}
-
-async function assertPromiseEquals(promise, expected, label, expectedLabel) {
- assertIsPromise(promise, label);
- assert_equals(await promise, expected, label + " must fulfill with " + expectedLabel);
-}
-
-function assertIsPromise(promise, label) {
- assert_equals(promise.constructor, Promise, label + " must return a promise");
-}
diff --git a/tests/wpt/web-platform-tests/kv-storage/interface.https.html b/tests/wpt/web-platform-tests/kv-storage/interface.https.html
deleted file mode 100644
index d98b1c876d3..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/interface.https.html
+++ /dev/null
@@ -1,176 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: IDL interface tests</title>
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/resources/WebIDLParser.js"></script>
-<script src="/resources/idlharness.js"></script>
-
-<script type="module">
-import storage, { StorageArea } from "std:kv-storage";
-
-// Web IDL/idlharness.js do not yet have support for the spec's IDL, which uses module {},
-// async_iterator, and some new extended attributes. This IDL is a mutated version to work with the
-// current idlharness.js to get some coverage.
-//
-// When the relevant Web IDL PRs land and idlharness.js gets updated, we can replace this file with
-// a normal-style idlharness test, with the IDL scraped from the spec.
-//
-// Other tests in this file are similarly ones that should be generatable from the IDL, in theory.
-
-const idl = `
-[Constructor(DOMString name)]
-interface StorageArea {
- Promise<void> set(any key, any value);
- Promise<any> get(any key);
- Promise<void> delete(any key);
- Promise<void> clear();
-
-// async_iterable<any, any>;
-
- [SameObject] readonly attribute object backingStore;
-};
-`;
-
-// Define a global property because idlharness.js only understands
-// global properties, not modules.
-Object.defineProperty(window, "StorageArea", {
- configurable: true,
- enumerable: false,
- writable: true,
- value: StorageArea
-});
-
-test(t => {
- window.testStorageArea = storage;
- t.add_cleanup(() => {
- delete window.testStorageArea;
- });
-
- const idlArray = new IdlArray();
- idlArray.add_idls(idl);
- idlArray.add_objects({ StorageArea: ["window.testStorageArea"] });
- idlArray.test();
-}, "idlharness basic interface tests");
-
-test(() => {
- assert_equals(storage instanceof StorageArea, true, "instanceof");
- assert_equals(storage.constructor, StorageArea, ".constructor property");
- assert_equals(Object.getPrototypeOf(storage), StorageArea.prototype, "[[Prototype]]");
-}, "Built-in storage export is a StorageArea");
-
-// These should be auto-tested by idlharness eventually, similar to
-// https://github.com/web-platform-tests/wpt/blob/3725067ef0328c998be2ba93dbaeb0579586fccd/resources/idlharness.js#L2452
-// for sync iterators (although this tests more than that does).
-test(() => {
- for (const methodName of ["keys", "values", "entries"]) {
- const descriptor = Object.getOwnPropertyDescriptor(StorageArea.prototype, methodName);
-
- assert_true(descriptor.writable, `${methodName} property should be writable`);
- assert_true(descriptor.configurable, `${methodName} property should be configurable`);
-
- // May need updating if https://github.com/heycam/webidl/issues/738 changes the spec
- assert_true(descriptor.enumerable, `${methodName} property should be enumerable`);
-
- assert_equals(typeof descriptor.value, "function",
- `${methodName} property should be a function`);
- assert_equals(descriptor.value.length, 0, `${methodName} function object length should be 0`);
- assert_equals(descriptor.value.name, methodName,
- `${methodName} function object should have the right name`);
-
- assert_throws_js(TypeError, () => descriptor.value.call(StorageArea.prototype),
- `${methodName} should throw when called on the prototype directly`);
- assert_throws_js(TypeError, () => descriptor.value.call({}),
- `${methodName} should throw when called on an empty object`);
- }
-
- const AsyncIteratorPrototype =
- Object.getPrototypeOf(Object.getPrototypeOf(async function*() {}).prototype);
- const asyncIteratorProto = Object.getPrototypeOf(storage.keys());
- assert_equals(Object.getPrototypeOf(storage.values()), asyncIteratorProto,
- "keys() and values() return values must have the same prototype");
- assert_equals(Object.getPrototypeOf(storage.entries()), asyncIteratorProto,
- "keys() and entries() return values must have the same prototype");
-
- assert_equals(Object.getPrototypeOf(asyncIteratorProto), AsyncIteratorPrototype,
- "[[Prototype]] must be the async iterator prototype");
-
- assert_array_equals(Object.getOwnPropertyNames(asyncIteratorProto), ["next"],
- `async iterator prototype object must have a next method`);
-
- const nextMethodDescriptor = Object.getOwnPropertyDescriptor(asyncIteratorProto, "next");
- assert_true(nextMethodDescriptor.writable, `async iterator next property should be writable`);
- assert_true(nextMethodDescriptor.configurable,
- `async iterator next property should be configurable`);
-
- // May need updating if https://github.com/heycam/webidl/issues/739 changes the spec
- assert_true(nextMethodDescriptor.enumerable,
- `async iterator next property should be enumerable`);
-
- assert_equals(typeof nextMethodDescriptor.value, "function",
- `async iterator next property should be a function`);
- assert_equals(nextMethodDescriptor.value.length, 0,
- `async iterator next function object length should be 0`);
- assert_equals(nextMethodDescriptor.value.name, "next",
- `async iterator next function object should have the right name`);
-
- assert_array_equals(Object.getOwnPropertySymbols(asyncIteratorProto), [Symbol.toStringTag]);
- const toStringTagDescriptor = Object.getOwnPropertyDescriptor(
- asyncIteratorProto,
- Symbol.toStringTag
- );
- assert_false(toStringTagDescriptor.writable,
- `async iterator @@toStringTag property should be non-writable`);
- assert_true(toStringTagDescriptor.configurable,
- `async iterator @@toStringTag property should be configurable`);
- assert_false(toStringTagDescriptor.enumerable,
- `async iterator @@toStringTag property should be non-enumerable`);
- assert_equals(toStringTagDescriptor.value, "StorageArea AsyncIterator",
- `async iterator @@toStringTag property should have the right value`);
-
- assert_equals(StorageArea.prototype[Symbol.asyncIterator], StorageArea.prototype.entries,
- "@@asyncIterator method should be the same as entries");
-}, "@@asyncIterator tests");
-
-promise_test(async t => {
- const iframe = document.createElement("iframe");
- iframe.src = "helpers/expose-as-global.html";
- document.body.append(iframe);
-
- await frameLoadPromise(iframe);
- const OtherStorageArea = iframe.contentWindow.StorageArea;
- const TypeError = iframe.contentWindow.TypeError;
-
- await promise_rejects_js(t, TypeError,
- OtherStorageArea.prototype.set.call(storage, "testkey", "testvalue"),
- `set() must reject cross-realm`);
- await promise_rejects_js(t, TypeError,
- OtherStorageArea.prototype.get.call(storage, "testkey"),
- `get() must reject cross-realm`);
- await promise_rejects_js(t, TypeError,
- OtherStorageArea.prototype.delete.call(storage, "testkey"),
- `delete() must reject cross-realm`);
- await promise_rejects_js(t, TypeError, OtherStorageArea.prototype.clear.call(storage),
- `clear() must reject cross-realm`);
-
- assert_throws_js(TypeError, () => OtherStorageArea.prototype.keys.call(storage),
- `keys() must throw cross-realm`);
- assert_throws_js(TypeError, () => OtherStorageArea.prototype.values.call(storage),
- `values() must throw cross-realm`);
- assert_throws_js(TypeError, () => OtherStorageArea.prototype.entries.call(storage),
- `entries() must throw cross-realm`);
-
- const otherBackingStoreGetter =
- Object.getOwnPropertyDescriptor(OtherStorageArea.prototype, "backingStore").get;
- assert_throws_js(TypeError, () => otherBackingStoreGetter.call(storage),
- `backingStore must throw cross-realm`);
-}, "Same-realm brand checks");
-
-function frameLoadPromise(frame) {
- return new Promise((resolve, reject) => {
- frame.onload = resolve;
- frame.onerror = () => reject(new Error(`${frame.src} failed to load`));
- });
-}
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/key-types.https.html b/tests/wpt/web-platform-tests/kv-storage/key-types.https.html
deleted file mode 100644
index 210645f4c5a..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/key-types.https.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: tests against various key types</title>
-<meta name="timeout" content="long">
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import { testWithArea, testVariousMethods } from "./helpers/kvs-tests.js";
-import { assertEqualDates, assertEqualArrayBuffers, assertArrayBufferEqualsABView }
- from "./helpers/equality-asserters.js";
-
-const invalidKeys = {
- "undefined": undefined,
- "null": null,
- "a boolean": true,
- "a symbol": Symbol("a symbol"),
- "an object": { an: "object" },
- "a function": () => {},
- "a regexp": /foo/,
- "a Map": new Map(),
- "a Set": new Set(),
- "an IDBKeyRange": IDBKeyRange.only(5)
-};
-
-const validKeys = {
- "a number": [5, assert_equals],
- "a string": ["a string", assert_equals],
- "a Date": [new Date(), assertEqualDates],
- "a typed array": [new Uint8Array([1, 2]), assertArrayBufferEqualsABView],
- "a DataView": [new DataView(new Uint8Array([3, 4]).buffer), assertArrayBufferEqualsABView],
- "an ArrayBuffer": [new Uint8Array([5, 6]).buffer, assertEqualArrayBuffers]
-};
-
-const methods = ["delete", "get", "set"];
-
-for (const method of methods) {
- testWithArea(async (area, t) => {
- for (const [description, key] of Object.entries(invalidKeys)) {
- await promise_rejects_dom(t, "DataError", area[method](key), description);
- }
- }, `${method}: invalid keys`);
-
- testWithArea(async (area, t) => {
- for (const [description, key] of Object.entries(invalidKeys)) {
- await promise_rejects_dom(t, "DataError", area[method]([key]), description);
- }
- }, `${method}: invalid keys, nested in arrays`);
-
- testWithArea(async (area, t) => {
- for (const [key] of Object.values(validKeys)) {
- await area[method](key);
- }
- }, `${method}: valid keys`);
-
- testWithArea(async (area, t) => {
- for (const [key] of Object.values(validKeys)) {
- await area[method]([key]);
- }
- }, `${method}: valid keys, nested in arrays`);
-}
-
-for (const [description, [key, equalityAsserter]] of Object.entries(validKeys)) {
- testVariousMethods(`Storage methods smoke test: ${description} key`, key, 5, equalityAsserter);
-}
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/keys-values-entries.https.html b/tests/wpt/web-platform-tests/kv-storage/keys-values-entries.https.html
deleted file mode 100644
index 8aa6b9053db..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/keys-values-entries.https.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: keys()/values()/entries()</title>
-<meta name="timeout" content="long">
-
-<!--
- This file contains tests that are easy to generalize over all three methods.
- See sibling files for more complicated tests which are not worth generalizing.
--->
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/IndexedDB/support-promises.js"></script>
-
-<script type="module">
-import { testWithArea } from "./helpers/kvs-tests.js";
-import * as iterAssert from "./helpers/iter-assert.js";
-import { assertAsyncIteratorEquals } from "./helpers/equality-asserters.js";
-// Also uses some global functions included via support-promises.js.
-
-for (const method of ["keys", "values", "entries"]) {
- testWithArea(async area => {
- const iter = area[method]();
- const promise = iter.next();
-
- await area.set(1, "value 1");
-
- const iterResults = [
- await promise,
- await iter.next()
- ];
-
- iterAssert.iterResults(iterResults, [
- [undefined, true],
- [undefined, true]
- ]);
- }, `${method}(): .next() on empty means forever done, even if you set more`);
-
- testWithArea(async area => {
- for await (const key of area[method]()) {
- assert_unreached("Loop body must not be entered");
- }
- }, `${method}(): for-await-of loop body never executes`);
-
- testWithArea(async (area, t) => {
- await area.set(1, "value 1");
-
- const iter = area[method]();
-
- const { database, store, version } = area.backingStore;
- await migrateNamedDatabase(t, database, version + 1, () => {});
-
- const iterResultPromise1 = iter.next();
- const iterResultPromise2 = iter.next();
-
- await promise_rejects_dom(t, "VersionError", iterResultPromise1, "first next()");
- await promise_rejects_dom(t, "VersionError", iterResultPromise2, "second next()");
-
- const iterResultPromise3 = iter.next();
-
- assert_not_equals(iterResultPromise1, iterResultPromise2,
- "Two promises retrieved from synchronous next() calls must be different (1 vs 2)");
- assert_not_equals(iterResultPromise1, iterResultPromise3,
- "Two promises, one retrieved after waiting for the other, must be different (1 vs 3)");
- assert_not_equals(iterResultPromise2, iterResultPromise3,
- "Two promises, one retrieved after waiting for the other, must be different (2 vs 3)");
-
- await promise_rejects_dom(t, "VersionError", iterResultPromise2, "third next()");
-
- const reason1 = await iterResultPromise1.catch(r => r);
- const reason2 = await iterResultPromise2.catch(r => r);
- const reason3 = await iterResultPromise3.catch(r => r);
-
- assert_equals(reason1, reason2, "reasons must be the same (1 vs 2)");
- assert_equals(reason2, reason3, "reasons must be the same (2 vs 3)");
- }, `${method}(): error path: returns new rejected promises, each with the same reason`);
-}
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/keys.https.html b/tests/wpt/web-platform-tests/kv-storage/keys.https.html
deleted file mode 100644
index 3535d2fb939..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/keys.https.html
+++ /dev/null
@@ -1,237 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: keys() trickier tests</title>
-<meta name="timeout" content="long">
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import { testWithArea } from "./helpers/kvs-tests.js";
-import * as iterAssert from "./helpers/iter-assert.js";
-import {
- assertAsyncIteratorEquals,
- assertAsyncIteratorCustomEquals,
- assertEqualPostKeyRoundtripping
-} from "./helpers/equality-asserters.js";
-
-testWithArea(async area => {
- await area.set(1, "value 1");
- await area.set(2, "value 2");
- await area.set(3, "value 3");
-
- await assertAsyncIteratorEquals(area.keys(), [1, 2, 3]);
-}, "Using for-await-of to collect the results works");
-
-testWithArea(async area => {
- // We're not testing every key type since this isn't a test of IndexedDB.
- await area.set(1, "value 1");
- await area.set(new Date(500), "value date 500");
- await area.set(-1, "value -1");
- await area.set(new Date(-20), "value date -20");
- await area.set("aaa", "value aaa");
- await area.set("a", "value a");
- await area.set(-Infinity, "value -Infinity");
-
- await assertAsyncIteratorCustomEquals(
- area.keys(),
- [
- -Infinity,
- -1,
- 1,
- new Date(-20),
- new Date(500),
- "a",
- "aaa"
- ],
- assertEqualPostKeyRoundtripping
- );
-}, "Results are returned in IndexedDB order");
-
-testWithArea(async area => {
- await area.set(1, "value 1");
- await area.set(2, "value 2");
- await area.set(3, "value 3");
-
- const iter = area.keys();
- const iterResults = [
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next()
- ];
-
- iterAssert.iterResults(iterResults, [
- [1, false],
- [2, false],
- [3, false],
- [undefined, true],
- [undefined, true],
- [undefined, true]
- ]);
-}, "Manual testing of .next() calls, with awaiting");
-
-testWithArea(async area => {
- area.set(1, "value 1");
- area.set(2, "value 2");
- area.set(3, "value 3");
-
- const iter = area.keys();
- const promises = [
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next()
- ];
- const iterResults = await Promise.all(promises);
-
- iterAssert.iterResults(iterResults, [
- [1, false],
- [2, false],
- [3, false],
- [undefined, true],
- [undefined, true],
- [undefined, true]
- ]);
-}, "Manual testing of .next() calls, no awaiting");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.set(15, "value 15");
- }
- }
-
- assert_array_equals(seen, [10, 20, 30, 40]);
-}, "Inserting an entry before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.set(25, "value 25");
- }
- }
-
- assert_array_equals(seen, [10, 20, 25, 30, 40]);
-}, "Inserting an entry after the current entry must show up in iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.delete(10);
- }
- }
-
- assert_array_equals(seen, [10, 20, 30, 40]);
-}, "Deleting an entry before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.delete(20);
- }
- }
-
- assert_array_equals(seen, [10, 20, 30, 40]);
-}, "Deleting the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.delete(30);
- }
- }
-
- assert_array_equals(seen, [10, 20, 40]);
-}, "Deleting an entry after the current entry must show up in iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.set(10, "value 10, but changed!!");
- }
- }
-
- assert_array_equals(seen, [10, 20, 30, 40]);
-}, "Modifying a value before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.set(20, "value 20, but changed!!");
- }
- }
-
- assert_array_equals(seen, [10, 20, 30, 40]);
-}, "Modifying a value at the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const key of area.keys()) {
- seen.push(key);
- if (key === 20) {
- await area.set(30, "value 30, but changed!!");
- }
- }
-
- assert_array_equals(seen, [10, 20, 30, 40]);
-}, "Modifying a value after the current entry must have no effect on iteration (since we're iterating keys)");
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/README.md b/tests/wpt/web-platform-tests/kv-storage/secure-context/README.md
deleted file mode 100644
index 9b3539995bf..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# KV Storage `[SecureContext]` tests
-
-These tests ensure that KV Storage follows the rules for `[SecureContext]` modules. (As of the time of this writing, they are only proposed rules, in [heycam/webidl#675](https://github.com/heycam/webidl/pull/675).)
-
-Eventually these should probably be generalized and tested as part of `idlharness.js`.
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/dynamic-import.html b/tests/wpt/web-platform-tests/kv-storage/secure-context/dynamic-import.html
deleted file mode 100644
index e2d0ce378ef..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/dynamic-import.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: should not work in non-secure contexts when included via import()</title>
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script>
-"use strict";
-
-test(() => {
- assert_false(self.isSecureContext, "This test must run in a non-secure context");
-}, "Prerequisite check");
-
-promise_test(t => {
- return promise_rejects_js(t, TypeError, import("std:kv-storage"));
-});
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/import-maps.html b/tests/wpt/web-platform-tests/kv-storage/secure-context/import-maps.html
deleted file mode 100644
index 211b9e43b1f..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/import-maps.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: in non-secure contexts, import map mappings should fall back</title>
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script>
-"use strict";
-test(() => {
- assert_false(self.isSecureContext, "This test must run in a non-secure context");
-}, "Prerequisite check");
-</script>
-
-<script type="importmap">
-{
- "imports": {
- "./resources/dummy-module.js": [
- "std:kv-storage",
- "./resources/dummy-module.js"
- ]
- }
-}
-</script>
-
-<script type="module">
-promise_test(async () => {
- const result = await import("./resources/dummy-module.js");
- assert_equals(result.myExport, "not the real KV storage");
-});
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/import-statement.html b/tests/wpt/web-platform-tests/kv-storage/secure-context/import-statement.html
deleted file mode 100644
index 71e14b04e31..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/import-statement.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: should not work in non-secure contexts when included via an import statement</title>
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script>
-"use strict";
-setup({ allow_uncaught_exception: true });
-
-test(() => {
- assert_false(self.isSecureContext, "This test must run in a non-secure context");
-}, "Prerequisite check");
-
-const t = async_test('Static import kv-storage in non-secure context');
-
-window.addEventListener("error", t.step_func_done(errorEvent => {
- assert_equals(errorEvent.error.constructor, TypeError, "Must trigger a TypeError");
-}, { once: true }));
-</script>
-
-<script type="module"
- onerror="t.unreached_func('script error event should not be fired')()">
-import "std:kv-storage";
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/resources/dummy-module.js b/tests/wpt/web-platform-tests/kv-storage/secure-context/resources/dummy-module.js
deleted file mode 100644
index 27fb98860ea..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/resources/dummy-module.js
+++ /dev/null
@@ -1 +0,0 @@
-export const myExport = "not the real KV storage";
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/resources/test-side-effects.js b/tests/wpt/web-platform-tests/kv-storage/secure-context/resources/test-side-effects.js
deleted file mode 100644
index 39780a92fff..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/resources/test-side-effects.js
+++ /dev/null
@@ -1 +0,0 @@
-window.sideEffectsHappened = true;
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/script-element.html b/tests/wpt/web-platform-tests/kv-storage/secure-context/script-element.html
deleted file mode 100644
index b8170549ab5..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/script-element.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: should not work in non-secure contexts when included via a script element</title>
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script>
-"use strict";
-test(() => {
- assert_false(self.isSecureContext, "This test must run in a non-secure context");
-}, "Prerequisite check");
-
-window.t = async_test("Check the events");
-</script>
-
-<script type="module"
- src="std:kv-storage"
- onload="t.step(() => { assert_unreached('load event fired'); })"
- onerror="t.done()">
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/secure-context/side-effects.html b/tests/wpt/web-platform-tests/kv-storage/secure-context/side-effects.html
deleted file mode 100644
index f4c4b691d30..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/secure-context/side-effects.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: should fail in non-secure contexts in the fetching phase, not evaluation phase</title>
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script>
-"use strict";
-setup({ allow_uncaught_exception: true });
-
-window.sideEffectsHappened = false;
-
-test(() => {
- assert_false(self.isSecureContext, "This test must run in a non-secure context");
-}, "Prerequisite check");
-</script>
-
-<script type="module">
-import "./resources/test-side-effects.js";
-import "std:kv-storage";
-</script>
-
-<script type="module">
-test(() => {
- assert_false(window.sideEffectsHappened, "The side effects module didn't evaluate either");
-});
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/storage-smoke-test.https.html b/tests/wpt/web-platform-tests/kv-storage/storage-smoke-test.https.html
deleted file mode 100644
index 748b59bb2f2..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/storage-smoke-test.https.html
+++ /dev/null
@@ -1,15 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV storage: storage export smoke test</title>
-<meta name="timeout" content="long">
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import { testVariousMethodsWithDefaultArea } from "./helpers/kvs-tests.js";
-
-testVariousMethodsWithDefaultArea(
- "Storage methods smoke test with string key and value", "key", "value", assert_equals
-);
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/undefined-value.https.html b/tests/wpt/web-platform-tests/kv-storage/undefined-value.https.html
deleted file mode 100644
index d87641e95b8..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/undefined-value.https.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: undefined values</title>
-<meta name="timeout" content="long">
-
-<!-- https://github.com/wicg/kv-storage/commit/5bf31109f37d1371f619ea33d0e2391f10e8b8f5 -->
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import { StorageArea } from "std:kv-storage";
-import { testWithArea } from "./helpers/kvs-tests.js";
-import { assertAsyncIteratorEquals } from "./helpers/equality-asserters.js";
-
-testWithArea(async (area) => {
- assert_equals(await area.get("key"), undefined);
-}, "Get on a non-existant key returns undefined");
-
-testWithArea(async (area) => {
- await area.set("key", undefined);
- assert_equals(await area.get("key"), undefined);
-
- await assertAsyncIteratorEquals(area.keys(), [], "keys");
- await assertAsyncIteratorEquals(area.values(), [], "values");
- await assertAsyncIteratorEquals(area.entries(), [], "entries");
-}, "Setting undefined as a value when nothing was present is a no-op");
-
-testWithArea(async (area) => {
- await area.set("key", "value");
- await area.set("key", undefined);
-
- assert_equals(await area.get("key"), undefined);
-
- await assertAsyncIteratorEquals(area.keys(), [], "keys");
- await assertAsyncIteratorEquals(area.values(), [], "values");
- await assertAsyncIteratorEquals(area.entries(), [], "entries");
-}, "Setting undefined as a value deletes what was previously there");
-</script>
diff --git a/tests/wpt/web-platform-tests/kv-storage/values.https.html b/tests/wpt/web-platform-tests/kv-storage/values.https.html
deleted file mode 100644
index bbdc7aee844..00000000000
--- a/tests/wpt/web-platform-tests/kv-storage/values.https.html
+++ /dev/null
@@ -1,232 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>KV Storage: values() trickier tests</title>
-<meta name="timeout" content="long">
-
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-
-<script type="module">
-import { testWithArea } from "./helpers/kvs-tests.js";
-import * as iterAssert from "./helpers/iter-assert.js";
-import { assertAsyncIteratorEquals } from "./helpers/equality-asserters.js";
-
-testWithArea(async area => {
- await area.set(1, "value 1");
- await area.set(2, "value 2");
- await area.set(3, "value 3");
-
- await assertAsyncIteratorEquals(area.values(), ["value 1", "value 2", "value 3"]);
-}, "Using for-await-of to collect the results works");
-
-testWithArea(async area => {
- // We're not testing every key type since this isn't a test of IndexedDB.
- await area.set(1, "value 1");
- await area.set(new Date(500), "value date 500");
- await area.set(-1, "value -1");
- await area.set(new Date(-20), "value date -20");
- await area.set("aaa", "value aaa");
- await area.set("a", "value a");
- await area.set(-Infinity, "value -Infinity");
-
- await assertAsyncIteratorEquals(
- area.values(),
- [
- "value -Infinity",
- "value -1",
- "value 1",
- "value date -20",
- "value date 500",
- "value a",
- "value aaa"
- ]
- );
-}, "Results are returned in IndexedDB key order");
-
-testWithArea(async area => {
- await area.set(1, "value 1");
- await area.set(2, "value 2");
- await area.set(3, "value 3");
-
- const iter = area.values();
- const iterResults = [
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next(),
- await iter.next()
- ];
-
- iterAssert.iterResults(iterResults, [
- ["value 1", false],
- ["value 2", false],
- ["value 3", false],
- [undefined, true],
- [undefined, true],
- [undefined, true]
- ]);
-}, "Manual testing of .next() calls, with awaiting");
-
-testWithArea(async area => {
- area.set(1, "value 1");
- area.set(2, "value 2");
- area.set(3, "value 3");
-
- const iter = area.values();
- const promises = [
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next(),
- iter.next()
- ];
- const iterResults = await Promise.all(promises);
-
- iterAssert.iterResults(iterResults, [
- ["value 1", false],
- ["value 2", false],
- ["value 3", false],
- [undefined, true],
- [undefined, true],
- [undefined, true]
- ]);
-}, "Manual testing of .next() calls, no awaiting");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.set(15, "value 15");
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 30", "value 40"]);
-}, "Inserting an entry before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.set(25, "value 25");
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 25", "value 30", "value 40"]);
-}, "Inserting an entry after the current entry must show up in iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.delete(10);
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 30", "value 40"]);
-}, "Deleting an entry before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.delete(20);
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 30", "value 40"]);
-}, "Deleting the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.delete(30);
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 40"]);
-}, "Deleting an entry after the current entry must show up in iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.set(10, "value 10, but changed!!");
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 30", "value 40"]);
-}, "Modifying a value before the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.set(20, "value 20, but changed!!");
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 30", "value 40"]);
-}, "Modifying a value at the current entry must have no effect on iteration");
-
-testWithArea(async area => {
- await area.set(10, "value 10");
- await area.set(20, "value 20");
- await area.set(30, "value 30");
- await area.set(40, "value 40");
-
- let seen = [];
- for await (const value of area.values()) {
- seen.push(value);
- if (value === "value 20") {
- await area.set(30, "value 30, but changed!!");
- }
- }
-
- assert_array_equals(seen, ["value 10", "value 20", "value 30, but changed!!", "value 40"]);
-}, "Modifying a value after the current entry must show up in iteration");
-</script>
diff --git a/tests/wpt/web-platform-tests/lint.whitelist b/tests/wpt/web-platform-tests/lint.whitelist
index 6ea2bd4ec1e..99a6309956e 100644
--- a/tests/wpt/web-platform-tests/lint.whitelist
+++ b/tests/wpt/web-platform-tests/lint.whitelist
@@ -201,8 +201,8 @@ SET TIMEOUT: service-workers/service-worker/resources/resource-timing-worker.js
SET TIMEOUT: shadow-dom/Document-prototype-currentScript.html
SET TIMEOUT: shadow-dom/scroll-to-the-fragment-in-shadow-tree.html
SET TIMEOUT: shadow-dom/slotchange-event.html
-SET TIMEOUT: trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
-SET TIMEOUT: trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html
+SET TIMEOUT: trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html
+SET TIMEOUT: trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html
SET TIMEOUT: user-timing/*
SET TIMEOUT: web-animations/timing-model/animations/*
SET TIMEOUT: webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html
diff --git a/tests/wpt/web-platform-tests/mathml/tools/axisheight.py b/tests/wpt/web-platform-tests/mathml/tools/axisheight.py
index 43827e70316..d588560b650 100644
--- a/tests/wpt/web-platform-tests/mathml/tools/axisheight.py
+++ b/tests/wpt/web-platform-tests/mathml/tools/axisheight.py
@@ -8,6 +8,7 @@ v1 = 5 * mathfont.em
v2 = 14 * mathfont.em
f = mathfont.create("axisheight%d-verticalarrow%d" % (v1, v2))
f.math.AxisHeight = v1
+f.math.MinConnectorOverlap = 0
mathfont.createSquareGlyph(f, verticalArrowCodePoint)
g = f.createChar(-1, "size1")
mathfont.drawRectangleGlyph(g, mathfont.em, v2 / 2, 0)
@@ -18,6 +19,7 @@ mathfont.drawRectangleGlyph(g, mathfont.em, v2 + v1, 0)
g = f.createChar(-1, "ext")
mathfont.drawRectangleGlyph(g, mathfont.em, mathfont.em, 0)
f[verticalArrowCodePoint].verticalVariants = "uni21A8 size1 size2"
+# Part: (glyphName, isExtender, startConnector, endConnector, fullAdvance)
f[verticalArrowCodePoint].verticalComponents = \
- (("bot", False, 0, 0, mathfont.em), ("ext", True, 0, 0, mathfont.em));
+ (("bot", False, 0, mathfont.em, v2 + v1), ("ext", True, mathfont.em, mathfont.em, mathfont.em));
mathfont.save(f)
diff --git a/tests/wpt/web-platform-tests/measure-memory/README.md b/tests/wpt/web-platform-tests/measure-memory/README.md
index 641969d932c..953611f9303 100644
--- a/tests/wpt/web-platform-tests/measure-memory/README.md
+++ b/tests/wpt/web-platform-tests/measure-memory/README.md
@@ -4,5 +4,5 @@ Tests in this directory are for the proposed performance.measureMemory API.
This is not yet standardised and browsers should not be expected to pass
these tests.
-See the explainer at https://github.com/ulan/performance-measure-memory
+See the explainer at https://github.com/WICG/performance-measure-memory
for more information about the API.
diff --git a/tests/wpt/web-platform-tests/measure-memory/measure-memory-cross-origin-iframe.tentative.window.js b/tests/wpt/web-platform-tests/measure-memory/measure-memory-cross-origin-iframe.tentative.window.js
index 15590560ee9..c8dcbb77edd 100644
--- a/tests/wpt/web-platform-tests/measure-memory/measure-memory-cross-origin-iframe.tentative.window.js
+++ b/tests/wpt/web-platform-tests/measure-memory/measure-memory-cross-origin-iframe.tentative.window.js
@@ -5,12 +5,15 @@
promise_test(async testCase => {
const frame = document.createElement("iframe");
- const path = new URL("resources/iframe.sub.html", window.location).pathname;
- frame.src = `${CROSS_ORIGIN}${path}`;
+ const child = getUrl(CROSS_ORIGIN, "resources/child.sub.html");
+ const grandchild = getUrl(CROSS_ORIGIN, "resources/grandchild.sub.html");
+ frame.src = child;
document.body.append(frame);
try {
let result = await performance.measureMemory();
- checkMeasureMemory(result);
+ checkMeasureMemory(result, {
+ allowed: [window.location.href, child]
+ });
} catch (error) {
if (!(error instanceof DOMException)) {
throw error;
diff --git a/tests/wpt/web-platform-tests/measure-memory/measure-memory-same-origin-iframe.tentative.window.js b/tests/wpt/web-platform-tests/measure-memory/measure-memory-same-origin-iframe.tentative.window.js
index 519ed85864d..24700e51c24 100644
--- a/tests/wpt/web-platform-tests/measure-memory/measure-memory-same-origin-iframe.tentative.window.js
+++ b/tests/wpt/web-platform-tests/measure-memory/measure-memory-same-origin-iframe.tentative.window.js
@@ -5,12 +5,15 @@
promise_test(async testCase => {
const frame = document.createElement("iframe");
- const path = new URL("resources/iframe.sub.html", window.location).pathname;
- frame.src = `${SAME_ORIGIN}${path}`;
+ const child = getUrl(SAME_ORIGIN, "resources/child.sub.html");
+ const grandchild = getUrl(SAME_ORIGIN, "resources/grandchild.sub.html");
+ frame.src = child;
document.body.append(frame);
try {
let result = await performance.measureMemory();
- checkMeasureMemory(result);
+ checkMeasureMemory(result, {
+ allowed: [window.location.href, child, grandchild],
+ });
} catch (error) {
if (!(error instanceof DOMException)) {
throw error;
diff --git a/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js b/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js
deleted file mode 100644
index 22ec66c3460..00000000000
--- a/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.any.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// META: script=/common/get-host-info.sub.js
-// META: script=./resources/common.js
-// META: timeout=long
-'use strict';
-
-promise_test(async testCase => {
- try {
- let result = await performance.measureMemory();
- checkMeasureMemory(result);
- } catch (error) {
- if (!(error instanceof DOMException)) {
- throw error;
- }
- assert_equals(error.name, 'SecurityError');
- }
-}, 'Well-formed result of performance.measureMemory.');
-
diff --git a/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.window.js b/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.window.js
new file mode 100644
index 00000000000..0c595eda73a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/measure-memory/measure-memory.tentative.window.js
@@ -0,0 +1,17 @@
+// META: script=/common/get-host-info.sub.js
+// META: script=./resources/common.js
+// META: timeout=long
+'use strict';
+
+promise_test(async testCase => {
+ try {
+ let result = await performance.measureMemory();
+ checkMeasureMemory(result, {allowed: [window.location.href]});
+ } catch (error) {
+ if (!(error instanceof DOMException)) {
+ throw error;
+ }
+ assert_equals(error.name, 'SecurityError');
+ }
+}, 'Well-formed result of performance.measureMemory.');
+
diff --git a/tests/wpt/web-platform-tests/measure-memory/resources/child.sub.html b/tests/wpt/web-platform-tests/measure-memory/resources/child.sub.html
new file mode 100644
index 00000000000..f52b5eefbc5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/measure-memory/resources/child.sub.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset=utf-8>
+<html>
+<body>
+ Hello from child iframe.
+ <iframe src="grandchild.sub.html"></iframe>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/measure-memory/resources/common.js b/tests/wpt/web-platform-tests/measure-memory/resources/common.js
index 36df1d8c155..92ff11b35b1 100644
--- a/tests/wpt/web-platform-tests/measure-memory/resources/common.js
+++ b/tests/wpt/web-platform-tests/measure-memory/resources/common.js
@@ -1,27 +1,33 @@
const SAME_ORIGIN = {origin: get_host_info().HTTPS_ORIGIN, name: "SAME_ORIGIN"};
const CROSS_ORIGIN = {origin: get_host_info().HTTPS_NOTSAMESITE_ORIGIN, name: "CROSS_ORIGIN"}
-function checkMeasureMemoryBreakdown(breakdown) {
+function checkMeasureMemoryBreakdown(breakdown, options) {
+ let allowed = new Set(options.allowed);
assert_own_property(breakdown, 'bytes');
assert_greater_than_equal(breakdown.bytes, 0);
- assert_own_property(breakdown, 'globals');
- assert_greater_than_equal(breakdown.globals, 0);
assert_own_property(breakdown, 'type');
assert_equals(typeof breakdown.type, 'string');
- assert_own_property(breakdown, 'origins');
- assert_greater_than_equal(breakdown.origins.length, 1);
- for (let origin of breakdown.origins) {
- assert_equals(typeof origin, 'string');
+ assert_own_property(breakdown, 'attribution');
+ for (let attribution of breakdown.attribution) {
+ assert_equals(typeof attribution, 'string');
+ assert_true(
+ allowed.has(attribution),
+ `${attribution} must be in ${JSON.stringify(options.allowed)}`);
}
}
-function checkMeasureMemory(result) {
+function checkMeasureMemory(result, options) {
assert_own_property(result, 'bytes');
assert_own_property(result, 'breakdown');
let bytes = 0;
for (let breakdown of result.breakdown) {
- checkMeasureMemoryBreakdown(breakdown);
+ checkMeasureMemoryBreakdown(breakdown, options);
bytes += breakdown.bytes;
}
assert_equals(bytes, result.bytes);
+}
+
+function getUrl(host, relativePath) {
+ const path = new URL(relativePath, window.location).pathname;
+ return `${host.origin}/${path}`;
} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/measure-memory/resources/grandchild.sub.html b/tests/wpt/web-platform-tests/measure-memory/resources/grandchild.sub.html
new file mode 100644
index 00000000000..98522e0649e
--- /dev/null
+++ b/tests/wpt/web-platform-tests/measure-memory/resources/grandchild.sub.html
@@ -0,0 +1,7 @@
+<!doctype html>
+<meta charset=utf-8>
+<html>
+<body>
+ Hello from grandchild iframe.
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/measure-memory/resources/iframe.sub.html b/tests/wpt/web-platform-tests/measure-memory/resources/iframe.sub.html
deleted file mode 100644
index b1a476cff2e..00000000000
--- a/tests/wpt/web-platform-tests/measure-memory/resources/iframe.sub.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<!doctype html>
-<meta charset=utf-8>
-<html>
-<body>
- Hello from iframe.
-</body>
-</html>
diff --git a/tests/wpt/web-platform-tests/mixed-content/generic/spec_json.js b/tests/wpt/web-platform-tests/mixed-content/generic/spec_json.js
index af9cf72857e..c36a535f453 100644
--- a/tests/wpt/web-platform-tests/mixed-content/generic/spec_json.js
+++ b/tests/wpt/web-platform-tests/mixed-content/generic/spec_json.js
@@ -1 +1 @@
-var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "test_description_template": "Mixed-Content: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Mixed-Content: %(title)s", "specification": [{"name": "optionally-blockable", "title": "Optionally-blockable content", "description": "Test behavior of optionally-blockable content", "specification_url": "http://www.w3.org/TR/mixed-content/#category-optionally-blockable", "test_expansion": [{"name": "opt-in-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "*", "subresource": ["audio-tag", "img-tag", "video-tag"], "origin": ["cross-http", "same-http"], "expectation": "blocked"}, {"name": "opt-in-blocks-redirects", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "swap-scheme", "subresource": ["audio-tag", "img-tag", "video-tag"], "origin": ["same-https", "cross-https"], "expectation": "blocked"}, {"name": "no-opt-in-allows", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "subresource": ["audio-tag", "img-tag", "video-tag"], "origin": ["cross-http", "same-http"], "expectation": "allowed"}]}, {"name": "blockable", "title": "Blockable content", "description": "Test behavior of blockable content.", "specification_url": "http://www.w3.org/TR/mixed-content/#category-blockable", "test_expansion": [{"name": "opt-in-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "*", "subresource": ["a-tag", "beacon", "fetch", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["cross-http", "same-http"], "expectation": "blocked"}, {"name": "opt-in-blocks-redirects", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "swap-scheme", "subresource": ["a-tag", "beacon", "fetch", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["same-https", "cross-https"], "expectation": "blocked"}, {"name": "no-opt-in-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "subresource": ["a-tag", "beacon", "fetch", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["cross-http", "same-http"], "expectation": "blocked"}, {"name": "ws-downgrade-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["cross-ws", "same-ws"], "expectation": "blocked"}]}, {"name": "allowed", "title": "Allowed content", "description": "Test behavior of allowed content.", "specification_url": "http://www.w3.org/TR/mixed-content/", "test_expansion": [{"name": "allowed", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["no-redirect", "keep-scheme"], "subresource": "*", "origin": ["same-https"], "expectation": "allowed"}, {"name": "websocket-allowed", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["no-redirect", "keep-scheme"], "subresource": "websocket", "origin": ["same-wss"], "expectation": "allowed"}]}], "delivery_key": "mixedContent", "excluded_tests": [{"name": "Skip-redundant-no-opt-in", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "http-rp", "delivery_value": null, "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "Redundant-subresources", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "a-tag", "origin": "*", "expectation": "*"}, {"name": "Skip-origins-not-applicable-to-websockets", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["same-https", "same-http", "cross-https", "cross-http"], "expectation": "*"}, {"name": "Websockets are no-redirect only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-scheme", "swap-scheme"], "subresource": "websocket", "origin": "*", "expectation": "*"}, {"name": "Skip-redundant-for-opt-in-method", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "meta", "delivery_value": "opt-in", "redirection": ["keep-scheme", "swap-scheme"], "subresource": "*", "origin": "*", "expectation": "*"}], "source_context_schema": {"supported_delivery_type": {"top": ["http-rp", "meta"], "iframe": ["http-rp", "meta"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": [], "sharedworker-classic": ["http-rp"], "sharedworker-module": ["http-rp"], "sharedworker-classic-data": [], "sharedworker-module-data": []}, "supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "websocket"], "worker-module": ["xhr", "fetch", "websocket"], "worker-classic-data": ["xhr", "fetch", "websocket"], "worker-module-data": ["xhr", "fetch", "websocket"], "sharedworker-classic": ["xhr", "fetch", "websocket"], "sharedworker-module": ["xhr", "fetch", "websocket"], "sharedworker-classic-data": ["xhr", "fetch", "websocket"], "sharedworker-module-data": ["xhr", "fetch", "websocket"]}}, "subresource_schema": {"supported_delivery_type": {"script-tag": [], "link-css-tag": [], "xhr": [], "worker-classic": [], "worker-module": [], "worker-import-data": [], "sharedworker-classic": [], "sharedworker-module": [], "sharedworker-import-data": [], "worklet-animation": [], "worklet-audio": [], "worklet-layout": [], "worklet-paint": [], "worklet-animation-import-data": [], "worklet-audio-import-data": [], "worklet-layout-import-data": [], "worklet-paint-import-data": [], "fetch": [], "a-tag": [], "object-tag": [], "picture-tag": [], "websocket": [], "link-prefetch-tag": [], "beacon": [], "img-tag": [], "audio-tag": [], "video-tag": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-classic-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-module-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "source_scheme": ["http", "https"], "delivery_type": ["http-rp", "meta"], "delivery_value": [null, "opt-in"], "source_context_list": ["top", "worker-classic-data", "worker-module-data", "sharedworker-classic-data", "sharedworker-module-data"], "redirection": ["no-redirect", "keep-scheme", "swap-scheme"], "origin": ["same-https", "same-http", "cross-https", "cross-http", "same-wss", "same-ws", "cross-wss", "cross-ws"], "subresource": ["script-tag", "link-css-tag", "xhr", "worker-classic", "worker-module", "worker-import-data", "sharedworker-classic", "sharedworker-module", "sharedworker-import-data", "worklet-animation", "worklet-audio", "worklet-layout", "worklet-paint", "worklet-animation-import-data", "worklet-audio-import-data", "worklet-layout-import-data", "worklet-paint-import-data", "fetch", "a-tag", "object-tag", "picture-tag", "websocket", "link-prefetch-tag", "beacon", "img-tag", "audio-tag", "video-tag"], "expectation": ["allowed", "blocked"]}};
+var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "excluded_tests": [{"name": "Workers are same-origin only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": ["cross-https", "cross-http", "cross-http-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "expectation": "*"}, {"name": "Workers are same-origin only (redirects)", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["swap-origin", "swap-scheme"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": "*", "expectation": "*"}, {"name": "Websockets are ws/wss-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["same-https", "same-http", "same-http-downgrade", "cross-https", "cross-http", "cross-http-downgrade"], "expectation": "*"}, {"name": "Websockets are no-redirect only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin", "keep-scheme", "swap-scheme", "downgrade"], "subresource": "websocket", "origin": "*", "expectation": "*"}, {"name": "ws/wss are websocket-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["area-tag", "a-tag", "fetch", "iframe-tag", "img-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["same-wss", "same-ws", "same-ws-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "expectation": "*"}, {"name": "Skip-redundant-no-opt-in", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "http-rp", "delivery_value": null, "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "Skip-redundant-for-opt-in-method", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "meta", "delivery_value": "opt-in", "redirection": ["keep-scheme", "swap-scheme"], "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "source_context_list values not yet tested", "expansion": "*", "source_scheme": "*", "source_context_list": ["req", "srcdoc-inherit", "srcdoc", "iframe", "iframe-blank-inherit", "worker-classic", "worker-module"], "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "subresource values not yet tested", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["a-tag", "area-tag", "iframe-tag"], "origin": "*", "expectation": "*"}, {"name": "redirections that mixed-content tests don't care", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin", "downgrade"], "origin": "*", "subresource": "*", "expectation": "*"}], "source_context_schema": {"supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "websocket", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "websocket", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch", "websocket"], "worker-module-data": ["xhr", "fetch", "websocket"], "sharedworker-classic": ["xhr", "fetch", "websocket"], "sharedworker-module": ["xhr", "fetch", "websocket"], "sharedworker-classic-data": ["xhr", "fetch", "websocket"], "sharedworker-module-data": ["xhr", "fetch", "websocket"]}, "supported_delivery_type": {"top": ["http-rp", "meta"], "iframe": ["http-rp", "meta"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": [], "sharedworker-classic": ["http-rp"], "sharedworker-module": ["http-rp"], "sharedworker-classic-data": [], "sharedworker-module-data": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe without its own policy should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "iframe-blank-inherit": {"description": "blank iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "iframe-blank"}], "subresourcePolicyDeliveries": []}, "worker-classic": {"description": "dedicated workers shouldn't inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"description": "data: dedicated workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "worker-module": {"description": "dedicated workers shouldn't inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"description": "data: dedicated workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-classic-data": {"description": "data: shared workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-module-data": {"description": "data: shared workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "source_scheme": ["http", "https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "iframe-blank-inherit", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data", "sharedworker-classic-data", "sharedworker-module-data"], "redirection": ["no-redirect", "keep-origin", "swap-origin", "keep-scheme", "swap-scheme", "downgrade"], "origin": ["same-https", "same-http", "same-http-downgrade", "cross-https", "cross-http", "cross-http-downgrade", "same-wss", "same-ws", "same-ws-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "subresource": ["a-tag", "area-tag", "audio-tag", "beacon", "fetch", "iframe-tag", "img-tag", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "video-tag", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "delivery_type": ["http-rp", "meta"], "delivery_value": [null, "opt-in"], "expectation": ["allowed", "blocked"]}, "test_description_template": "Mixed-Content: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Mixed-Content: %(title)s", "specification": [{"name": "optionally-blockable", "title": "Optionally-blockable content", "description": "Test behavior of optionally-blockable content", "specification_url": "http://www.w3.org/TR/mixed-content/#category-optionally-blockable", "test_expansion": [{"name": "opt-in-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "*", "subresource": ["audio-tag", "img-tag", "video-tag"], "origin": ["cross-http", "same-http"], "expectation": "blocked"}, {"name": "opt-in-blocks-redirects", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "swap-scheme", "subresource": ["audio-tag", "img-tag", "video-tag"], "origin": ["same-https", "cross-https"], "expectation": "blocked"}, {"name": "no-opt-in-allows", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "subresource": ["audio-tag", "img-tag", "video-tag"], "origin": ["cross-http", "same-http"], "expectation": "allowed"}]}, {"name": "blockable", "title": "Blockable content", "description": "Test behavior of blockable content.", "specification_url": "http://www.w3.org/TR/mixed-content/#category-blockable", "test_expansion": [{"name": "opt-in-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "*", "subresource": ["a-tag", "beacon", "fetch", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["cross-http", "same-http"], "expectation": "blocked"}, {"name": "opt-in-blocks-redirects", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "opt-in", "redirection": "swap-scheme", "subresource": ["a-tag", "beacon", "fetch", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["same-https", "cross-https"], "expectation": "blocked"}, {"name": "no-opt-in-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "subresource": ["a-tag", "beacon", "fetch", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["cross-http", "same-http"], "expectation": "blocked"}, {"name": "ws-downgrade-blocks", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["cross-ws", "same-ws"], "expectation": "blocked"}]}, {"name": "allowed", "title": "Allowed content", "description": "Test behavior of allowed content.", "specification_url": "http://www.w3.org/TR/mixed-content/", "test_expansion": [{"name": "allowed", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["no-redirect", "keep-scheme"], "subresource": "*", "origin": ["same-https"], "expectation": "allowed"}, {"name": "websocket-allowed", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["no-redirect", "keep-scheme"], "subresource": "websocket", "origin": ["same-wss"], "expectation": "allowed"}]}], "delivery_key": "mixedContent", "subresource_schema": {"supported_delivery_type": {"a-tag": [], "area-tag": [], "audio-tag": [], "beacon": [], "fetch": [], "iframe-tag": [], "img-tag": [], "link-css-tag": [], "link-prefetch-tag": [], "object-tag": [], "picture-tag": [], "script-tag": [], "sharedworker-classic": [], "sharedworker-import-data": [], "sharedworker-module": [], "video-tag": [], "websocket": [], "worker-classic": [], "worker-import-data": [], "worker-module": [], "worklet-animation": [], "worklet-animation-import-data": [], "worklet-audio": [], "worklet-audio-import-data": [], "worklet-layout": [], "worklet-layout-import-data": [], "worklet-paint": [], "worklet-paint-import-data": [], "xhr": []}}};
diff --git a/tests/wpt/web-platform-tests/mixed-content/spec.src.json b/tests/wpt/web-platform-tests/mixed-content/spec.src.json
index 547dc975040..16843700da8 100644
--- a/tests/wpt/web-platform-tests/mixed-content/spec.src.json
+++ b/tests/wpt/web-platform-tests/mixed-content/spec.src.json
@@ -1,6 +1,4 @@
{
- "selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s",
- "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html",
"test_description_template": "Mixed-Content: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.",
"test_page_title_template": "Mixed-Content: %(title)s",
"specification": [
@@ -270,64 +268,72 @@
"expectation": "*"
},
{
- "name": "Redundant-subresources",
+ "name": "Skip-redundant-for-opt-in-method",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
- "delivery_type": "*",
- "delivery_value": "*",
- "redirection": "*",
- "subresource": "a-tag",
+ "delivery_type": "meta",
+ "delivery_value": "opt-in",
+ "redirection": [
+ "keep-scheme",
+ "swap-scheme"
+ ],
+ "subresource": "*",
"origin": "*",
"expectation": "*"
},
{
- "name": "Skip-origins-not-applicable-to-websockets",
+ "name": "source_context_list values not yet tested",
"expansion": "*",
"source_scheme": "*",
- "source_context_list": "*",
+ "source_context_list": [
+ "req",
+ "srcdoc-inherit",
+ "srcdoc",
+ "iframe",
+ "iframe-blank-inherit",
+ "worker-classic",
+ "worker-module",
+ ],
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
- "subresource": "websocket",
- "origin": [
- "same-https",
- "same-http",
- "cross-https",
- "cross-http"
- ],
+ "subresource": "*",
+ "origin": "*",
"expectation": "*"
},
{
- "name": "Websockets are no-redirect only",
+ "name": "subresource values not yet tested",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
- "redirection": [
- "keep-scheme",
- "swap-scheme"
+ "redirection": "*",
+ "subresource": [
+ "a-tag",
+ "area-tag",
+ "iframe-tag",
],
- "subresource": "websocket",
"origin": "*",
"expectation": "*"
},
{
- "name": "Skip-redundant-for-opt-in-method",
+ "name": "redirections that mixed-content tests don't care",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
- "delivery_type": "meta",
- "delivery_value": "opt-in",
+ "delivery_type": "*",
+ "delivery_value": "*",
"redirection": [
- "keep-scheme",
- "swap-scheme"
+ "keep-origin",
+ "swap-origin",
+ "downgrade"
],
- "subresource": "*",
"origin": "*",
+ "subresource": "*",
"expectation": "*"
- }
+ },
],
"source_context_schema": {
"supported_delivery_type": {
@@ -361,168 +367,42 @@
],
"sharedworker-classic-data": [],
"sharedworker-module-data": []
- },
- "supported_subresource": {
- "top": "*",
- "iframe": "*",
- "iframe-blank": "*",
- "srcdoc": "*",
- "worker-classic": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "worker-module": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "worker-classic-data": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "worker-module-data": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "sharedworker-classic": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "sharedworker-module": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "sharedworker-classic-data": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "sharedworker-module-data": [
- "xhr",
- "fetch",
- "websocket"
- ]
}
},
"subresource_schema": {
"supported_delivery_type": {
- "script-tag": [],
+ "a-tag": [],
+ "area-tag": [],
+ "audio-tag": [],
+ "beacon": [],
+ "fetch": [],
+ "iframe-tag": [],
+ "img-tag": [],
"link-css-tag": [],
- "xhr": [],
- "worker-classic": [],
- "worker-module": [],
- "worker-import-data": [],
+ "link-prefetch-tag": [],
+ "object-tag": [],
+ "picture-tag": [],
+ "script-tag": [],
"sharedworker-classic": [],
- "sharedworker-module": [],
"sharedworker-import-data": [],
+ "sharedworker-module": [],
+ "video-tag": [],
+ "websocket": [],
+ "worker-classic": [],
+ "worker-import-data": [],
+ "worker-module": [],
"worklet-animation": [],
- "worklet-audio": [],
- "worklet-layout": [],
- "worklet-paint": [],
"worklet-animation-import-data": [],
+ "worklet-audio": [],
"worklet-audio-import-data": [],
+ "worklet-layout": [],
"worklet-layout-import-data": [],
+ "worklet-paint": [],
"worklet-paint-import-data": [],
- "fetch": [],
- "a-tag": [],
- "object-tag": [],
- "picture-tag": [],
- "websocket": [],
- "link-prefetch-tag": [],
- "beacon": [],
- "img-tag": [],
- "audio-tag": [],
- "video-tag": []
- }
- },
- "source_context_list_schema": {
- "top": {
- "description": "Policy set by the top-level Document",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "worker-classic-data": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "worker-classic-data",
- "policyDeliveries": []
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "worker-module-data": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "worker-module-data",
- "policyDeliveries": []
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "sharedworker-classic-data": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "sharedworker-classic-data",
- "policyDeliveries": []
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "sharedworker-module-data": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "sharedworker-module-data",
- "policyDeliveries": []
- }
- ],
- "subresourcePolicyDeliveries": []
+ "xhr": []
}
},
"test_expansion_schema": {
- "expansion": [
- "default",
- "override"
- ],
- "source_scheme": [
- "http",
- "https"
- ],
"delivery_type": [
"http-rp",
"meta"
@@ -531,57 +411,6 @@
null,
"opt-in"
],
- "source_context_list": [
- "top",
- "worker-classic-data",
- "worker-module-data",
- "sharedworker-classic-data",
- "sharedworker-module-data"
- ],
- "redirection": [
- "no-redirect",
- "keep-scheme",
- "swap-scheme"
- ],
- "origin": [
- "same-https",
- "same-http",
- "cross-https",
- "cross-http",
- "same-wss",
- "same-ws",
- "cross-wss",
- "cross-ws"
- ],
- "subresource": [
- "script-tag",
- "link-css-tag",
- "xhr",
- "worker-classic",
- "worker-module",
- "worker-import-data",
- "sharedworker-classic",
- "sharedworker-module",
- "sharedworker-import-data",
- "worklet-animation",
- "worklet-audio",
- "worklet-layout",
- "worklet-paint",
- "worklet-animation-import-data",
- "worklet-audio-import-data",
- "worklet-layout-import-data",
- "worklet-paint-import-data",
- "fetch",
- "a-tag",
- "object-tag",
- "picture-tag",
- "websocket",
- "link-prefetch-tag",
- "beacon",
- "img-tag",
- "audio-tag",
- "video-tag"
- ],
"expectation": [
"allowed",
"blocked"
diff --git a/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemBaseHandle-IndexedDB.js b/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemBaseHandle-IndexedDB.js
index d7403ff5ea6..855e52f04dd 100644
--- a/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemBaseHandle-IndexedDB.js
+++ b/tests/wpt/web-platform-tests/native-file-system/script-tests/FileSystemBaseHandle-IndexedDB.js
@@ -100,3 +100,27 @@ directory_test(async (t, root_dir) => {
assert_equals(result.length, value.length);
await assert_equals_cloned_handles(result, value);
}, 'Store handle in IndexedDB and read using a cursor.');
+
+directory_test(async (t, root_dir) => {
+ const handles = await create_file_system_handles(t, root_dir);
+
+ const db = await createDatabase(t, db => {
+ const store = db.createObjectStore('store', {keyPath: 'key'});
+ });
+ t.add_cleanup(() => deleteAllDatabases(t));
+
+ const value = handles;
+ let tx = db.transaction('store', 'readwrite');
+ let store = tx.objectStore('store');
+ await promiseForRequest(t, store.put({key: 'key', value}));
+ await promiseForTransaction(t, tx);
+
+ tx = db.transaction('store', 'readonly');
+ store = tx.objectStore('store');
+ const result = await promiseForRequest(t, store.get('key'));
+ await promiseForTransaction(t, tx);
+
+ assert_true(Array.isArray(result.value), 'Result should be an array');
+ assert_equals(result.value.length, value.length);
+ await assert_equals_cloned_handles(result.value, value);
+}, 'Store handle in IndexedDB using inline keys.');
diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html
new file mode 100644
index 00000000000..02a6af0a4b8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_pointercapture-not-lost-in-chorded-buttons.html
@@ -0,0 +1,225 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Set/Release capture when using chorded buttons</title>
+ <meta name="viewport" content="width=device-width">
+ <link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1053385">
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/resources/testdriver.js"></script>
+ <script src="/resources/testdriver-actions.js"></script>
+ <script src="/resources/testdriver-vendor.js"></script>
+
+ <style>
+ .container {
+ height: 500px;
+ width: 500px;
+ border: 1px solid black;
+ overflow: hidden;
+ position: relative;
+ }
+
+ #box {
+ height: 50px;
+ width: 50px;
+ background: red;
+ position: absolute;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Pointer Events Capture Test - capture should not be lost early</h1>
+ <h4>
+ Test Description: This test checks if setCapture/pointerup functions
+ works properly. Complete the following actions:
+ <ol>
+ <li> Put your mouse over the red box
+ <li> Press and hold left mouse button. Box will call setPointerCapture
+ <li> Press right button and release
+ <li> Pointer capture should not be lost
+ <li> Press right button again and release
+ <li> Pointer capture should not be lost
+ <li> Release left mouse button. lostpointercapture is called
+ </ol>
+ </h4>
+ Test passes if the proper behavior of the events is observed.
+ <div class="container">
+ <div id="box"></div>
+ </div>
+ <div id="log"></div>
+ </body>
+ <script>
+ var PhaseEnum = {
+ WaitingForDown: "down",
+ WaitingForUp: "up",
+ UpDone : "up_done"
+ };
+
+ var origin = {x:0, y:0};
+ var position = {x:0, y:0};
+ var deltaX = 0;
+ var deltaY = 0;
+ var box = document.getElementById("box");
+ var logDiv = document.getElementById("log");
+
+ var currentPhase = PhaseEnum.WaitingForDown;
+ var events = [];
+
+ function slide(event){
+ // move the target following the mouse
+ deltaX = event.clientX - origin.x
+ deltaY = event.clientY - origin.y
+ box.style.left = `${position.x + deltaX}px`;
+ box.style.top = `${position.y + deltaY}px`;
+ }
+
+ function addLog(message){
+ var messageDiv = document.createElement("div");
+ var textContent = document.createTextNode(message);
+ messageDiv.appendChild(textContent);
+ logDiv.appendChild(messageDiv);
+ }
+
+ function handle_pointerdown(e){
+ box.setPointerCapture(e.pointerId);
+ if(window.promise_test){
+ current_test.step(function(){
+ // once receiving a pointer down and the pointer is captured,
+ // no other mousedown should send pointerdown events during the test
+ assert_true(currentPhase === PhaseEnum.WaitingForDown,
+ "Current Phase should be " + PhaseEnum.WaitingForDown);
+ currentPhase = PhaseEnum.WaitingForUp;
+ events.push("target@pointerdown");
+ });
+ }
+ origin = { x: event.clientX, y: event.clientY };
+ box.addEventListener("pointermove", slide);
+ }
+
+ function handle_pointerup(e){
+ box.releasePointerCapture(e.pointerId);
+ if(window.promise_test){
+ current_test.step(function(){
+ assert_true(event.buttons === 0,
+ 'pointerup should happen when all buttons are released.');
+ assert_true(currentPhase === PhaseEnum.WaitingForUp,
+ "Current Phase should be " + PhaseEnum.WaitingForUp);
+ currentPhase = PhaseEnum.UpDone;
+ events.push("target@pointerup");
+ });
+ }
+ box.removeEventListener("pointermove", slide);
+ }
+
+ function handle_contextmenu(e){
+ e.preventDefault();
+ }
+
+ function handle_lostpointercapture(e){
+ if(window.promise_test){
+ current_test.step(function(){
+ events.push("target@lostpointercapture");
+ assert_true(currentPhase === PhaseEnum.UpDone,
+ "Current Phase should be " + PhaseEnum.UpDone + "." +
+ 'lostpointercapture should happen after pointerup event.');
+ assert_true(event.buttons === 0,
+ 'lostpointercapture should happen when all buttons are released.');
+ assert_array_equals(events, ["target@pointerdown",
+ "target@pointerup", "target@lostpointercapture"]);
+ resolve_test();
+ current_test.done();
+ });
+ }
+ if(event.buttons === 0){
+ addLog("Test Passed!");
+ }else{
+ addLog("Test Failed!");
+ }
+ }
+
+ function removeEventListeners(){
+ box.removeEventListener('pointerdown', handle_pointerdown);
+ box.removeEventListener('pointerup', handle_pointerup);
+ box.removeEventListener('contextmenu', handle_contextmenu);
+ box.removeEventListener('lostpointercapture',
+ handle_lostpointercapture);
+ }
+
+ function addEventListeners(){
+ box.addEventListener('pointerdown', handle_pointerdown);
+ box.addEventListener('pointerup', handle_pointerup);
+ box.addEventListener('contextmenu', handle_contextmenu);
+ box.addEventListener('lostpointercapture',
+ handle_lostpointercapture);
+ }
+
+ var current_test = null;
+ var resolve_test = null;
+ var reject_test = null;
+ // window.promise_test is only defined when running the
+ // test using testharness.js
+ // if window.promise_test is not defined we'll run the manual testing
+ // path
+ if(!window.promise_test){
+ addEventListeners();
+ }
+
+ if(window.promise_test){
+ promise_test(function(t){
+ addEventListeners();
+ t.add_cleanup(function(){
+ removeEventListeners();
+ currentPhase = PhaseEnum.WaitingForDown;
+ events = [];
+ });
+ return new Promise(function(resolve, reject){
+ current_test = t;
+ resolve_test = resolve;
+ reject_test = reject;
+ var actions = new test_driver.Actions();
+ var actions_promise = actions
+ .pointerMove(0, 0, {origin: box})
+
+ .pointerDown({button: actions.ButtonType.LEFT})
+ // Ensure clicking other buttons while a first button has
+ // captured the pointer doesn't release the capture
+ .pointerDown({button: actions.ButtonType.RIGHT})
+ .pointerUp({button: actions.ButtonType.RIGHT})
+ .pointerDown({button: actions.ButtonType.RIGHT})
+ .pointerUp({button: actions.ButtonType.RIGHT})
+ .pointerUp({button: actions.ButtonType.LEFT})
+ .send();
+ })
+ }, "Pointer Events Capture Test - capture not lost due to " +
+ "chorded buttons interaction");
+
+ promise_test(function(t){
+ addEventListeners();
+ t.add_cleanup(function(){
+ removeEventListeners();
+ currentPhase = PhaseEnum.WaitingForDown;
+ events = [];
+ });
+ return new Promise(function(resolve, reject){
+ current_test = t;
+ resolve_test = resolve;
+ reject_test = reject;
+ var actions = new test_driver.Actions();
+ var actions_promise = actions
+ .pointerMove(0, 0, {origin: box})
+
+ .pointerDown({button: actions.ButtonType.LEFT})
+ // Ensure clicking other buttons while a first button has
+ // captured the pointer doesn't release the capture
+ .pointerDown({button: actions.ButtonType.RIGHT})
+ .pointerUp({button: actions.ButtonType.LEFT})
+ .pointerDown({button: actions.ButtonType.LEFT})
+ .pointerUp({button: actions.ButtonType.RIGHT})
+ .pointerUp({button: actions.ButtonType.LEFT})
+ .send();
+ })
+ }, "Pointer Events Capture Test - capture not lost " +
+ "due to combination of left and right chorded buttons interaction.");
+ }
+ </script>
+</html>
diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/spec_json.js b/tests/wpt/web-platform-tests/referrer-policy/generic/spec_json.js
index a8b723d5a98..fbe59a2cc9c 100644
--- a/tests/wpt/web-platform-tests/referrer-policy/generic/spec_json.js
+++ b/tests/wpt/web-platform-tests/referrer-policy/generic/spec_json.js
@@ -1 +1 @@
-var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "test_description_template": "Referrer Policy: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Referrer-Policy: %(title)s", "specification": [{"name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined", "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'", "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "omitted"}]}, {"name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'", "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "origin", "title": "Referrer Policy is set to 'origin'", "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "origin"}]}, {"name": "same-origin", "title": "Referrer Policy is set to 'same-origin'", "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "omitted"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "omitted"}]}, {"name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'", "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-upgrade", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-downgrade", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "origin"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'", "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'", "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "test_expansion": [{"name": "same-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-insecure", "expansion": "override", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "cross-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-http", "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "same-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-secure", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "cross-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-https", "subresource": "*", "expectation": "origin"}]}, {"name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'", "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "unsafe-url", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "stripped-referrer"}]}], "delivery_key": "referrerPolicy", "excluded_tests": [{"name": "cross-origin-workers", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "redirection": "*", "delivery_type": "*", "delivery_value": "*", "origin": ["cross-http", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "expectation": "*"}, {"name": "upgraded-protocol-workers", "expansion": "*", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "expectation": "*"}, {"name": "mixed-content-insecure-subresources", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "*"}, {"name": "area-tag", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "area-tag", "expectation": "*"}, {"name": "worker-requests-with-swap-origin-redirect", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "swap-origin", "origin": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "expectation": "*"}, {"name": "overhead-for-redirection", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin"], "origin": "*", "subresource": ["a-tag", "area-tag"], "expectation": "*"}, {"name": "source-https-unsupported-by-web-platform-tests-runners", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "<link rel=noreferrer>'s delivery_value should be no-referrer", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "rel-noref", "delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}], "source_context_schema": {"supported_delivery_type": {"top": ["meta", "http-rp"], "iframe": ["meta", "http-rp"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": []}, "supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch"], "worker-module-data": ["xhr", "fetch"]}}, "subresource_schema": {"supported_delivery_type": {"iframe-tag": ["attr"], "img-tag": ["attr"], "script-tag": ["attr"], "a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "xhr": [], "fetch": [], "sharedworker-module": [], "worker-module": [], "sharedworker-classic": [], "worker-classic": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "origin": ["same-http", "same-https", "cross-http", "cross-https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data"], "source_scheme": ["http", "https"], "redirection": ["no-redirect", "keep-origin", "swap-origin"], "subresource": ["iframe-tag", "img-tag", "script-tag", "a-tag", "area-tag", "xhr", "worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module", "fetch"], "expectation": ["omitted", "origin", "stripped-referrer"]}};
+var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "excluded_tests": [{"name": "Workers are same-origin only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": ["cross-https", "cross-http", "cross-http-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "expectation": "*"}, {"name": "Workers are same-origin only (redirects)", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["swap-origin", "swap-scheme"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": "*", "expectation": "*"}, {"name": "Websockets are ws/wss-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["same-https", "same-http", "same-http-downgrade", "cross-https", "cross-http", "cross-http-downgrade"], "expectation": "*"}, {"name": "Websockets are no-redirect only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin", "keep-scheme", "swap-scheme", "downgrade"], "subresource": "websocket", "origin": "*", "expectation": "*"}, {"name": "ws/wss are websocket-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["area-tag", "a-tag", "fetch", "iframe-tag", "img-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["same-wss", "same-ws", "same-ws-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "expectation": "*"}, {"name": "upgraded-protocol-workers", "expansion": "*", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "expectation": "*"}, {"name": "mixed-content-insecure-subresources", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http", "same-http-downgrade", "cross-http", "cross-http-downgrade", "same-ws", "same-ws-downgrade", "cross-ws", "cross-ws-downgrade"], "subresource": "*", "expectation": "*"}, {"name": "overhead-for-redirection", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin"], "origin": "*", "subresource": ["a-tag", "area-tag"], "expectation": "*"}, {"name": "source-https-unsupported-by-web-platform-tests-runners", "expansion": "*", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "<link rel=noreferrer>'s delivery_value should be no-referrer", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "rel-noref", "delivery_value": [null, "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "redirection": "*", "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "redirections that referrer-policy tests don't care", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-scheme", "swap-scheme", "downgrade"], "origin": "*", "subresource": "*", "expectation": "*"}, {"name": "origins that referrer-policy tests don't care", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http-downgrade", "cross-http-downgrade", "same-ws-downgrade", "cross-ws-downgrade"], "subresource": "*", "expectation": "*"}, {"name": "subresource values not yet tested", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["area-tag", "audio-tag", "beacon", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "sharedworker-import-data", "video-tag", "websocket", "worker-import-data", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data"], "origin": "*", "expectation": "*"}, {"name": "source_context_list values not yet tested", "expansion": "*", "source_scheme": "*", "source_context_list": ["iframe-blank-inherit", "sharedworker-classic-data", "sharedworker-module-data", "worker-classic-data", "worker-module-data"], "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}], "source_context_schema": {"supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "websocket", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "websocket", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch", "websocket"], "worker-module-data": ["xhr", "fetch", "websocket"], "sharedworker-classic": ["xhr", "fetch", "websocket"], "sharedworker-module": ["xhr", "fetch", "websocket"], "sharedworker-classic-data": ["xhr", "fetch", "websocket"], "sharedworker-module-data": ["xhr", "fetch", "websocket"]}, "supported_delivery_type": {"top": ["meta", "http-rp"], "iframe": ["meta", "http-rp"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": [], "sharedworker-classic": ["http-rp"], "sharedworker-module": ["http-rp"], "sharedworker-classic-data": [], "sharedworker-module-data": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe without its own policy should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "iframe-blank-inherit": {"description": "blank iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "iframe-blank"}], "subresourcePolicyDeliveries": []}, "worker-classic": {"description": "dedicated workers shouldn't inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"description": "data: dedicated workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "worker-module": {"description": "dedicated workers shouldn't inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"description": "data: dedicated workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-classic-data": {"description": "data: shared workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-module-data": {"description": "data: shared workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "source_scheme": ["http", "https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "iframe-blank-inherit", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data", "sharedworker-classic-data", "sharedworker-module-data"], "redirection": ["no-redirect", "keep-origin", "swap-origin", "keep-scheme", "swap-scheme", "downgrade"], "origin": ["same-https", "same-http", "same-http-downgrade", "cross-https", "cross-http", "cross-http-downgrade", "same-wss", "same-ws", "same-ws-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "subresource": ["a-tag", "area-tag", "audio-tag", "beacon", "fetch", "iframe-tag", "img-tag", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "video-tag", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "delivery_type": ["attr", "rel-noref", "http-rp", "meta"], "delivery_value": [null, "no-referrer", "no-referrer-when-downgrade", "same-origin", "origin", "origin-when-cross-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"], "expectation": ["omitted", "origin", "stripped-referrer"]}, "test_description_template": "Referrer Policy: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Referrer-Policy: %(title)s", "specification": [{"name": "unset-referrer-policy", "title": "Referrer Policy is not explicitly defined", "description": "Check that referrer URL follows no-referrer-when-downgrade policy when no explicit Referrer Policy is set.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policies", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": null, "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "no-referrer", "title": "Referrer Policy is set to 'no-referrer'", "description": "Check that sub-resource never gets the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "omitted"}]}, {"name": "no-referrer-when-downgrade", "title": "Referrer Policy is set to 'no-referrer-when-downgrade'", "description": "Check that non a priori insecure subresource gets the full Referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-no-referrer-when-downgrade", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "no-referrer-when-downgrade", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "stripped-referrer"}]}, {"name": "origin", "title": "Referrer Policy is set to 'origin'", "description": "Check that all subresources in all casses get only the origin portion of the referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "origin"}]}, {"name": "same-origin", "title": "Referrer Policy is set to 'same-origin'", "description": "Check that cross-origin subresources get no referrer information and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-same-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "omitted"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "same-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "omitted"}]}, {"name": "origin-when-cross-origin", "title": "Referrer Policy is set to 'origin-when-cross-origin'", "description": "Check that cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-origin-when-cross-origin", "test_expansion": [{"name": "same-origin-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-secure-default", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-origin-upgrade", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-downgrade", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "same-origin-insecure", "expansion": "override", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "swap-origin", "origin": ["same-http", "same-https"], "subresource": "*", "expectation": "origin"}, {"name": "cross-origin", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "origin-when-cross-origin", "redirection": "*", "origin": ["cross-http", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin", "title": "Referrer Policy is set to 'strict-origin'", "description": "Check that non a priori insecure subresource gets only the origin portion of the referrer URL. A priori insecure subresource gets no referrer information.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin", "test_expansion": [{"name": "insecure-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "secure-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}]}, {"name": "strict-origin-when-cross-origin", "title": "Referrer Policy is set to 'strict-origin-when-cross-origin'", "description": "Check that a priori insecure subresource gets no referrer information. Otherwise, cross-origin subresources get the origin portion of the referrer URL and same-origin get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-strict-origin-when-cross-origin", "test_expansion": [{"name": "same-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-http", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-insecure", "expansion": "override", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-http", "subresource": "*", "expectation": "origin"}, {"name": "cross-insecure", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-http", "subresource": "*", "expectation": "origin"}, {"name": "upgrade-protocol", "expansion": "default", "source_scheme": "http", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-https", "cross-https"], "subresource": "*", "expectation": "origin"}, {"name": "downgrade-protocol", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": ["same-http", "cross-http"], "subresource": "*", "expectation": "omitted"}, {"name": "same-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "same-https", "subresource": "*", "expectation": "stripped-referrer"}, {"name": "same-secure", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "swap-origin", "origin": "same-https", "subresource": "*", "expectation": "origin"}, {"name": "cross-secure", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "strict-origin-when-cross-origin", "redirection": "*", "origin": "cross-https", "subresource": "*", "expectation": "origin"}]}, {"name": "unsafe-url", "title": "Referrer Policy is set to 'unsafe-url'", "description": "Check that all sub-resources get the stripped referrer URL.", "specification_url": "https://w3c.github.io/webappsec-referrer-policy/#referrer-policy-unsafe-url", "test_expansion": [{"name": "generic", "expansion": "default", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "unsafe-url", "redirection": "*", "origin": "*", "subresource": "*", "expectation": "stripped-referrer"}]}], "delivery_key": "referrerPolicy", "subresource_schema": {"supported_delivery_type": {"a-tag": ["attr", "rel-noref"], "area-tag": ["attr"], "audio-tag": [], "beacon": [], "fetch": [], "iframe-tag": ["attr"], "img-tag": ["attr"], "link-css-tag": [], "link-prefetch-tag": [], "object-tag": [], "picture-tag": [], "script-tag": ["attr"], "sharedworker-classic": [], "sharedworker-import-data": [], "sharedworker-module": [], "video-tag": [], "websocket": [], "worker-classic": [], "worker-import-data": [], "worker-module": [], "worklet-animation": [], "worklet-animation-import-data": [], "worklet-audio": [], "worklet-audio-import-data": [], "worklet-layout": [], "worklet-layout-import-data": [], "worklet-paint": [], "worklet-paint-import-data": [], "xhr": []}}};
diff --git a/tests/wpt/web-platform-tests/referrer-policy/spec.src.json b/tests/wpt/web-platform-tests/referrer-policy/spec.src.json
index d32ee80a8d2..9063428647a 100644
--- a/tests/wpt/web-platform-tests/referrer-policy/spec.src.json
+++ b/tests/wpt/web-platform-tests/referrer-policy/spec.src.json
@@ -1,6 +1,4 @@
{
- "selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s",
- "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html",
"test_description_template": "Referrer Policy: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.",
"test_page_title_template": "Referrer-Policy: %(title)s",
"specification": [
@@ -530,26 +528,6 @@
"delivery_key": "referrerPolicy",
"excluded_tests": [
{
- "name": "cross-origin-workers",
- "expansion": "*",
- "source_scheme": "*",
- "source_context_list": "*",
- "redirection": "*",
- "delivery_type": "*",
- "delivery_value": "*",
- "origin": [
- "cross-http",
- "cross-https"
- ],
- "subresource": [
- "worker-classic",
- "worker-module",
- "sharedworker-classic",
- "sharedworker-module"
- ],
- "expectation": "*"
- },
- {
"name": "upgraded-protocol-workers",
"expansion": "*",
"source_scheme": "http",
@@ -579,41 +557,18 @@
"redirection": "*",
"origin": [
"same-http",
- "cross-http"
+ "same-http-downgrade",
+ "cross-http",
+ "cross-http-downgrade",
+ "same-ws",
+ "same-ws-downgrade",
+ "cross-ws",
+ "cross-ws-downgrade"
],
"subresource": "*",
"expectation": "*"
},
{
- "name": "area-tag",
- "expansion": "*",
- "source_scheme": "*",
- "source_context_list": "*",
- "delivery_type": "*",
- "delivery_value": "*",
- "redirection": "*",
- "origin": "*",
- "subresource": "area-tag",
- "expectation": "*"
- },
- {
- "name": "worker-requests-with-swap-origin-redirect",
- "expansion": "*",
- "source_scheme": "*",
- "source_context_list": "*",
- "delivery_type": "*",
- "delivery_value": "*",
- "redirection": "swap-origin",
- "origin": "*",
- "subresource": [
- "worker-classic",
- "worker-module",
- "sharedworker-classic",
- "sharedworker-module"
- ],
- "expectation": "*"
- },
- {
"name": "overhead-for-redirection",
"expansion": "*",
"source_scheme": "*",
@@ -663,7 +618,90 @@
"origin": "*",
"subresource": "*",
"expectation": "*"
- }
+ },
+ {
+ "name": "redirections that referrer-policy tests don't care",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": [
+ "keep-scheme",
+ "swap-scheme",
+ "downgrade"
+ ],
+ "origin": "*",
+ "subresource": "*",
+ "expectation": "*"
+ },
+ {
+ "name": "origins that referrer-policy tests don't care",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "origin": [
+ "same-http-downgrade",
+ "cross-http-downgrade",
+ "same-ws-downgrade",
+ "cross-ws-downgrade"
+ ],
+ "subresource": "*",
+ "expectation": "*"
+ },
+ {
+ "name": "subresource values not yet tested",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": "*",
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "subresource": [
+ "area-tag",
+ "audio-tag",
+ "beacon",
+ "link-css-tag",
+ "link-prefetch-tag",
+ "object-tag",
+ "picture-tag",
+ "sharedworker-import-data",
+ "video-tag",
+ "websocket",
+ "worker-import-data",
+ "worklet-animation",
+ "worklet-animation-import-data",
+ "worklet-audio",
+ "worklet-audio-import-data",
+ "worklet-layout",
+ "worklet-layout-import-data",
+ "worklet-paint",
+ "worklet-paint-import-data"
+ ],
+ "origin": "*",
+ "expectation": "*"
+ },
+ {
+ "name": "source_context_list values not yet tested",
+ "expansion": "*",
+ "source_scheme": "*",
+ "source_context_list": [
+ "iframe-blank-inherit",
+ "sharedworker-classic-data",
+ "sharedworker-module-data",
+ "worker-classic-data",
+ "worker-module-data"
+ ],
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "subresource": "*",
+ "origin": "*",
+ "expectation": "*"
+ },
],
"source_context_schema": {
"supported_delivery_type": {
@@ -688,46 +726,22 @@
"http-rp"
],
"worker-classic-data": [],
- "worker-module-data": []
- },
- "supported_subresource": {
- "top": "*",
- "iframe": "*",
- "iframe-blank": "*",
- "srcdoc": "*",
- "worker-classic": [
- "xhr",
- "fetch",
- "worker-classic",
- "worker-module"
- ],
- "worker-module": [
- "xhr",
- "fetch",
- "worker-classic",
- "worker-module"
+ "worker-module-data": [],
+ "sharedworker-classic": [
+ "http-rp"
],
- "worker-classic-data": [
- "xhr",
- "fetch"
+ "sharedworker-module": [
+ "http-rp"
],
- "worker-module-data": [
- "xhr",
- "fetch"
- ]
+ "sharedworker-classic-data": [],
+ "sharedworker-module-data": []
}
},
"subresource_schema": {
"supported_delivery_type": {
- "iframe-tag": [
- "attr"
- ],
- "img-tag": [
- "attr"
- ],
- "script-tag": [
- "attr"
- ],
+ // List of elements that support "attr" delivery type can be followed
+ // from the cross reference of:
+ // https://html.spec.whatwg.org/C/#referrer-policy-attribute
"a-tag": [
"attr",
"rel-noref"
@@ -735,166 +749,54 @@
"area-tag": [
"attr"
],
- "xhr": [],
+ "audio-tag": [],
+ "beacon": [],
+ // Fetch API supports `init["referrerPolicy"]` in `Request`:
+ // https://fetch.spec.whatwg.org/#dom-request.
+ // TODO(https://github.com/web-platform-tests/wpt/issues/21815):
+ // Add support for this. Currently `common.sub.js` doesn't support this.
"fetch": [],
- "sharedworker-module": [],
- "worker-module": [],
- "sharedworker-classic": [],
- "worker-classic": []
- }
- },
- "source_context_list_schema": {
- "top": {
- "description": "Policy set by the top-level Document",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "req": {
- "description": "Subresource request's policy should override Document's policy",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": [
- "nonNullPolicy"
- ]
- },
- "srcdoc-inherit": {
- "description": "srcdoc iframe should inherit parent Document's policy",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "srcdoc"
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "srcdoc": {
- "description": "srcdoc iframe's policy should override parent Document's policy",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- },
- {
- "sourceContextType": "srcdoc",
- "policyDeliveries": [
- "nonNullPolicy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "iframe": {
- "description": "external iframe's policy should override parent Document's policy",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- },
- {
- "sourceContextType": "iframe",
- "policyDeliveries": [
- "policy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "worker-classic": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- },
- {
- "sourceContextType": "worker-classic",
- "policyDeliveries": [
- "policy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "worker-classic-data": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- },
- {
- "sourceContextType": "worker-classic-data",
- "policyDeliveries": [
- "policy"
- ]
- }
+ "iframe-tag": [
+ "attr"
],
- "subresourcePolicyDeliveries": []
- },
- "worker-module": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- },
- {
- "sourceContextType": "worker-module",
- "policyDeliveries": [
- "policy"
- ]
- }
+ "img-tag": [
+ "attr"
],
- "subresourcePolicyDeliveries": []
- },
- "worker-module-data": {
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "anotherPolicy"
- ]
- },
- {
- "sourceContextType": "worker-module-data",
- "policyDeliveries": [
- "policy"
- ]
- }
+ // TODO(https://github.com/web-platform-tests/wpt/issues/21815):
+ // Support "attr" in the following `<link>`-related subresources.
+ // The current referrrer-policy test helper doesn't support
+ // checking referrer results via <link> elements.
+ "link-css-tag": [],
+ "link-prefetch-tag": [],
+ "object-tag": [],
+ // `<img>` supports referrerpolicy attribute,
+ // so `<img>` inside `<picture>` also supports the attribute.
+ // TODO(https://github.com/web-platform-tests/wpt/issues/21815):
+ // Support this.
+ "picture-tag": [],
+ "script-tag": [
+ "attr"
],
- "subresourcePolicyDeliveries": []
+ "sharedworker-classic": [],
+ "sharedworker-import-data": [],
+ "sharedworker-module": [],
+ "video-tag": [],
+ "websocket": [],
+ "worker-classic": [],
+ "worker-import-data": [],
+ "worker-module": [],
+ "worklet-animation": [],
+ "worklet-animation-import-data": [],
+ "worklet-audio": [],
+ "worklet-audio-import-data": [],
+ "worklet-layout": [],
+ "worklet-layout-import-data": [],
+ "worklet-paint": [],
+ "worklet-paint-import-data": [],
+ "xhr": []
}
},
"test_expansion_schema": {
- "expansion": [
- "default",
- "override"
- ],
"delivery_type": [
"attr",
"rel-noref",
@@ -912,45 +814,6 @@
"strict-origin-when-cross-origin",
"unsafe-url"
],
- "origin": [
- "same-http",
- "same-https",
- "cross-http",
- "cross-https"
- ],
- "source_context_list": [
- "top",
- "req",
- "srcdoc-inherit",
- "srcdoc",
- "iframe",
- "worker-classic",
- "worker-classic-data",
- "worker-module",
- "worker-module-data"
- ],
- "source_scheme": [
- "http",
- "https"
- ],
- "redirection": [
- "no-redirect",
- "keep-origin",
- "swap-origin"
- ],
- "subresource": [
- "iframe-tag",
- "img-tag",
- "script-tag",
- "a-tag",
- "area-tag",
- "xhr",
- "worker-classic",
- "worker-module",
- "sharedworker-classic",
- "sharedworker-module",
- "fetch"
- ],
"expectation": [
"omitted",
"origin",
diff --git a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js
index 7832a8231ef..14bb8fdada3 100644
--- a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js
+++ b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js
@@ -26,6 +26,10 @@ function toMojoNDEFRecord(record) {
nfcRecord.recordType = record.recordType;
nfcRecord.mediaType = record.mediaType;
nfcRecord.id = record.id;
+ if (record.recordType == 'text') {
+ nfcRecord.encoding = record.encoding == null? 'utf-8': record.encoding;
+ nfcRecord.lang = record.lang == null? 'en': record.lang;
+ }
nfcRecord.data = toByteArray(record.data);
if (record.data != null && record.data.records !== undefined) {
// |record.data| may be an NDEFMessageInit, i.e. the payload is a message.
@@ -72,6 +76,17 @@ function compareNDEFRecords(providedRecord, receivedRecord) {
assert_not_equals(providedRecord.recordType, 'empty');
+ if (providedRecord.recordType == 'text') {
+ assert_equals(
+ providedRecord.encoding == null? 'utf-8': providedRecord.encoding,
+ receivedRecord.encoding);
+ assert_equals(providedRecord.lang == null? 'en': providedRecord.lang,
+ receivedRecord.lang);
+ } else {
+ assert_equals(null, receivedRecord.encoding);
+ assert_equals(null, receivedRecord.lang);
+ }
+
assert_array_equals(toByteArray(providedRecord.data),
new Uint8Array(receivedRecord.data));
}
diff --git a/tests/wpt/web-platform-tests/shadow-dom/resources/shadow-dom.js b/tests/wpt/web-platform-tests/shadow-dom/resources/shadow-dom.js
index 81b9a3d4fae..3a4ad39d42a 100644
--- a/tests/wpt/web-platform-tests/shadow-dom/resources/shadow-dom.js
+++ b/tests/wpt/web-platform-tests/shadow-dom/resources/shadow-dom.js
@@ -21,7 +21,15 @@ function createTestTree(node) {
function attachShadowFromTemplate(template) {
let parent = template.parentNode;
parent.removeChild(template);
- let shadowRoot = parent.attachShadow({mode: template.getAttribute('data-mode')});
+ let shadowRoot;
+ if (template.getAttribute('data-slot-assignment') === 'manual') {
+ shadowRoot =
+ parent.attachShadow({mode: template.getAttribute('data-mode'),
+ slotAssignment: 'manual'});
+ } else {
+ shadowRoot = parent.attachShadow(
+ {mode: template.getAttribute('data-mode')});
+ }
let id = template.id;
if (id) {
shadowRoot.id = id;
diff --git a/tests/wpt/web-platform-tests/shadow-dom/slots-imperative-slot-api.tentative.html b/tests/wpt/web-platform-tests/shadow-dom/slots-imperative-slot-api.tentative.html
new file mode 100644
index 00000000000..5999ec82a38
--- /dev/null
+++ b/tests/wpt/web-platform-tests/shadow-dom/slots-imperative-slot-api.tentative.html
@@ -0,0 +1,229 @@
+<!DOCTYPE html>
+<title>Shadow DOM: Imperative Slot API</title>
+<meta name="author" title="Yu Han" href="mailto:yuzhehan@chromium.org">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/shadow-dom.js"></script>
+
+<div id="test_basic">
+ <div id="host1"></div>
+ <div id="host2"></div>
+ <div id="host3"></div>
+</div>
+<script>
+test(() => {
+ let tTree = createTestTree(test_basic);
+ assert_not_equals(tTree.host1.attachShadow({ mode: 'open', slotAssignment: 'manual'}),
+ null, 'slot assignment manual should work');
+ assert_not_equals(tTree.host2.attachShadow({ mode: 'open', slotAssignment: 'auto'}),
+ null, 'slot assignment auto should work');
+ assert_throws_js(TypeError, () => {
+ tTree.host3.attachShadow({ mode: 'open', slotAssignment: 'exceptional' })},
+ 'others should throw exception');
+}, 'attachShadow can take slotAssignment parameter.');
+</script>
+
+<div id="test_errors">
+ <div id="host1">
+ <template data-mode="open" data-slot-assignment="auto">
+ <slot id="s1"></slot>
+ </template>
+ </div>
+ <div id="host2">
+ <template data-mode="open" data-slot-assignment="manual">
+ <slot id="s2"></slot>
+ </template>
+ </div>
+ <div id="c1" slot="slot1"></div>
+</div>
+<script>
+test(() => {
+ let tTree = createTestTree(test_errors);
+ assert_throws_dom('NotAllowedError', () => { tTree.s1.assign([]); });
+}, 'Imperative slot API throws exception when not slotAssignment != \'manual\'.');
+
+test(() => {
+ let tTree = createTestTree(test_errors);
+ assert_throws_dom('NotAllowedError', () => { tTree.s2.assign([tTree.c1]); });
+
+ assert_throws_dom('NotAllowedError', () => { tTree.s2.assign([tTree.host1]); });
+}, 'Imperative slot API throws exception when slotable parentNode != slot\'s host.');
+</script>
+
+<div id="test_assign">
+ <div id="host">
+ <template id="shadow_root" data-mode="open" data--slot-assignment="manual">
+ <slot id="s1"></slot>
+ <slot id="s2"></slot>
+ <slot id="s3"></slot>
+ </template>
+ <div id="c1"></div>
+ <div id="c2"></div>
+ <div id="c3"></div>
+ <div id="nested">
+ <div id="ns1"></div>
+ </div>
+ </div>
+ <div id="c4"></div>
+ <div id="host4">
+ <template id="shadow_root4" data-mode="open" data-slot-assignment="manual">
+ <slot id="s4" name="s4"></slot>
+ </template>
+ </div>
+</div>
+<script>
+test(() => {
+ let tTree = createTestTree(test_assign);
+ assert_array_equals(tTree.s2.assignedElements(), []);
+ assert_equals(tTree.c1.assignedSlot, null);
+
+ tTree.s1.assign([tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+
+ tTree.s2.assign([tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
+ assert_array_equals(tTree.s2.assignedNodes(), [tTree.c2, tTree.c3]);
+}, 'Imperative slot API can assign nodes in manual slot assignment.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c2, tTree.c3, tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c3, tTree.c1]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+ assert_equals(tTree.c2.assignedSlot, tTree.s1);
+ assert_equals(tTree.c3.assignedSlot, tTree.s1);
+
+ tTree.s1.assign([tTree.c1, tTree.c2]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+ assert_equals(tTree.c2.assignedSlot, tTree.s1);
+ assert_equals(tTree.c3.assignedSlot, null);
+
+ tTree.s1.assign([tTree.c3, tTree.c2, tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c3, tTree.c2, tTree.c1]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+ assert_equals(tTree.c2.assignedSlot, tTree.s1);
+ assert_equals(tTree.c3.assignedSlot, tTree.s1);
+}, 'Order of slotables is preserved in manual slot assignment.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c2, tTree.c3, tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c3, tTree.c1]);
+
+ tTree.s2.assign([tTree.c2]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c3, tTree.c1]);
+ assert_array_equals(tTree.s2.assignedNodes(), [tTree.c2]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+ assert_equals(tTree.c2.assignedSlot, tTree.s2);
+ assert_equals(tTree.c3.assignedSlot, tTree.s1);
+
+ tTree.s3.assign([tTree.c3]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
+ assert_array_equals(tTree.s2.assignedNodes(), [tTree.c2]);
+ assert_array_equals(tTree.s3.assignedNodes(), [tTree.c3]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+ assert_equals(tTree.c2.assignedSlot, tTree.s2);
+ assert_equals(tTree.c3.assignedSlot, tTree.s3);
+}, 'Previously assigned slotable is moved to new slot when it\'s reassigned.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ // tTree.c4 is invalid for tTree.host slot assignment.
+ try {
+ tTree.s1.assign([tTree.c1, tTree.c2, tTree.c4]);
+ assert_unreached('assign() should have failed) ');
+ } catch (err) {
+ assert_equals(err.name, 'NotAllowedError');
+ }
+
+ assert_array_equals(tTree.s1.assignedNodes(), []);
+ assert_equals(tTree.c1.assignedSlot, null);
+ assert_equals(tTree.c2.assignedSlot, null);
+ assert_equals(tTree.c4.assignedSlot, null);
+
+ tTree.s1.assign([tTree.c2, tTree.c3, tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c3, tTree.c1]);
+
+ try {
+ tTree.s1.assign([tTree.c4]);
+ assert_unreached('assign() should have failed) ');
+ } catch (err) {
+ assert_equals(err.name, 'NotAllowedError');
+ }
+
+ // Previous state is preserved.
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c3, tTree.c1]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s1);
+ assert_equals(tTree.c2.assignedSlot, tTree.s1);
+ assert_equals(tTree.c3.assignedSlot, tTree.s1);
+}, 'Assigning invalid nodes causes exception and slot returns to its previous state.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c1, tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+
+ tTree.host4.append(tTree.s1);
+ assert_array_equals(tTree.s1.assignedNodes(), []);
+}, 'Moving a slot to a new host, the slot loses its previously assigned slotables.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c1, tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+
+ tTree.shadow_root.insertBefore(tTree.s2, tTree.s1);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s2.assignedNodes(), []);
+
+ tTree.shadow_root.insertBefore(tTree.s4, tTree.s1);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s4.assignedNodes(), []);
+
+ tTree.ns1.append(tTree.s1);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+}, 'Moving a slot\'s tree order position within a shadow host has no impact on its assigned slotables.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c1, tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1, tTree.c2, tTree.c3]);
+
+ tTree.host4.append(tTree.c1);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c3]);
+ assert_array_equals(tTree.s4.assignedNodes(), []);
+
+ tTree.s4.assign(tTree.c1);
+ assert_array_equals(tTree.s4.assignedNodes(), [tTree.c1]);
+ assert_equals(tTree.c1.assignedSlot, tTree.s4);
+}, 'Appending slotable to different host, it loses slot assignment. It can be re-assigned within a new host.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c1, tTree.c1, tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c1]);
+
+ tTree.s1.assign([tTree.c1, tTree.c1, tTree.c2, tTree.c2, tTree.c1]);
+ assert_array_equals(tTree.s1.assignedNodes(), [tTree.c2, tTree.c1]);
+}, 'Assignment with the same node in parameters should be ignored, last one wins.');
+
+test(() => {
+ let tTree = createTestTree(test_assign);
+
+ tTree.s1.assign([tTree.c1, tTree.c2, tTree.c3]);
+ tTree.s1.remove();
+
+ assert_equals(tTree.c1.assignedSlot, null);
+ assert_equals(tTree.c2.assignedSlot, null);
+ assert_equals(tTree.c3.assignedSlot, null);
+}, 'Removing a slot from DOM resets its slotable\'s slot assignment.');
+</script>
diff --git a/tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js b/tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js
index e7f2cc8ff86..da60edbee63 100644
--- a/tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js
+++ b/tests/wpt/web-platform-tests/shape-detection/idlharness.https.any.js
@@ -1,7 +1,6 @@
// META: global=window,worker
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
-// META: script=/shape-detection/resources/shapedetection-helpers.js
// See: https://wicg.github.io/shape-detection-api/
@@ -12,53 +11,8 @@ idl_test(
['dom', 'geometry'],
async idl_array => {
idl_array.add_objects({
- FaceDetector: ['faceDetector'],
- DetectedFace: ['detectedFace'],
- BarcodeDetector: ['barcodeDetector'],
- DetectedBarcode: ['detectedBarcode']
+ FaceDetector: ['new FaceDetector()'],
+ BarcodeDetector: ['new BarcodeDetector()'],
});
-
- let faceDetectionTest;
- try {
- faceDetectionTest =
- await initialize_detection_tests("FaceDetectionTest");
- const img = createTestImage();
- const theImageBitmap = await createImageBitmap(img);
-
- self.faceDetector = new FaceDetector();
- const faceDetectionResult = await faceDetector.detect(theImageBitmap);
- self.detectedFace = faceDetectionResult[0];
- } catch (e) {
- // Surfaced in idlharness.js's test_object.
- } finally {
- faceDetectionTest && faceDetectionTest.reset();
- }
-
- let barcodeDetectionTest;
- try {
- barcodeDetectionTest =
- await initialize_detection_tests("BarcodeDetectionTest");
- const img = createTestImage();
- const theImageBitmap = await createImageBitmap(img);
-
- self.barcodeDetector = new BarcodeDetector();
- const barcodeDetectionResult =
- await barcodeDetector.detect(theImageBitmap);
- self.detectedBarcode = barcodeDetectionResult[0];
- } catch (e) {
- // Surface in idlharness.js's test_object.
- } finally {
- barcodeDetectionTest && barcodeDetectionTest.reset();
- }
}
);
-
-function createTestImage() {
- const image = new OffscreenCanvas(100, 50);
- const imgctx = image.getContext('2d');
- imgctx.fillStyle = "#F00";
- imgctx.fillRect(0, 0, 2, 2);
- imgctx.fillStyle = "#0F0";
- imgctx.fillRect(0, 0, 1, 1);
- return image;
-} \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb
index bcd4d5a4f3e..1bf9d5df0b3 100644
--- a/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb
+++ b/tests/wpt/web-platform-tests/tools/ci/azure/safari-technology-preview.rb
@@ -1,10 +1,10 @@
cask 'safari-technology-preview' do
if MacOS.version <= :mojave
- version '101,061-79986-20200218-f3264d1d-fff0-4ff6-b518-719415265e1c'
- sha256 '00e091a57289366ecdac4f47de8405561817730d79b040966903459ac90da20a'
+ version '102,061-84687-20200304-286a8fe8-5a00-41ba-9dba-2c42e047ffb1'
+ sha256 '2e048fec4a470f5b5d9cffc359ba967bee02cf3cf121e5ea16812077adc5ba60'
else
- version '101,061-79983-20200218-baf609a5-fdff-4f67-ade1-24d800440418'
- sha256 'a9ee1470dc7319e17b5a793530c21ff8a33d5458348096a95226b1da084a36b0'
+ version '102,061-84666-20200304-c2d165f2-2aec-41b2-86ef-0a9407608e2c'
+ sha256 'ef9e9ea8990bb63936216fcdf93720b854366d158cad3daf5b812f841f7b5d99'
end
url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg"
diff --git a/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py b/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py
index 4573541bf58..aa1ce20cd6d 100644
--- a/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py
+++ b/tests/wpt/web-platform-tests/tools/ci/tc/tests/test_valid.py
@@ -6,7 +6,6 @@ import jsone
import mock
import pytest
import requests
-import sys
import yaml
from jsonschema import validate
@@ -20,9 +19,6 @@ def data_path(filename):
return os.path.join(here, "..", "testdata", filename)
-@pytest.mark.xfail(sys.version_info.major == 2,
- reason="taskcluster library has an encoding bug "
- "https://github.com/taskcluster/json-e/issues/338")
def test_verify_taskcluster_yml():
"""Verify that the json-e in the .taskcluster.yml is valid"""
with open(os.path.join(root, ".taskcluster.yml"), encoding="utf8") as f:
diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py
index 9885e99c4f7..658ed0e00f8 100644
--- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py
+++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/client.py
@@ -444,7 +444,7 @@ class Session(object):
finally:
self.session_id = None
- def send_command(self, method, url, body=None):
+ def send_command(self, method, url, body=None, timeout=None):
"""
Send a command to the remote end and validate its success.
@@ -465,7 +465,7 @@ class Session(object):
response = self.transport.send(
method, url, body,
encoder=protocol.Encoder, decoder=protocol.Decoder,
- session=self)
+ session=self, timeout=timeout)
if response.status != 200:
err = error.from_response(response)
@@ -493,7 +493,7 @@ class Session(object):
return value
- def send_session_command(self, method, uri, body=None):
+ def send_session_command(self, method, uri, body=None, timeout=None):
"""
Send a command to an established session and validate its success.
@@ -510,7 +510,7 @@ class Session(object):
an error.
"""
url = urlparse.urljoin("session/%s/" % self.session_id, uri)
- return self.send_command(method, url, body)
+ return self.send_command(method, url, body, timeout)
@property
@command
diff --git a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py
index edaf3186039..f817ec81a96 100644
--- a/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py
+++ b/tests/wpt/web-platform-tests/tools/webdriver/webdriver/transport.py
@@ -103,9 +103,8 @@ class HTTPWireProtocol(object):
conn_kwargs = {}
if not PY3:
conn_kwargs["strict"] = True
- # We are not setting an HTTP timeout other than the default
- # because the timeouts are handled externally by the runner
- # and can be different for each type of test.
+ # We are not setting an HTTP timeout other than the default when the
+ # connection its created. The send method has a timeout value if needed.
self._conn = HTTPConnection(self.host, self.port, **conn_kwargs)
return self._conn
@@ -124,6 +123,7 @@ class HTTPWireProtocol(object):
headers=None,
encoder=json.JSONEncoder,
decoder=json.JSONDecoder,
+ timeout=None,
**codec_kwargs):
"""
Send a command to the remote.
@@ -179,11 +179,11 @@ class HTTPWireProtocol(object):
# runner thread. We use the boolean below to check for that and restart
# the connection in that case.
self._last_request_is_blocked = True
- response = self._request(method, uri, payload, headers)
+ response = self._request(method, uri, payload, headers, timeout=None)
self._last_request_is_blocked = False
return Response.from_http(response, decoder=decoder, **codec_kwargs)
- def _request(self, method, uri, payload, headers=None):
+ def _request(self, method, uri, payload, headers=None, timeout=None):
if isinstance(payload, text_type):
payload = payload.encode("utf-8")
@@ -195,8 +195,21 @@ class HTTPWireProtocol(object):
if self._last_request_is_blocked or self._has_unread_data():
self.close()
+
self.connection.request(method, url, payload, headers)
- return self.connection.getresponse()
+
+ # timeout for request has to be set just before calling httplib.getresponse()
+ # and the previous value restored just after that, even on exception raised
+ try:
+ if timeout:
+ previous_timeout = self._conn.gettimeout()
+ self._conn.settimeout(timeout)
+ response = self.connection.getresponse()
+ finally:
+ if timeout:
+ self._conn.settimeout(previous_timeout)
+
+ return response
def _has_unread_data(self):
return self._conn and self._conn.sock and select.select([self._conn.sock], [], [], 0)[0]
diff --git a/tests/wpt/web-platform-tests/tools/wpt/revlist.py b/tests/wpt/web-platform-tests/tools/wpt/revlist.py
index c4cbc2943b7..1893fdefa83 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/revlist.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/revlist.py
@@ -106,11 +106,14 @@ def get_parser():
type=int,
help="maximum number of revisions to be returned by "
"the command")
+ parser.add_argument("--verbose", action="store_true", help="debug logging")
return parser
def run_rev_list(**kwargs):
# type: (**Any) -> None
+ if kwargs.get('verbose'):
+ logger.setLevel(logging.DEBUG)
# "epoch_threshold" is a safety margin. After this time it is fine to
# assume that any tags are created and pushed.
epoch_threshold = 600
diff --git a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py
index 400debc88e4..18edcc04fb4 100644
--- a/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py
+++ b/tests/wpt/web-platform-tests/tools/wpt/virtualenv.py
@@ -32,7 +32,9 @@ class Virtualenv(object):
@property
def exists(self):
- return os.path.isdir(self.path)
+ # We need to check also for lib_path because different python versions
+ # create different library paths.
+ return os.path.isdir(self.path) and os.path.isdir(self.lib_path)
@property
def broken_link(self):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
index 99898d1736d..6cd14095d9b 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements.txt
@@ -1,6 +1,6 @@
html5lib==1.0.1
mozinfo==1.1.0
-mozlog==5.0
+mozlog==6.0
mozdebug==0.2
# Pillow 7 requires Python 3
pillow==6.2.2 # pyup: <7.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
index f2d02e0b8a3..ae729408104 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_firefox.txt
@@ -1,5 +1,5 @@
marionette_driver==3.0.0
-mozcrash==1.2.0
+mozcrash==2.0.0
mozdownload==1.26.0
mozinstall==2.0.0
mozleak==0.2
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 96488f462e7..2a0e9c7136d 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -301,19 +301,15 @@ class WebDriverProtocol(Protocol):
self.webdriver = None
def is_alive(self):
- socket_previous_timeout = socket.getdefaulttimeout()
try:
# Get a simple property over the connection, with 2 seconds of timeout
# that should be more than enough to check if the WebDriver its
# still alive, and allows to complete the check within the testrunner
# 5 seconds of extra_timeout we have as maximum to end the test before
# the external timeout from testrunner triggers.
- socket.setdefaulttimeout(2)
- self.webdriver.window_handle
+ self.webdriver.send_session_command("GET", "window", timeout=2)
except (socket.timeout, client.UnknownErrorException, client.InvalidSessionIdException):
return False
- finally:
- socket.setdefaulttimeout(socket_previous_timeout)
return True
def after_connect(self):
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
index 66b97fd8953..5f07e7e6520 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
@@ -5,7 +5,7 @@ import sys
from collections import OrderedDict
from distutils.spawn import find_executable
from datetime import timedelta
-from six import iterkeys, itervalues, iteritems, string_types
+from six import iterkeys, itervalues, iteritems
from . import config
from . import wpttest
@@ -538,9 +538,6 @@ def check_args(kwargs):
kwargs["certutil_binary"] = path
if kwargs['extra_prefs']:
- # If a single pref is passed in as a string, make it a list
- if isinstance(kwargs['extra_prefs'], string_types):
- kwargs['extra_prefs'] = [kwargs['extra_prefs']]
missing = any('=' not in prefarg for prefarg in kwargs['extra_prefs'])
if missing:
print("Preferences via --setpref must be in key=value format", file=sys.stderr)
diff --git a/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.html b/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.https.html
index 2dfc37686bc..2dfc37686bc 100644
--- a/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html b/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html
index 5bd4003cfdd..5bd4003cfdd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.https.html
index 87e9e724699..87e9e724699 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.https.html
index 6a9329b3fbf..6a9329b3fbf 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.https.html
index f6221362c17..f6221362c17 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.https.html
index c8daddfe995..c8daddfe995 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.https.html
index cd6617915bd..cd6617915bd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.https.html
index 67e8236febd..67e8236febd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html b/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.https.html
index 6cbf680fa26..6cbf680fa26 100644
--- a/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.html b/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.https.html
index 3ec6cfa60da..3ec6cfa60da 100644
--- a/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.html b/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.https.html
index 2970e2a7ec6..2970e2a7ec6 100644
--- a/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.https.html
index e3e4a2635e9..e3e4a2635e9 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.https.html
index 3a880a53778..3a880a53778 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.https.html
index 77eef9cf39e..77eef9cf39e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.https.html
index b1c7f51ddb3..b1c7f51ddb3 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.https.html
index 0e97a4a245a..0e97a4a245a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html
deleted file mode 100644
index 7e39042e1cb..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js" ></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="support/helper.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
-<body>
-<script>
- test(t => {
- const p1 = trustedTypes.createPolicy("policyHTMLAndScript", {
- createHTML: s => s,
- createScript: s => s
- });
- assert_throws_js(TypeError, _ => { p1.createScriptURL("foo"); });
-
- const p2 = trustedTypes.createPolicy("policyURLAndScriptURL", {
- createScriptURL: s => s
- });
- assert_throws_js(TypeError, _ => { p2.createHTML("foo"); });
- assert_throws_js(TypeError, _ => { p2.createScript("foo"); });
- }, "calling undefined callbacks throws");
-
- test(t => {
- const noopPolicy = {
- createHTML: (s) => s,
- createScriptURL: (s) => s,
- createScript: (s) => s,
- };
- policy = trustedTypes.createPolicy(Math.random(), noopPolicy, true);
- let el = document.createElement("div");
-
- el.title = policy.createHTML(INPUTS.SCRIPTURL);
- assert_equals(el.title, INPUTS.SCRIPTURL);
- }, "Attributes without type constraints will work as before.");
-
- test(t => {
- const policy = trustedTypes.createPolicy("nullpolicy", null);
- assert_throws_js(TypeError, _ => { policy.createScriptURL("foo"); });
- assert_throws_js(TypeError, _ => { policy.createHTML("foo"); });
- assert_throws_js(TypeError, _ => { policy.createScript("foo"); });
- }, "trustedTypes.createPolicy(.., null) creates empty policy.");
-
-
- // testCases contains a list of policy functions and expected results (when
- // called with a given default argument). They also use various helper
- // variables (declared just below) to test side effects or interactions of
- // global vars/functions with policy callbacks.
- let aGlobalVarForSideEffectTesting = "global";
- var aGlobalObject = { "foo": "well," };
- function aGlobalFunction(s) { return this.foo + " " + s; }
- function anotherGlobalFunction(s) { return s + "#" + this.foo; }
- var foo = "a global var named foo";
-
- const stringTestCases = [
- [ s => s, "whatever" ],
- [ s => null, "" ],
- [ s => "well, " + s, "well, whatever" ],
- [ s => { throw new Error() }, Error ],
- [ s => { aGlobalVarForSideEffectTesting = s; return s }, "whatever" ],
- [ s => aGlobalVarForSideEffectTesting + s, "whateverwhatever" ],
- [ aGlobalFunction.bind(aGlobalObject), "well, whatever" ],
- [ s => aGlobalFunction(s), "a global var named foo whatever" ],
- ];
-
- const urlTestCases = [
- [ s => s, INPUTS.SCRIPTURL ],
- [ s => null, "" ],
- [ s => s + "#duck", INPUTS.SCRIPTURL + "#duck" ],
- [ s => { throw new Error() }, Error ],
- [ s => s + "#" + aGlobalVarForSideEffectTesting,
- INPUTS.SCRIPTURL + "#global" ],
- [ anotherGlobalFunction.bind(aGlobalObject), INPUTS.SCRIPTURL + "#well," ],
- [ s => anotherGlobalFunction(s),
- INPUTS.SCRIPTURL + "#a global var named foo" ],
- ];
-
- function policyBuilder(trustedMethodName, trustedType, defaultArg) {
- return function(name, fn) {
- let options = {};
- options[trustedMethodName] = fn;
- let policy = window.trustedTypes.createPolicy(name, options);
- let result = policy[trustedMethodName](defaultArg);
- assert_true(result instanceof trustedType);
- return result;
- }
- }
-
- const testCases = [
- [TrustedHTML, "createHTML", "whatever", stringTestCases],
- [TrustedScript, "createScript", "whatever", stringTestCases],
- [TrustedScriptURL, "createScriptURL", INPUTS.SCRIPTURL, urlTestCases],
- ];
-
- // Iterate over all trusted types, iterate over all test cases.
- // For each, build the suitable policy and check the result.
- for (let [trusted_class, trusted_method, default_arg, test_cases] of testCases) {
- aGlobalVarForSideEffectTesting = "global";
- let builder = policyBuilder(trusted_method, trusted_class, default_arg);
- for (let [index, [policy_fn, value]] of test_cases.entries()) {
- let subtest_name = "TestPolicy" + trusted_class.name + index;
- test(t => {
- if (typeof value == "object") {
- assert_throws_js(value, () => builder(subtest_name, policy_fn));
- } else {
- assert_equals("" + builder(subtest_name, policy_fn), value);
- }
- }, subtest_name + " (" + trusted_class.name + ": " +
- policy_fn.toString() + ")");
- }
- }
-</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html
new file mode 100644
index 00000000000..81ad053f5cd
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js" ></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.sub.js"></script>
+
+<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<body>
+<script>
+ test(t => {
+ const p1 = trustedTypes.createPolicy("policyHTMLAndScript", {
+ createHTML: s => s,
+ createScript: s => s
+ });
+ assert_throws_js(TypeError, _ => { p1.createScriptURL("foo"); });
+
+ const p2 = trustedTypes.createPolicy("policyURLAndScriptURL", {
+ createScriptURL: s => s
+ });
+ assert_throws_js(TypeError, _ => { p2.createHTML("foo"); });
+ assert_throws_js(TypeError, _ => { p2.createScript("foo"); });
+ }, "calling undefined callbacks throws");
+
+ test(t => {
+ const noopPolicy = {
+ createHTML: (s) => s,
+ createScriptURL: (s) => s,
+ createScript: (s) => s,
+ };
+ policy = trustedTypes.createPolicy(Math.random(), noopPolicy, true);
+ let el = document.createElement("div");
+
+ el.title = policy.createHTML(INPUTS.SCRIPTURL);
+ assert_equals(el.title, INPUTS.SCRIPTURL);
+ }, "Attributes without type constraints will work as before.");
+
+ test(t => {
+ const policy = trustedTypes.createPolicy("nullpolicy", null);
+ assert_throws_js(TypeError, _ => { policy.createScriptURL("foo"); });
+ assert_throws_js(TypeError, _ => { policy.createHTML("foo"); });
+ assert_throws_js(TypeError, _ => { policy.createScript("foo"); });
+ }, "trustedTypes.createPolicy(.., null) creates empty policy.");
+
+
+ // testCases contains a list of policy functions and expected results (when
+ // called with a given default argument). They also use various helper
+ // variables (declared just below) to test side effects or interactions of
+ // global vars/functions with policy callbacks.
+ let aGlobalVarForSideEffectTesting = "global";
+ var aGlobalObject = { "foo": "well," };
+ function aGlobalFunction(s) { return this.foo + " " + s; }
+ function anotherGlobalFunction(s) { return s + "#" + this.foo; }
+ var foo = "a global var named foo";
+
+ const stringTestCases = [
+ [ s => s, "whatever" ],
+ [ s => null, "" ],
+ [ s => "well, " + s, "well, whatever" ],
+ [ s => { throw new Error() }, Error ],
+ [ s => { aGlobalVarForSideEffectTesting = s; return s }, "whatever" ],
+ [ s => aGlobalVarForSideEffectTesting + s, "whateverwhatever" ],
+ [ aGlobalFunction.bind(aGlobalObject), "well, whatever" ],
+ [ s => aGlobalFunction(s), "a global var named foo whatever" ],
+ ];
+
+ const urlTestCases = [
+ [ s => s, INPUTS.SCRIPTURL ],
+ [ s => null, "" ],
+ [ s => s + "#duck", INPUTS.SCRIPTURL + "#duck" ],
+ [ s => { throw new Error() }, Error ],
+ [ s => s + "#" + aGlobalVarForSideEffectTesting,
+ INPUTS.SCRIPTURL + "#global" ],
+ [ anotherGlobalFunction.bind(aGlobalObject), INPUTS.SCRIPTURL + "#well," ],
+ [ s => anotherGlobalFunction(s),
+ INPUTS.SCRIPTURL + "#a global var named foo" ],
+ ];
+
+ function policyBuilder(trustedMethodName, trustedType, defaultArg) {
+ return function(name, fn) {
+ let options = {};
+ options[trustedMethodName] = fn;
+ let policy = window.trustedTypes.createPolicy(name, options);
+ let result = policy[trustedMethodName](defaultArg);
+ assert_true(result instanceof trustedType);
+ return result;
+ }
+ }
+
+ const testCases = [
+ [TrustedHTML, "createHTML", "whatever", stringTestCases],
+ [TrustedScript, "createScript", "whatever", stringTestCases],
+ [TrustedScriptURL, "createScriptURL", INPUTS.SCRIPTURL, urlTestCases],
+ ];
+
+ // Iterate over all trusted types, iterate over all test cases.
+ // For each, build the suitable policy and check the result.
+ for (let [trusted_class, trusted_method, default_arg, test_cases] of testCases) {
+ aGlobalVarForSideEffectTesting = "global";
+ let builder = policyBuilder(trusted_method, trusted_class, default_arg);
+ for (let [index, [policy_fn, value]] of test_cases.entries()) {
+ let subtest_name = "TestPolicy" + trusted_class.name + index;
+ test(t => {
+ if (typeof value == "object" || typeof value == "function") {
+ assert_throws_js(value, () => builder(subtest_name, policy_fn));
+ } else {
+ assert_equals("" + builder(subtest_name, policy_fn), value);
+ }
+ }, subtest_name + " (" + trusted_class.name + ": " +
+ policy_fn.toString() + ")");
+ }
+ }
+</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-getPolicyNames.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-getPolicyNames.tentative.html
deleted file mode 100644
index d1ae9e45c06..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-getPolicyNames.tentative.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js" ></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="support/helper.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
-<body>
-<script>
- test(t => {
- let policy = trustedTypes.createPolicy('thisisaname', {});
- assert_true(policy instanceof TrustedTypePolicy);
- assert_equals(policy.name, 'thisisaname');
- }, "policy.name = name");
-
-
- // Retrieve policy names tests
- test(t => {
- let policy = trustedTypes.createPolicy('anothername', {});
- let names = trustedTypes.getPolicyNames();
- assert_equals(names.length, 2);
- assert_true(names.includes('thisisaname'));
- assert_true(names.includes('anothername'));
- }, "getPolicyNames returns all policy names");
-</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.https.html
index 0ba2eb62375..0ba2eb62375 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html
index 746d89fa3f8..746d89fa3f8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html
index 15728b9888f..15728b9888f 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html
index f1b5f27e709..f1b5f27e709 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html
index 3a56546151e..3a56546151e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html
deleted file mode 100644
index f049484f119..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js" ></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="support/helper.sub.js"></script>
-<meta http-equiv="Content-Security-Policy"
- content="trusted-types SomeName SomeOtherName">
-<body>
-<script>
- // Policy name test
- test(t => {
- let policy = trustedTypes.createPolicy('SomeName', {} );
- assert_true(policy instanceof TrustedTypePolicy);
- assert_equals(policy.name, 'SomeName');
- }, "policy.name = name");
-
- // Duplicate names test
- test(t => {
- assert_throws_js(TypeError, _ => {
- trustedTypes.createPolicy('SomeName', {} );
- });
- }, "duplicate policy name attempt throws");
-
- // Retrieve policy names tests
- test(t => {
- let policy = trustedTypes.createPolicy('SomeOtherName', {} );
- let names = trustedTypes.getPolicyNames();
- assert_true(names.includes('SomeName'));
- assert_true(names.includes('SomeOtherName'));
- }, "Retrieving policy names");
-
- // Check error messages.
- test(t => {
- try {
- trustedTypes.createPolicy("unknown name", {});
- } catch (e) {
- assert_true(e.toString().includes("disallowed"));
- assert_false(e.toString().includes("already exists"));
- }
-
- try {
- trustedTypes.createPolicy("SomeName", {});
- } catch (e) {
- assert_false(e.toString().includes("disallowed"));
- assert_true(e.toString().includes("already exists"));
- }
- }, "Error messages for duplicates and unlisted policies should be different");
-
-</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html
new file mode 100644
index 00000000000..9fdafb2ccf0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js" ></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.sub.js"></script>
+<meta http-equiv="Content-Security-Policy"
+ content="trusted-types SomeName SomeOtherName">
+<body>
+<script>
+ // Policy name test
+ test(t => {
+ let policy = trustedTypes.createPolicy('SomeName', {} );
+ assert_true(policy instanceof TrustedTypePolicy);
+ assert_equals(policy.name, 'SomeName');
+ }, "policy.name = name");
+
+ // Duplicate names test
+ test(t => {
+ assert_throws_js(TypeError, _ => {
+ trustedTypes.createPolicy('SomeName', {} );
+ });
+ }, "duplicate policy name attempt throws");
+
+ // Check error messages.
+ test(t => {
+ try {
+ trustedTypes.createPolicy("unknown name", {});
+ } catch (e) {
+ assert_true(e.toString().includes("disallowed"));
+ assert_false(e.toString().includes("already exists"));
+ }
+
+ try {
+ trustedTypes.createPolicy("SomeName", {});
+ } catch (e) {
+ assert_false(e.toString().includes("disallowed"));
+ assert_true(e.toString().includes("already exists"));
+ }
+ }, "Error messages for duplicates and unlisted policies should be different");
+
+</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html
index 29344482021..29344482021 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.https.html
index 7ac09d8bb96..7ac09d8bb96 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.https.html
index 0e5a0f51c80..0e5a0f51c80 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html
deleted file mode 100644
index c620451ba8f..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html
+++ /dev/null
@@ -1,121 +0,0 @@
-<!DOCTYPE html>
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="support/helper.sub.js"></script>
-
-<meta http-equiv="Content-Security-Policy" content="trusted-types *">
-<body>
-<script>
- // Policy settings for all tests
- const noopPolicy = {
- 'createHTML': (s) => s,
- 'createScriptURL': (s) => s,
- 'createScript': (s) => s,
- };
-
- // isHTML tests
- test(t => {
- const p = trustedTypes.createPolicy('html', noopPolicy);
- let html = p.createHTML(INPUTS.HTML);
-
- assert_true(trustedTypes.isHTML(html));
- let html2 = Object.create(html);
-
- // instanceof can pass, but we rely on isHTML
- assert_true(html2 instanceof TrustedHTML);
- assert_false(trustedTypes.isHTML(html2));
-
- let html3 = Object.assign({}, html, {toString: () => 'fake'});
-
- assert_false(trustedTypes.isHTML(html3));
- }, 'TrustedTypePolicyFactory.isHTML requires the object to be created via policy.');
-
- // isScript tests
- test(t => {
- const p = trustedTypes.createPolicy('script', noopPolicy);
- let script = p.createScript(INPUTS.SCRIPT);
-
- assert_true(trustedTypes.isScript(script));
- let script2 = Object.create(script);
-
- // instanceof can pass, but we rely on isScript
- assert_true(script2 instanceof TrustedScript);
- assert_false(trustedTypes.isScript(script2));
-
- let script3 = Object.assign({}, script, {toString: () => 'fake'});
-
- assert_false(trustedTypes.isScript(script3));
- }, 'TrustedTypePolicyFactory.isScript requires the object to be created via policy.');
-
- // isScriptURL tests
- test(t => {
- const p = trustedTypes.createPolicy('script_url', noopPolicy);
- let script = p.createScriptURL(INPUTS.SCRIPTURL);
-
- assert_true(trustedTypes.isScriptURL(script));
- let script2 = Object.create(script);
-
- // instanceof can pass, but we rely on isScript
- assert_true(script2 instanceof TrustedScriptURL);
- assert_false(trustedTypes.isScriptURL(script2));
-
- let script3 = Object.assign({}, script, {toString: () => 'fake'});
-
- assert_false(trustedTypes.isScriptURL(script3));
- }, 'TrustedTypePolicyFactory.isScriptURL requires the object to be created via policy.');
-
- // Test non-object parameters.
- test(t => {
- assert_false(trustedTypes.isHTML(null));
- assert_false(trustedTypes.isHTML(123));
- assert_false(trustedTypes.isHTML(0.5));
- assert_false(trustedTypes.isHTML('test'));
- assert_false(trustedTypes.isHTML({}));
- assert_false(trustedTypes.isScript(null));
- assert_false(trustedTypes.isScript(123));
- assert_false(trustedTypes.isScript(0.5));
- assert_false(trustedTypes.isScript('test'));
- assert_false(trustedTypes.isScript({}));
- assert_false(trustedTypes.isScriptURL(null));
- assert_false(trustedTypes.isScriptURL(123));
- assert_false(trustedTypes.isScriptURL(0.5));
- assert_false(trustedTypes.isScriptURL('test'));
- assert_false(trustedTypes.isScriptURL({}));
- }, 'TrustedTypePolicyFactory.isXXX should accept anything without throwing.');
-
- // Redefinition tests, assign to property.
- // (Assignments will through in the polyfill (because the objects are frozen)
- // but will be silently dropped in the native implementation (because that's
- // what [Unforgeable] does. Hence, the tests use try {..} catch {} to cover
- // both situationsm rather than expect_throws(...).)
- test(t => {
- try { trustedTypes.isHTML = () => 'fake'; } catch { }
- assert_false(trustedTypes.isHTML({}));
- }, 'TrustedTypePolicyFactory.IsHTML cannot be redefined.');
-
- test(t => {
- try { trustedTypes.isScript = () => 'fake'; } catch { }
- assert_false(trustedTypes.isScript({}));
- }, 'TrustedTypePolicyFactory.isScript cannot be redefined.');
-
- test(t => {
- try { trustedTypes.isScriptURL = () => 'fake'; } catch { }
- assert_false(trustedTypes.isScriptURL({}));
- }, 'TrustedTypePolicyFactory.isScriptURL cannot be redefined.');
-
- // Redefinition tests, via Object.defineProperty.
- test(t => {
- try { Object.defineProperty(trustedTypes, 'isHTML', () => 'fake'); } catch { }
- assert_false(trustedTypes.isHTML({}));
- }, 'TrustedTypePolicyFactory.IsHTML cannot be redefined via defineProperty.');
-
- test(t => {
- try { Object.defineProperty(trustedTypes, 'isScript', () => 'fake'); } catch { }
- assert_false(trustedTypes.isScript({}));
- }, 'TrustedTypePolicyFactory.isScript cannot be redefined via definePropert.');
-
- test(t => {
- try { Object.defineProperty(trustedTypes, 'isScriptURL', () => 'fake'); } catch { }
- assert_false(trustedTypes.isScriptURL({}));
- }, 'TrustedTypePolicyFactory.isScriptURL cannot be redefined via definePropert.');
-</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html
new file mode 100644
index 00000000000..89d4a8b4efc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.sub.js"></script>
+
+<meta http-equiv="Content-Security-Policy" content="trusted-types *">
+<body>
+<script>
+ // Policy settings for all tests
+ const noopPolicy = {
+ 'createHTML': (s) => s,
+ 'createScriptURL': (s) => s,
+ 'createScript': (s) => s,
+ };
+
+ // isHTML tests
+ test(t => {
+ const p = trustedTypes.createPolicy('html', noopPolicy);
+ let html = p.createHTML(INPUTS.HTML);
+
+ assert_true(trustedTypes.isHTML(html));
+ let html2 = Object.create(html);
+
+ // instanceof can pass, but we rely on isHTML
+ assert_true(html2 instanceof TrustedHTML);
+ assert_false(trustedTypes.isHTML(html2));
+
+ let html3 = Object.assign({}, html, {toString: () => 'fake'});
+
+ assert_false(trustedTypes.isHTML(html3));
+ }, 'TrustedTypePolicyFactory.isHTML requires the object to be created via policy.');
+
+ // isScript tests
+ test(t => {
+ const p = trustedTypes.createPolicy('script', noopPolicy);
+ let script = p.createScript(INPUTS.SCRIPT);
+
+ assert_true(trustedTypes.isScript(script));
+ let script2 = Object.create(script);
+
+ // instanceof can pass, but we rely on isScript
+ assert_true(script2 instanceof TrustedScript);
+ assert_false(trustedTypes.isScript(script2));
+
+ let script3 = Object.assign({}, script, {toString: () => 'fake'});
+
+ assert_false(trustedTypes.isScript(script3));
+ }, 'TrustedTypePolicyFactory.isScript requires the object to be created via policy.');
+
+ // isScriptURL tests
+ test(t => {
+ const p = trustedTypes.createPolicy('script_url', noopPolicy);
+ let script = p.createScriptURL(INPUTS.SCRIPTURL);
+
+ assert_true(trustedTypes.isScriptURL(script));
+ let script2 = Object.create(script);
+
+ // instanceof can pass, but we rely on isScript
+ assert_true(script2 instanceof TrustedScriptURL);
+ assert_false(trustedTypes.isScriptURL(script2));
+
+ let script3 = Object.assign({}, script, {toString: () => 'fake'});
+
+ assert_false(trustedTypes.isScriptURL(script3));
+ }, 'TrustedTypePolicyFactory.isScriptURL requires the object to be created via policy.');
+
+ // Test non-object parameters.
+ test(t => {
+ assert_false(trustedTypes.isHTML(null));
+ assert_false(trustedTypes.isHTML(123));
+ assert_false(trustedTypes.isHTML(0.5));
+ assert_false(trustedTypes.isHTML('test'));
+ assert_false(trustedTypes.isHTML({}));
+ assert_false(trustedTypes.isScript(null));
+ assert_false(trustedTypes.isScript(123));
+ assert_false(trustedTypes.isScript(0.5));
+ assert_false(trustedTypes.isScript('test'));
+ assert_false(trustedTypes.isScript({}));
+ assert_false(trustedTypes.isScriptURL(null));
+ assert_false(trustedTypes.isScriptURL(123));
+ assert_false(trustedTypes.isScriptURL(0.5));
+ assert_false(trustedTypes.isScriptURL('test'));
+ assert_false(trustedTypes.isScriptURL({}));
+ }, 'TrustedTypePolicyFactory.isXXX should accept anything without throwing.');
+</script>
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.https.html
index 50f877cda07..50f877cda07 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.html b/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.https.html
index 718c763afaf..718c763afaf 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.https.html
index d66b8c8f25b..d66b8c8f25b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.https.html
index bd038635df7..bd038635df7 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html
index d2764936675..d2764936675 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.https.html
index fa87d119f79..fa87d119f79 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html
index c91e4e56acd..c91e4e56acd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.https.html
index 397606bc056..397606bc056 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.https.html
index e6abf602fb0..e6abf602fb0 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.https.html
index aa13d72ceb2..aa13d72ceb2 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.https.html
index b5745199f41..b5745199f41 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.https.html
index b38e4f3da5f..b38e4f3da5f 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.https.html
index bc29f19f4c4..bc29f19f4c4 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html b/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html
deleted file mode 100644
index 7902ca4040f..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <script nonce="abc" src="/resources/testharness.js"></script>
- <script nonce="abc" src="/resources/testharnessreport.js"></script>
- <script nonce="abc" src="support/helper.sub.js"></script>
-
- <!-- Note: Trusted Types enforcement, and a CSP that does not blanket-allow eval. -->
- <meta http-equiv="Content-Security-Policy" content="script-src 'nonce-abc'; trusted-types *">
-</head>
-<body>
-<script nonce="abc">
- const p = createScript_policy(window, 1);
-
- test(t => {
- let a = 0;
- assert_throws_js(EvalError, _ => {
- eval('a="hello there"');
- });
- assert_equals(a, 0);
- }, "eval with plain string throws (both block).");
-
- test(t => {
- let a = 0;
- assert_throws_js(EvalError, _ => {
- eval(p.createScript('a="Hello transformed string"'));
- });
- assert_equals(a, 0);
- }, "eval with TrustedScript throws (script-src blocks).");
-</script>
-
diff --git a/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html
new file mode 100644
index 00000000000..e3911bf9e6a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script nonce="abc" src="/resources/testharness.js"></script>
+ <script nonce="abc" src="/resources/testharnessreport.js"></script>
+ <script nonce="abc" src="support/helper.sub.js"></script>
+
+ <!-- Note: Trusted Types enforcement, and a CSP that does not blanket-allow eval. -->
+ <meta http-equiv="Content-Security-Policy" content="script-src 'nonce-abc'; require-trusted-types-for 'script'">
+</head>
+<body>
+<script nonce="abc">
+ const p = createScript_policy(window, 1);
+
+ test(t => {
+ let a = 0;
+ assert_throws_js(EvalError, _ => {
+ eval('a="hello there"');
+ });
+ assert_equals(a, 0);
+ }, "eval with plain string throws (both block).");
+
+ test(t => {
+ let a = 0;
+ assert_throws_js(EvalError, _ => {
+ eval(p.createScript('a="Hello transformed string"'));
+ });
+ assert_equals(a, 0);
+ }, "eval with TrustedScript throws (script-src blocks).");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html
index 1cff751a801..1cff751a801 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html.headers
index 67b9ef7a3c5..67b9ef7a3c5 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html
index debde85cdac..debde85cdac 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html.headers
index 6a40e40a586..6a40e40a586 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html
index 1ba9c5ec18e..1ba9c5ec18e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html.headers
index 67b9ef7a3c5..67b9ef7a3c5 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html
index d31b48ecd5a..d31b48ecd5a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html.headers
index 6a40e40a586..6a40e40a586 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.https.html
index e8ed57708ef..e8ed57708ef 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
deleted file mode 100644
index eaa74eaf4cd..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
-<head>
- <script nonce="abc" src="/resources/testharness.js"></script>
- <script nonce="abc" src="/resources/testharnessreport.js"></script>
- <script nonce="abc" src="support/helper.sub.js"></script>
- <meta http-equiv="Content-Security-Policy" content="trusted-types *">
-</head>
-<body>
-<script>
- trustedTypes.createPolicy("default", {createScript: s => s + 4});
- const p = trustedTypes.createPolicy("p", {createScript: s => s});
-
- test(t => {
- assert_equals(eval(p.createScript('1+1')), 2);
- }, "eval of TrustedScript works.");
-
- test(t => {
- assert_equals(eval('1+1'), 2);
- }, "eval of string works.");
-
- test(t => {
- assert_equals(eval(42), 42);
- assert_object_equals(eval({}), {});
- assert_equals(eval(null), null);
- assert_equals(eval(undefined), undefined);
- }, "eval of !TrustedScript and !string works.");
-</script>
-
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html
new file mode 100644
index 00000000000..106a024f2c1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <script nonce="abc" src="/resources/testharness.js"></script>
+ <script nonce="abc" src="/resources/testharnessreport.js"></script>
+ <script nonce="abc" src="support/helper.sub.js"></script>
+ <meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">
+</head>
+<body>
+<script>
+ trustedTypes.createPolicy("default", {createScript: s => s + 4});
+ const p = trustedTypes.createPolicy("p", {createScript: s => s});
+
+ test(t => {
+ assert_equals(eval(p.createScript('1+1')), 2);
+ }, "eval of TrustedScript works.");
+
+ test(t => {
+ assert_equals(eval('1+1'), 15); // '1+1' + 4 becomes '1+14'.
+ }, "eval of string works.");
+
+ test(t => {
+ assert_equals(eval(42), 42);
+ assert_object_equals(eval({}), {});
+ assert_equals(eval(null), null);
+ assert_equals(eval(undefined), undefined);
+ }, "eval of !TrustedScript and !string works.");
+</script>
+
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.https.html
index 6d48ae48a01..6d48ae48a01 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.https.html
index 84c224eac28..84c224eac28 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.https.html
index 45086a1d6ab..45086a1d6ab 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html b/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.https.html
index 5a35561438a..5a35561438a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.window.js b/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.https.window.js
index 5a854a12b78..5a854a12b78 100644
--- a/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.window.js
+++ b/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.https.window.js
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html
index 56f62952213..56f62952213 100644
--- a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html.headers
index fa87952ae48..fa87952ae48 100644
--- a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.https.html
index 4e11b03617b..4e11b03617b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html
index 25b4440ef41..25b4440ef41 100644
--- a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html.headers
index c6412f8d472..c6412f8d472 100644
--- a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.https.html
index 2a3820a89b8..2a3820a89b8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.https.html
index 440d2a88b93..440d2a88b93 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html
index 46ca2edb6fb..46ca2edb6fb 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html.headers
index b6608515aa8..b6608515aa8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.https.html
index afb2f5f7c4b..afb2f5f7c4b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.https.html
index decce535646..decce535646 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
index 40c1ccc69a1..081f9becbd0 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
@@ -10,9 +10,9 @@
// (rather than as "<meta http-equiv" tags). This test assumes the following
// headers are set in the .headers file:
//
- // Content-Security-Policy: trusted-types *
// Content-Security-Policy: script-src 'unsafe-inline'; report-uri ...
// Content-Security-Policy: plugin-types bla/blubb
+ // Content-Security-Policy: require-trusted-types-for 'script'
//
// The last rule is there so we can provoke a CSP violation report at will.
// The intent is that in order to test that a violation has *not* been thrown
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
index 30fe3b1df1d..e4147bd2e37 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
@@ -1,4 +1,3 @@
-Content-Security-Policy: trusted-types *
Content-Security-Policy: script-src http: https: 'nonce-123' 'report-sample'
Content-Security-Policy: plugin-types bla/blubb
Content-Security-Policy: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
index dec8a07cfc4..9621aaba974 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
@@ -9,9 +9,9 @@
// (rather than as "<meta http-equiv" tags). This test assumes the following
// headers are set in the .headers file:
//
- // Content-Security-Policy: trusted-types *
// Content-Security-Policy: script-src 'unsafe-inline' 'unsafe-eval'; report-uri ...
// Content-Security-Policy: plugin-types bla/blubb
+ // Content-Security-Policy: require-trusted-types-for 'script'
//
// The last rule is there so we can provoke a CSP violation report at will.
// The intent is that in order to test that a violation has *not* been thrown
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
index 91a2be91ef7..3f55bba7d1b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
@@ -1,4 +1,3 @@
-Content-Security-Policy: trusted-types *
Content-Security-Policy: script-src http: https: 'nonce-123' 'unsafe-eval'
Content-Security-Policy: plugin-types bla/blubb
Content-Security-Policy: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.https.html
index 657cbb74e0e..657cbb74e0e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html b/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.https.html
index f9c1a5d0b12..f9c1a5d0b12 100644
--- a/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html
+++ b/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.https.html
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/generic/spec_json.js b/tests/wpt/web-platform-tests/upgrade-insecure-requests/generic/spec_json.js
index 0adba4938d4..c0ef9714895 100644
--- a/tests/wpt/web-platform-tests/upgrade-insecure-requests/generic/spec_json.js
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/generic/spec_json.js
@@ -1 +1 @@
-var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "test_description_template": "Upgrade-Insecure-Requests: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Upgrade-Insecure-Requests: %(title)s", "specification": [{"name": "No upgrade-insecure-request", "title": "No upgrade-insecure-request", "description": "No upgrade-insecure-request", "specification_url": "https://w3c.github.io/webappsec-upgrade-insecure-requests/", "test_expansion": [{"name": "Without upgrade-insecure-request, all requests are blocked ...", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "meta", "delivery_value": null, "redirection": "*", "subresource": "*", "origin": "*", "expectation": "blocked"}, {"name": "... except for the secure requests listed here", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "meta", "delivery_value": null, "redirection": "no-redirect", "subresource": "*", "origin": ["same-https", "cross-https", "same-wss", "cross-wss"], "expectation": "allowed"}]}, {"name": "With upgrade-insecure-request", "title": "With upgrade-insecure-request", "description": "With upgrade-insecure-request", "specification_url": "https://w3c.github.io/webappsec-upgrade-insecure-requests/", "test_expansion": [{"name": "With upgrade-insecure-request, all insecure requests are upgraded and allowed.", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "upgrade", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "allowed"}]}], "delivery_key": "upgradeInsecureRequests", "excluded_tests": [{"name": "Omit secure requests", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "no-redirect", "subresource": "*", "origin": ["same-https", "cross-https", "same-wss", "cross-wss"], "expectation": "allowed"}, {"name": "For inheriting tests skip http-rp because we already have <meta> tests", "expansion": "*", "source_scheme": "*", "source_context_list": ["srcdoc-inherit", "iframe-blank-inherit", "worker-classic-data"], "delivery_type": "http-rp", "delivery_value": "*", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "Workers are same-origin only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": ["cross-https", "cross-http-downgrade", "cross-wss", "cross-ws-downgrade"], "expectation": "*"}, {"name": "Websockets are ws/wss-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["same-https", "same-http-downgrade", "cross-https", "cross-http-downgrade"], "expectation": "*"}, {"name": "Websockets is no-redirect only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["downgrade"], "subresource": "websocket", "origin": "*", "expectation": "*"}, {"name": "ws/wss are websocket-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["iframe-tag", "img-tag", "xhr", "fetch", "worker-classic", "worker-module", "worker-import-data", "sharedworker-classic", "sharedworker-module", "sharedworker-import-data", "worklet-animation", "worklet-audio", "worklet-layout", "worklet-paint", "worklet-animation-import-data", "worklet-audio-import-data", "worklet-layout-import-data", "worklet-paint-import-data"], "origin": ["same-wss", "same-ws-downgrade", "cross-wss", "cross-ws-downgrade"], "expectation": "*"}], "source_context_schema": {"supported_delivery_type": {"top": ["http-rp", "meta"], "iframe": ["http-rp", "meta"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": []}, "supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "websocket"], "worker-module": ["xhr", "fetch", "websocket"], "worker-classic-data": ["xhr", "fetch", "websocket"], "worker-module-data": ["xhr", "fetch", "websocket"]}}, "subresource_schema": {"supported_delivery_type": {"xhr": [], "worker-classic": [], "worker-module": [], "worker-import-data": [], "sharedworker-classic": [], "sharedworker-module": [], "sharedworker-import-data": [], "worklet-animation": [], "worklet-audio": [], "worklet-layout": [], "worklet-paint": [], "worklet-animation-import-data": [], "worklet-audio-import-data": [], "worklet-layout-import-data": [], "worklet-paint-import-data": [], "fetch": [], "websocket": [], "img-tag": [], "iframe-tag": []}}, "source_context_list_schema": {"top": {"description": "CSP set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "srcdoc-inherit": {"description": "srcdoc iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "iframe-blank-inherit": {"description": "blank iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "iframe-blank"}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"description": "CSP set by the top-level Document is inherited to dedicated workers", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "source_scheme": ["https"], "delivery_type": ["http-rp", "meta"], "delivery_value": [null, "upgrade"], "source_context_list": ["top", "srcdoc-inherit", "iframe-blank-inherit", "worker-classic-data"], "redirection": ["no-redirect", "downgrade"], "origin": ["same-https", "same-http-downgrade", "cross-https", "cross-http-downgrade", "same-wss", "same-ws-downgrade", "cross-wss", "cross-ws-downgrade"], "subresource": ["iframe-tag", "img-tag", "xhr", "fetch", "websocket", "worker-classic", "worker-module", "worker-import-data", "sharedworker-classic", "sharedworker-module", "sharedworker-import-data", "worklet-animation", "worklet-audio", "worklet-layout", "worklet-paint", "worklet-animation-import-data", "worklet-audio-import-data", "worklet-layout-import-data", "worklet-paint-import-data"], "expectation": ["allowed", "blocked"]}};
+var SPEC_JSON = {"selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s", "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html", "excluded_tests": [{"name": "Workers are same-origin only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": ["cross-https", "cross-http", "cross-http-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "expectation": "*"}, {"name": "Workers are same-origin only (redirects)", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["swap-origin", "swap-scheme"], "subresource": ["worker-classic", "worker-module", "sharedworker-classic", "sharedworker-module"], "origin": "*", "expectation": "*"}, {"name": "Websockets are ws/wss-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "websocket", "origin": ["same-https", "same-http", "same-http-downgrade", "cross-https", "cross-http", "cross-http-downgrade"], "expectation": "*"}, {"name": "Websockets are no-redirect only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin", "keep-scheme", "swap-scheme", "downgrade"], "subresource": "websocket", "origin": "*", "expectation": "*"}, {"name": "ws/wss are websocket-only", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["area-tag", "a-tag", "fetch", "iframe-tag", "img-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "origin": ["same-wss", "same-ws", "same-ws-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "expectation": "*"}, {"name": "Omit secure requests", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "no-redirect", "subresource": "*", "origin": ["same-https", "cross-https", "same-wss", "cross-wss"], "expectation": "allowed"}, {"name": "For inheriting tests skip http-rp because we already have <meta> tests", "expansion": "*", "source_scheme": "*", "source_context_list": ["srcdoc-inherit", "iframe-blank-inherit", "worker-classic-data"], "delivery_type": "http-rp", "delivery_value": "*", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "source_context_list values not yet tested", "expansion": "*", "source_scheme": "*", "source_context_list": ["req", "srcdoc", "iframe", "worker-classic", "worker-module", "worker-module-data", "sharedworker-classic-data", "sharedworker-module-data"], "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "*"}, {"name": "subresource values not yet tested", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "subresource": ["a-tag", "area-tag", "audio-tag", "beacon", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "video-tag"], "origin": "*", "expectation": "*"}, {"name": "origins that upgrade-insecure-requests tests don't care", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": "*", "origin": ["same-http", "cross-http", "same-ws", "cross-ws"], "subresource": "*", "expectation": "*"}, {"name": "redirections that upgrade-insecure-requests tests don't care", "expansion": "*", "source_scheme": "*", "source_context_list": "*", "delivery_type": "*", "delivery_value": "*", "redirection": ["keep-origin", "swap-origin", "keep-scheme", "swap-scheme"], "origin": "*", "subresource": "*", "expectation": "*"}], "source_context_schema": {"supported_subresource": {"top": "*", "iframe": "*", "iframe-blank": "*", "srcdoc": "*", "worker-classic": ["xhr", "fetch", "websocket", "worker-classic", "worker-module"], "worker-module": ["xhr", "fetch", "websocket", "worker-classic", "worker-module"], "worker-classic-data": ["xhr", "fetch", "websocket"], "worker-module-data": ["xhr", "fetch", "websocket"], "sharedworker-classic": ["xhr", "fetch", "websocket"], "sharedworker-module": ["xhr", "fetch", "websocket"], "sharedworker-classic-data": ["xhr", "fetch", "websocket"], "sharedworker-module-data": ["xhr", "fetch", "websocket"]}, "supported_delivery_type": {"top": ["http-rp", "meta"], "iframe": ["http-rp", "meta"], "iframe-blank": ["meta"], "srcdoc": ["meta"], "worker-classic": ["http-rp"], "worker-module": ["http-rp"], "worker-classic-data": [], "worker-module-data": [], "sharedworker-classic": ["http-rp"], "sharedworker-module": ["http-rp"], "sharedworker-classic-data": [], "sharedworker-module-data": []}}, "source_context_list_schema": {"top": {"description": "Policy set by the top-level Document", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "req": {"description": "Subresource request's policy should override Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}], "subresourcePolicyDeliveries": ["nonNullPolicy"]}, "srcdoc-inherit": {"description": "srcdoc iframe without its own policy should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "srcdoc"}], "subresourcePolicyDeliveries": []}, "srcdoc": {"description": "srcdoc iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "srcdoc", "policyDeliveries": ["nonNullPolicy"]}], "subresourcePolicyDeliveries": []}, "iframe": {"description": "external iframe's policy should override parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "iframe", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "iframe-blank-inherit": {"description": "blank iframe should inherit parent Document's policy", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "iframe-blank"}], "subresourcePolicyDeliveries": []}, "worker-classic": {"description": "dedicated workers shouldn't inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-classic", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-classic-data": {"description": "data: dedicated workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "worker-module": {"description": "dedicated workers shouldn't inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["anotherPolicy"]}, {"sourceContextType": "worker-module", "policyDeliveries": ["policy"]}], "subresourcePolicyDeliveries": []}, "worker-module-data": {"description": "data: dedicated workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "worker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-classic-data": {"description": "data: shared workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-classic-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}, "sharedworker-module-data": {"description": "data: shared workers should inherit its parent's policy.", "sourceContextList": [{"sourceContextType": "top", "policyDeliveries": ["policy"]}, {"sourceContextType": "sharedworker-module-data", "policyDeliveries": []}], "subresourcePolicyDeliveries": []}}, "test_expansion_schema": {"expansion": ["default", "override"], "source_scheme": ["http", "https"], "source_context_list": ["top", "req", "srcdoc-inherit", "srcdoc", "iframe", "iframe-blank-inherit", "worker-classic", "worker-classic-data", "worker-module", "worker-module-data", "sharedworker-classic-data", "sharedworker-module-data"], "redirection": ["no-redirect", "keep-origin", "swap-origin", "keep-scheme", "swap-scheme", "downgrade"], "origin": ["same-https", "same-http", "same-http-downgrade", "cross-https", "cross-http", "cross-http-downgrade", "same-wss", "same-ws", "same-ws-downgrade", "cross-wss", "cross-ws", "cross-ws-downgrade"], "subresource": ["a-tag", "area-tag", "audio-tag", "beacon", "fetch", "iframe-tag", "img-tag", "link-css-tag", "link-prefetch-tag", "object-tag", "picture-tag", "script-tag", "sharedworker-classic", "sharedworker-import-data", "sharedworker-module", "video-tag", "websocket", "worker-classic", "worker-import-data", "worker-module", "worklet-animation", "worklet-animation-import-data", "worklet-audio", "worklet-audio-import-data", "worklet-layout", "worklet-layout-import-data", "worklet-paint", "worklet-paint-import-data", "xhr"], "delivery_type": ["http-rp", "meta"], "delivery_value": [null, "upgrade"], "expectation": ["allowed", "blocked"]}, "test_description_template": "Upgrade-Insecure-Requests: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.", "test_page_title_template": "Upgrade-Insecure-Requests: %(title)s", "specification": [{"name": "No upgrade-insecure-request", "title": "No upgrade-insecure-request", "description": "No upgrade-insecure-request", "specification_url": "https://w3c.github.io/webappsec-upgrade-insecure-requests/", "test_expansion": [{"name": "Without upgrade-insecure-request, all requests are blocked ...", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "meta", "delivery_value": null, "redirection": "*", "subresource": "*", "origin": "*", "expectation": "blocked"}, {"name": "... except for the secure requests listed here", "expansion": "override", "source_scheme": "https", "source_context_list": "*", "delivery_type": "meta", "delivery_value": null, "redirection": "no-redirect", "subresource": "*", "origin": ["same-https", "cross-https", "same-wss", "cross-wss"], "expectation": "allowed"}]}, {"name": "With upgrade-insecure-request", "title": "With upgrade-insecure-request", "description": "With upgrade-insecure-request", "specification_url": "https://w3c.github.io/webappsec-upgrade-insecure-requests/", "test_expansion": [{"name": "With upgrade-insecure-request, all insecure requests are upgraded and allowed.", "expansion": "default", "source_scheme": "https", "source_context_list": "*", "delivery_type": "*", "delivery_value": "upgrade", "redirection": "*", "subresource": "*", "origin": "*", "expectation": "allowed"}]}], "delivery_key": "upgradeInsecureRequests", "subresource_schema": {"supported_delivery_type": {"a-tag": [], "area-tag": [], "audio-tag": [], "beacon": [], "fetch": [], "iframe-tag": [], "img-tag": [], "link-css-tag": [], "link-prefetch-tag": [], "object-tag": [], "picture-tag": [], "script-tag": [], "sharedworker-classic": [], "sharedworker-import-data": [], "sharedworker-module": [], "video-tag": [], "websocket": [], "worker-classic": [], "worker-import-data": [], "worker-module": [], "worklet-animation": [], "worklet-animation-import-data": [], "worklet-audio": [], "worklet-audio-import-data": [], "worklet-layout": [], "worklet-layout-import-data": [], "worklet-paint": [], "worklet-paint-import-data": [], "xhr": []}}};
diff --git a/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json b/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json
index 70417038bcc..d64315903aa 100644
--- a/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json
+++ b/tests/wpt/web-platform-tests/upgrade-insecure-requests/spec.src.json
@@ -1,6 +1,4 @@
{
- "selection_pattern": "%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s",
- "test_file_path_pattern": "gen/%(source_context_list)s.%(delivery_type)s/%(delivery_value)s/%(subresource)s/%(origin)s.%(redirection)s.%(source_scheme)s.html",
"test_description_template": "Upgrade-Insecure-Requests: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.",
"test_page_title_template": "Upgrade-Insecure-Requests: %(title)s",
"specification": [
@@ -98,94 +96,83 @@
"expectation": "*"
},
{
- "name": "Workers are same-origin only",
+ "name": "source_context_list values not yet tested",
"expansion": "*",
"source_scheme": "*",
- "source_context_list": "*",
- "delivery_type": "*",
- "delivery_value": "*",
- "redirection": "*",
- "subresource": [
+ "source_context_list": [
+ "req",
+ "srcdoc",
+ "iframe",
"worker-classic",
"worker-module",
- "sharedworker-classic",
- "sharedworker-module"
- ],
- "origin": [
- "cross-https",
- "cross-http-downgrade",
- "cross-wss",
- "cross-ws-downgrade"
+ "worker-module-data",
+ "sharedworker-classic-data",
+ "sharedworker-module-data"
],
+ "delivery_type": "*",
+ "delivery_value": "*",
+ "redirection": "*",
+ "subresource": "*",
+ "origin": "*",
"expectation": "*"
},
{
- "name": "Websockets are ws/wss-only",
+ "name": "subresource values not yet tested",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
- "subresource": "websocket",
- "origin": [
- "same-https",
- "same-http-downgrade",
- "cross-https",
- "cross-http-downgrade"
+ "subresource": [
+ "a-tag",
+ "area-tag",
+ "audio-tag",
+ "beacon",
+ "link-css-tag",
+ "link-prefetch-tag",
+ "object-tag",
+ "picture-tag",
+ "script-tag",
+ "video-tag"
],
+ "origin": "*",
"expectation": "*"
},
{
- "name": "Websockets is no-redirect only",
+ "name": "origins that upgrade-insecure-requests tests don't care",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
- "redirection": [
- "downgrade"
+ "redirection": "*",
+ "origin": [
+ "same-http",
+ "cross-http",
+ "same-ws",
+ "cross-ws"
],
- "subresource": "websocket",
- "origin": "*",
+ "subresource": "*",
"expectation": "*"
},
{
- "name": "ws/wss are websocket-only",
+ "name": "redirections that upgrade-insecure-requests tests don't care",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
- "redirection": "*",
- "subresource": [
- "iframe-tag",
- "img-tag",
- "xhr",
- "fetch",
- "worker-classic",
- "worker-module",
- "worker-import-data",
- "sharedworker-classic",
- "sharedworker-module",
- "sharedworker-import-data",
- "worklet-animation",
- "worklet-audio",
- "worklet-layout",
- "worklet-paint",
- "worklet-animation-import-data",
- "worklet-audio-import-data",
- "worklet-layout-import-data",
- "worklet-paint-import-data"
- ],
- "origin": [
- "same-wss",
- "same-ws-downgrade",
- "cross-wss",
- "cross-ws-downgrade"
+ "redirection": [
+ "keep-origin",
+ "swap-origin",
+ "keep-scheme",
+ "swap-scheme"
],
+ "origin": "*",
+ "subresource": "*",
"expectation": "*"
- }
+ },
],
"source_context_schema": {
"supported_delivery_type": {
@@ -210,126 +197,51 @@
"http-rp"
],
"worker-classic-data": [],
- "worker-module-data": []
- },
- "supported_subresource": {
- "top": "*",
- "iframe": "*",
- "iframe-blank": "*",
- "srcdoc": "*",
- "worker-classic": [
- "xhr",
- "fetch",
- "websocket"
- ],
- "worker-module": [
- "xhr",
- "fetch",
- "websocket"
+ "worker-module-data": [],
+ "sharedworker-classic": [
+ "http-rp"
],
- "worker-classic-data": [
- "xhr",
- "fetch",
- "websocket"
+ "sharedworker-module": [
+ "http-rp"
],
- "worker-module-data": [
- "xhr",
- "fetch",
- "websocket"
- ]
+ "sharedworker-classic-data": [],
+ "sharedworker-module-data": []
}
},
"subresource_schema": {
"supported_delivery_type": {
- "xhr": [],
- "worker-classic": [],
- "worker-module": [],
- "worker-import-data": [],
+ "a-tag": [],
+ "area-tag": [],
+ "audio-tag": [],
+ "beacon": [],
+ "fetch": [],
+ "iframe-tag": [],
+ "img-tag": [],
+ "link-css-tag": [],
+ "link-prefetch-tag": [],
+ "object-tag": [],
+ "picture-tag": [],
+ "script-tag": [],
"sharedworker-classic": [],
- "sharedworker-module": [],
"sharedworker-import-data": [],
+ "sharedworker-module": [],
+ "video-tag": [],
+ "websocket": [],
+ "worker-classic": [],
+ "worker-import-data": [],
+ "worker-module": [],
"worklet-animation": [],
- "worklet-audio": [],
- "worklet-layout": [],
- "worklet-paint": [],
"worklet-animation-import-data": [],
+ "worklet-audio": [],
"worklet-audio-import-data": [],
+ "worklet-layout": [],
"worklet-layout-import-data": [],
+ "worklet-paint": [],
"worklet-paint-import-data": [],
- "fetch": [],
- "websocket": [],
- "img-tag": [],
- "iframe-tag": []
- }
- },
- "source_context_list_schema": {
- "top": {
- "description": "CSP set by the top-level Document",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "srcdoc-inherit": {
- "description": "srcdoc iframe should inherit parent Document's policy",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "srcdoc"
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "iframe-blank-inherit": {
- "description": "blank iframe should inherit parent Document's policy",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "iframe-blank"
- }
- ],
- "subresourcePolicyDeliveries": []
- },
- "worker-classic-data": {
- "description": "CSP set by the top-level Document is inherited to dedicated workers",
- "sourceContextList": [
- {
- "sourceContextType": "top",
- "policyDeliveries": [
- "policy"
- ]
- },
- {
- "sourceContextType": "worker-classic-data",
- "policyDeliveries": []
- }
- ],
- "subresourcePolicyDeliveries": []
+ "xhr": []
}
},
"test_expansion_schema": {
- "expansion": [
- "default",
- "override"
- ],
- "source_scheme": [
- "https"
- ],
"delivery_type": [
"http-rp",
"meta"
@@ -338,47 +250,6 @@
null,
"upgrade"
],
- "source_context_list": [
- "top",
- "srcdoc-inherit",
- "iframe-blank-inherit",
- "worker-classic-data"
- ],
- "redirection": [
- "no-redirect",
- "downgrade"
- ],
- "origin": [
- "same-https",
- "same-http-downgrade",
- "cross-https",
- "cross-http-downgrade",
- "same-wss",
- "same-ws-downgrade",
- "cross-wss",
- "cross-ws-downgrade"
- ],
- "subresource": [
- "iframe-tag",
- "img-tag",
- "xhr",
- "fetch",
- "websocket",
- "worker-classic",
- "worker-module",
- "worker-import-data",
- "sharedworker-classic",
- "sharedworker-module",
- "sharedworker-import-data",
- "worklet-animation",
- "worklet-audio",
- "worklet-layout",
- "worklet-paint",
- "worklet-animation-import-data",
- "worklet-audio-import-data",
- "worklet-layout-import-data",
- "worklet-paint-import-data"
- ],
"expectation": [
"allowed",
"blocked"
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html
new file mode 100644
index 00000000000..3506c8ae82b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-onrelease.https.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<link rel="help" href="https://w3c.github.io/wake-lock/#the-onrelease-attribute">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+<script>
+async_test(async t => {
+ await test_driver.set_permission({name: 'wake-lock', type: 'screen'}, 'granted', false);
+
+ const lock = await navigator.wakeLock.request("screen");
+ lock.onrelease = t.step_func_done((ev) => {
+ assert_class_string(ev, "Event", "release() must fire an Event object");
+ assert_equals(ev.target, lock, "The event's target must be the lock that was acquired");
+ assert_true(ev.isTrusted);
+ assert_false(ev.bubbles);
+ assert_false(ev.cancelable);
+ });
+ await lock.release();
+}, "Test onreleased event's basic properties");
+</script>
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html b/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html
new file mode 100644
index 00000000000..8dbe523ed2c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelock-request-denied.https.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<body>
+<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>
+'use strict';
+
+promise_test(async t => {
+ await test_driver.set_permission({name: 'wake-lock', type: 'screen'}, 'denied', false);
+ return promise_rejects_dom(t, "NotAllowedError", navigator.wakeLock.request('screen'));
+}, 'Denied requests should abort with NotAllowedError');
+</script>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html b/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html
index b8c9ae9568b..fd7a08a34ba 100644
--- a/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html
+++ b/tests/wpt/web-platform-tests/wake-lock/wakelockpermissiondescriptor.https.html
@@ -2,10 +2,9 @@
<link rel="help" href="https://w3c.github.io/wake-lock/#the-wakelockpermissiondescriptor-dictionary">
<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>
-// Checking for the permission status requires testdriver.js support for permissions.
-// See https://github.com/web-platform-tests/wpt/issues/5671.
-
promise_test(t => {
return promise_rejects_js(t, TypeError, navigator.permissions.query({ name:'wake-lock' }));
}, "WakeLockPermissionDescriptor's type attribute is required");
@@ -13,4 +12,22 @@ promise_test(t => {
promise_test(t => {
return promise_rejects_js(t, TypeError, navigator.permissions.query({ name: 'wake-lock', type: 'foo' }));
}, "WakeLockPermissionDescriptor's type attribute must be a WakeLockType");
-</script> \ No newline at end of file
+
+promise_test(async t => {
+ await test_driver.set_permission({name: 'wake-lock', type: 'screen'}, 'denied', false);
+
+ return navigator.permissions.query({name:'wake-lock', type: 'screen'}).then(status => {
+ assert_class_string(status, "PermissionStatus");
+ assert_equals(status.state, "denied");
+ });
+}, "WakeLockPermissionDescriptor with type=screen works");
+
+promise_test(async t => {
+ await test_driver.set_permission({name: 'wake-lock', type: 'system'}, 'denied', false);
+
+ return navigator.permissions.query({ name: 'wake-lock', type: 'system' }).then(status => {
+ assert_class_string(status, "PermissionStatus");
+ assert_equals(status.state, "denied");
+ });
+}, "WakeLockPermissionDescriptor with type=system works");
+</script>
diff --git a/tests/wpt/web-platform-tests/wasm/webapi/contenttype.any.js b/tests/wpt/web-platform-tests/wasm/webapi/contenttype.any.js
index 713fd708540..e9ca93a13fd 100644
--- a/tests/wpt/web-platform-tests/wasm/webapi/contenttype.any.js
+++ b/tests/wpt/web-platform-tests/wasm/webapi/contenttype.any.js
@@ -40,6 +40,15 @@ for (const contenttype of validContentTypes) {
promise_test(async t => {
const response = fetch(`/wasm/incrementer.wasm?pipe=header(Content-Type,${encodeURIComponent(contenttype)})`);
const result = await WebAssembly.instantiateStreaming(response);
- assert_WebAssemblyInstantiatedSource(result);
+ assert_WebAssemblyInstantiatedSource(
+ result,
+ {
+ "increment": {
+ "kind": "function",
+ "name": "0",
+ "length": 1
+ }
+ }
+ );
}, `Response with Content-Type ${format_value(contenttype)}: instantiateStreaming`);
}
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html
index ba10b172c2d..bfe351250ff 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/Animatable/animate.html
@@ -247,7 +247,6 @@ promise_test(async t => {
test(t => {
const div = createDiv(t);
div.classList.add('pseudo');
- getComputedStyle(div,"::before").content; // Sync style
const anim = div.animate(null, {pseudoElement: '::before'});
assert_class_string(anim, 'Animation', 'The returned object is an Animation');
}, 'animate() with pseudoElement parameter creates an Animation object');
@@ -262,7 +261,6 @@ test(t => {
const div = createDiv(t);
div.classList.add('pseudo');
div.style.display = 'list-item';
- getComputedStyle(div,"::marker").content; // Sync style
const anim = div.animate(null, {pseudoElement: '::marker'});
assert_class_string(anim, 'Animation', 'The returned object is an Animation for ::marker');
}, 'animate() with pseudoElement parameter creates an Animation object for ::marker');
@@ -278,7 +276,6 @@ test(t => {
test(t => {
const div = createDiv(t);
div.classList.add('pseudo');
- getComputedStyle(div,"::before").content; // Sync style
const anim = div.animate(null, {pseudoElement: '::before'});
assert_equals(anim.effect.target, div, 'The returned element has the correct target element');
assert_equals(anim.effect.pseudoElement, '::before',
@@ -299,7 +296,6 @@ test(t => {
const div = createDiv(t);
div.classList.add('pseudo');
div.style.display = 'list-item';
- getComputedStyle(div,"::marker").content; // Sync style
const anim = div.animate(null, {pseudoElement: '::marker'});
assert_equals(anim.effect.target, div, 'The returned element has the correct target element');
assert_equals(anim.effect.pseudoElement, '::marker',
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html
index 87e60a2b108..654d4db7c79 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html
@@ -344,6 +344,42 @@ test(() => {
+ ' should throw');
test(() => {
+ assert_throws_js(TypeError, () => {
+ new KeyframeEffect(null, createIterable([
+ { done: false, value: { left: '100px', easing: '' } },
+ { done: false, value: 1234 },
+ { done: false, value: { left: '200px' } },
+ { done: true },
+ ]));
+ });
+}, 'Reading from a custom iterator that returns a non-object keyframe'
+ + ' and an invalid easing should throw');
+
+test(() => {
+ assert_throws_js(TypeError, () => {
+ new KeyframeEffect(null, createIterable([
+ { done: false, value: { left: '100px' } },
+ { done: false, value: { left: '150px', offset: 'o' } },
+ { done: false, value: { left: '200px' } },
+ { done: true },
+ ]));
+ });
+}, 'Reading from a custom iterator that returns a keyframe with a non finite'
+ + ' floating-point offset value should throw');
+
+test(() => {
+ assert_throws_js(TypeError, () => {
+ new KeyframeEffect(null, createIterable([
+ { done: false, value: { left: '100px', easing: '' } },
+ { done: false, value: { left: '150px', offset: 'o' } },
+ { done: false, value: { left: '200px' } },
+ { done: true },
+ ]));
+ });
+}, 'Reading from a custom iterator that returns a keyframe with a non finite'
+ + ' floating-point offset value and an invalid easing should throw');
+
+test(() => {
const effect = new KeyframeEffect(null, createIterable([
{ done: false, value: { left: '100px' } },
{ done: false }, // No value member; keyframe is undefined.
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html
index 4b0e15c9a2f..8620f883f98 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002.html
@@ -54,6 +54,29 @@ test(() => {
+ ' sequence');
test(() => {
+ let readToEnd = false;
+ const keyframe_obj = {
+ *[Symbol.iterator]() {
+ yield { left: '100px', easing: '' };
+ yield { left: '200px' };
+ readToEnd = true;
+ },
+ };
+ assert_throws_js(
+ TypeError,
+ () => {
+ new KeyframeEffect(null, keyframe_obj);
+ },
+ 'TypeError is thrown for an invalid easing'
+ );
+ assert_true(
+ readToEnd,
+ 'Read all the keyframe properties before reporting invalid easing'
+ );
+}, 'Invalid easing values are correctly rejected after doing all the'
+ + ' iterating');
+
+test(() => {
let propAccessCount = 0;
const keyframe = {};
const addProp = prop => {
diff --git a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html
index eaef10fcb51..6951682c4d8 100644
--- a/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html
+++ b/tests/wpt/web-platform-tests/web-animations/interfaces/KeyframeEffect/target.html
@@ -122,7 +122,6 @@ for (const hasContent of [true, false]){
d.classList.add('pseudoa');
if (hasContent) {
d.classList.add('before');
- getComputedStyle(d,"::before").content; // Sync style
}
const effect = new KeyframeEffect(null, gKeyFrames, 100 * MS_PER_SEC);
@@ -147,7 +146,6 @@ for (const hasContent of [true, false]){
d.classList.add('pseudoa');
if (hasContent) {
d.classList.add('before');
- getComputedStyle(d,"::before").content; // Sync style
}
const effect = new KeyframeEffect(null, gKeyFrames, 100 * MS_PER_SEC);
@@ -172,7 +170,6 @@ for (const hasContent of [true, false]){
d.classList.add('pseudoa');
if (hasContent) {
d.classList.add('before');
- getComputedStyle(d,"::before").content; // Sync style
}
const anim = d.animate(gKeyFrames, {duration: 100 * MS_PER_SEC, pseudoElement: '::before'});
@@ -198,11 +195,9 @@ for (const hasContent of [true, false]){
b.classList.add('pseudob');
if (prevHasContent) {
a.classList.add('before');
- getComputedStyle(a,"::before").content; // Sync style
}
if (hasContent) {
b.classList.add('before');
- getComputedStyle(b,"::before").content; // Sync style
}
const anim = a.animate(gKeyFrames, {duration: 100 * MS_PER_SEC, pseudoElement: '::before'});
@@ -228,11 +223,9 @@ for (const hasContent of [true, false]){
d.classList.add('pseudoc');
if (prevHasContent) {
d.classList.add('before');
- getComputedStyle(d,"::before").content; // Sync style
}
if (hasContent) {
d.classList.add('after');
- getComputedStyle(d,"::after").content; // Sync style
}
const anim = d.animate(gKeyFrames, {duration: 100 * MS_PER_SEC, pseudoElement: '::before'});
diff --git a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js
index 5bec071dfa7..b1753ddd1b3 100644
--- a/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js
+++ b/tests/wpt/web-platform-tests/web-nfc/resources/nfc-helpers.js
@@ -192,7 +192,8 @@ function assertWebNDEFMessagesEqual(message, expectedMessage) {
assert_equals(record.recordType, expectedRecord.recordType);
assert_equals(record.mediaType, expectedRecord.mediaType);
assert_equals(record.id, expectedRecord.id);
-
+ assert_equals(record.encoding, expectedRecord.encoding);
+ assert_equals(record.lang, expectedRecord.lang);
// Compares record data
assert_array_equals(new Uint8Array(record.data),
new Uint8Array(expectedRecord.data));
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html
new file mode 100644
index 00000000000..5f5b10a251f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https.html
@@ -0,0 +1,51 @@
+<!doctype html>
+<title>Test MessagePort while AudioContext is not running</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<script>
+const get_node_and_message = async (context) => {
+ const node = new AudioWorkletNode(context, 'port-processor');
+ return new Promise((resolve) => {
+ node.port.onmessage = (event) => resolve({node: node, event: event});
+ });
+};
+const ping_for_message = async (node) => {
+ return new Promise((resolve) => {
+ node.port.onmessage = resolve;
+ node.port.postMessage('ping');
+ });
+};
+const modulePath = 'processors/port-processor.js';
+
+promise_test(async () => {
+ const realtime = new AudioContext();
+ await realtime.audioWorklet.addModule(modulePath);
+ await realtime.suspend();
+ const currentTime = realtime.currentTime;
+ let {node, event} = await get_node_and_message(realtime);
+ assert_equals(event.data.timeStamp, currentTime, 'created message time');
+ event = await ping_for_message(node);
+ assert_equals(event.data.timeStamp, currentTime, 'pong time');
+}, 'realtime suspended');
+
+let offline;
+promise_test(async () => {
+ offline = new OfflineAudioContext({length: 128 + 1, sampleRate: 16384});
+ await offline.audioWorklet.addModule(modulePath);
+ assert_equals(offline.currentTime, 0, 'time before start');
+ let {node, event} = await get_node_and_message(offline);
+ assert_equals(event.data.timeStamp, 0, 'created time before start');
+ event = await ping_for_message(node);
+ assert_equals(event.data.timeStamp, 0, 'pong time before start');
+}, 'offline before start');
+
+promise_test(async () => {
+ await offline.startRendering();
+ const expected = 2 * 128 / offline.sampleRate;
+ assert_equals(offline.currentTime, expected, 'time on complete');
+ let {node, event} = await get_node_and_message(offline);
+ assert_equals(event.data.timeStamp, expected, "created time on complete");
+ event = await ping_for_message(node);
+ assert_equals(event.data.timeStamp, expected, "pong time on complete");
+}, 'offline on complete');
+</script>
diff --git a/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-authnrselection.https.html b/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-authnrselection.https.html
index 5da0745734f..9497a001f0f 100644
--- a/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-authnrselection.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-authnrselection.https.html
@@ -46,8 +46,6 @@ standardSetup(function() {
authnrSelBadUvNull.userVerification = null;
// authenticatorSelection bad values
- new CreateCredentialsTest("options.publicKey.authenticatorSelection", []).runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty array", TypeError);
- new CreateCredentialsTest("options.publicKey.authenticatorSelection", null).runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection is null", TypeError);
new CreateCredentialsTest("options.publicKey.authenticatorSelection", "").runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection is empty string", TypeError);
new CreateCredentialsTest("options.publicKey.authenticatorSelection", "none").runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection is string", TypeError);
@@ -65,10 +63,6 @@ standardSetup(function() {
new CreateCredentialsTest("options.publicKey.authenticatorSelection", authnrSelRkTrue)
.modify("options.publicKey.timeout", 300)
.runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey true", "NotAllowedError");
- new CreateCredentialsTest("options.publicKey.authenticatorSelection", authnrSelRkBadString)
- .modify("options.publicKey.timeout", 300)
- .runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection residentKey is string", TypeError);
- // TODO: not sure if rk is "boolean" or "truthy"; add test cases if it should only accept boolean values
// authenticatorSelection bad userVerification values
new CreateCredentialsTest("options.publicKey.authenticatorSelection", authnrSelBadUvEmptyStr).runTest("Bad AuthenticatorSelectionCriteria: authenticatorSelection userVerification empty string", TypeError);
diff --git a/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-rp.https.html b/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-rp.https.html
index cbd86b8f083..fa4d2264fef 100644
--- a/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-rp.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/createcredential-badargs-rp.https.html
@@ -21,26 +21,24 @@ standardSetup(function() {
new CreateCredentialsTest("options.publicKey.rp", {}).runTest("Bad rp: rp is empty object", TypeError);
// // rp.id
- new CreateCredentialsTest("options.publicKey.rp.id", {}).runTest("Bad rp: id is object", TypeError);
new CreateCredentialsTest("options.publicKey.rp.id", null).runTest("Bad rp: id is null", "SecurityError");
new CreateCredentialsTest("options.publicKey.rp.id", "").runTest("Bad rp: id is empty String", "SecurityError");
new CreateCredentialsTest("options.publicKey.rp.id", "invalid domain.com").runTest("Bad rp: id is invalid domain (has space)", "SecurityError");
new CreateCredentialsTest("options.publicKey.rp.id", "-invaliddomain.com").runTest("Bad rp: id is invalid domain (starts with dash)", "SecurityError");
new CreateCredentialsTest("options.publicKey.rp.id", "0invaliddomain.com").runTest("Bad rp: id is invalid domain (starts with number)", "SecurityError");
+ let hostAndPort = window.location.host;
+ if (!hostAndPort.match(/:\d+$/)) {
+ hostAndPort += ":443";
+ }
+ new CreateCredentialsTest("options.publicKey.rp.id", hostAndPort).runTest("Bad rp id: id is host + port", "SecurityError");
+
// // rp.name
new CreateCredentialsTest({path: "options.publicKey.rp.name", value: undefined}).runTest("rp missing name", TypeError);
- new CreateCredentialsTest("options.publicKey.rp.name", {}).runTest("Bad rp: name is object", TypeError);
- new CreateCredentialsTest("options.publicKey.rp.name", null).runTest("Bad rp: name is null", TypeError);
- new CreateCredentialsTest("options.publicKey.rp.name", "").runTest("Bad rp: name is empty String", TypeError);
- // // rp.icon
- new CreateCredentialsTest("options.publicKey.rp.icon", {}).runTest("Bad rp: icon is object", TypeError);
- new CreateCredentialsTest("options.publicKey.rp.icon", null).runTest("Bad rp: icon is null", TypeError);
- new CreateCredentialsTest("options.publicKey.rp.icon", "").runTest("Bad rp: icon is empty String", TypeError);
+ // rp.icon
new CreateCredentialsTest("options.publicKey.rp.icon", "http://fidoalliance.co.nz/testimages/catimage.png")
.runTest("Bad rp: icon is insecure", "SecurityError");
- // // TODO: unicode tests for icon URL (see also: USVString)
});
/* JSHINT */
diff --git a/tests/wpt/web-platform-tests/webauthn/createcredential-excludecredentials.https.html b/tests/wpt/web-platform-tests/webauthn/createcredential-excludecredentials.https.html
index 3a5af481fca..2b1eec19b7b 100644
--- a/tests/wpt/web-platform-tests/webauthn/createcredential-excludecredentials.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/createcredential-excludecredentials.https.html
@@ -45,7 +45,7 @@ standardSetup(function() {
}
};
var p = createCredential(args);
- return promise_rejects_dom(t, "NotAllowedError", p, "expected to fail on excluded credenetial");
+ return promise_rejects_dom(t, "InvalidStateError", p, "expected to fail on excluded credential");
});
}, "exclude existing credential");
diff --git a/tests/wpt/web-platform-tests/webauthn/createcredential-extensions.https.html b/tests/wpt/web-platform-tests/webauthn/createcredential-extensions.https.html
index 036200dbbf9..46cab3051b4 100644
--- a/tests/wpt/web-platform-tests/webauthn/createcredential-extensions.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/createcredential-extensions.https.html
@@ -21,15 +21,6 @@ standardSetup(function() {
// bad extension values
new CreateCredentialsTest("options.publicKey.extensions", "hi mom").runTest("Bad extensions: extensions is string", TypeError);
- new CreateCredentialsTest("options.publicKey.extensions", null).runTest("Bad extensions: extensions is null", TypeError);
- new CreateCredentialsTest("options.publicKey.extensions", []).runTest("Bad extensions: extensions is empty Array", TypeError);
- new CreateCredentialsTest("options.publicKey.extensions", new ArrayBuffer(0)).runTest("Bad extensions: extensions is empty ArrayBuffer", TypeError);
- var badJson = '{"foo": true, "bar: "yup"}'; // missing quote after "bar"
- new CreateCredentialsTest("options.publicKey.extensions", {foo: badJson}).runTest("Bad extensions: malformatted JSON", TypeError);
- new CreateCredentialsTest("options.publicKey.extensions", {foo: dummyExtension}).runTest("Bad extensions: JavaScript object", TypeError);
- var badExtId = {};
- badExtId[createRandomString(65)] = dummyExtension;
- new CreateCredentialsTest("options.publicKey.extensions", {badExtId: dummyExtension}).runTest("Bad extensions: extension ID too long", TypeError);
// phony extensions
// TODO: not sure if this should pass or fail
diff --git a/tests/wpt/web-platform-tests/webauthn/createcredential-passing.https.html b/tests/wpt/web-platform-tests/webauthn/createcredential-passing.https.html
index ab10c7f519a..a94be363da2 100644
--- a/tests/wpt/web-platform-tests/webauthn/createcredential-passing.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/createcredential-passing.https.html
@@ -20,7 +20,6 @@ standardSetup(function() {
new CreateCredentialsTest().runTest("passing credentials.create() with default arguments");
// rp
- new CreateCredentialsTest({path: "options.publicKey.rp.id", value: window.location.host}).runTest("passing credentials.create() with rpId (host and port)");
new CreateCredentialsTest({path: "options.publicKey.rp.id", value: window.location.hostname}).runTest("passing credentials.create() with rpId (hostname)");
new CreateCredentialsTest({path: "options.publicKey.rp.icon", value: undefined}).runTest("passing credentials.create() without rp.icon");
diff --git a/tests/wpt/web-platform-tests/webauthn/createcredential-pubkeycredparams.https.html b/tests/wpt/web-platform-tests/webauthn/createcredential-pubkeycredparams.https.html
index c845a906875..d1df7952d67 100644
--- a/tests/wpt/web-platform-tests/webauthn/createcredential-pubkeycredparams.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/createcredential-pubkeycredparams.https.html
@@ -42,10 +42,10 @@ standardSetup(function() {
new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badTypeEmptyObj]).runTest("Bad pubKeyCredParams: first param has bad type (empty object)", TypeError);
new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badAlg])
.modify("options.publicKey.timeout", 300)
- .runTest("Bad pubKeyCredParams: first param has bad alg (42)", "NotSupportedError");
+ .runTest("Bad pubKeyCredParams: first param has bad alg (42)", "NotAllowedError");
new CreateCredentialsTest("options.publicKey.pubKeyCredParams", [badAlgZero])
.modify("options.publicKey.timeout", 300)
- .runTest("Bad pubKeyCredParams: first param has bad alg (0)", "NotSupportedError");
+ .runTest("Bad pubKeyCredParams: first param has bad alg (0)", "NotAllowedError");
// TODO: come back to this when mock authenticators support multiple cryptos so that we can test the preference ranking
// function verifyEC256(res) {
diff --git a/tests/wpt/web-platform-tests/webauthn/getcredential-badargs-rpid.https.html b/tests/wpt/web-platform-tests/webauthn/getcredential-badargs-rpid.https.html
index 6e0ef5f2018..3f9d3f2177f 100644
--- a/tests/wpt/web-platform-tests/webauthn/getcredential-badargs-rpid.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/getcredential-badargs-rpid.https.html
@@ -31,6 +31,14 @@ standardSetup(function() {
new GetCredentialsTest("options.publicKey.rpId", "0invaliddomain.com")
.addCredential(credPromise)
.runTest("Bad rpId: invalid domain (starts with number)", "SecurityError");
+
+ let hostAndPort = window.location.host;
+ if (!hostAndPort.match(/:\d+$/)) {
+ hostAndPort += ":443";
+ }
+ new GetCredentialsTest({path: "options.publicKey.rpId", value: hostAndPort})
+ .addCredential(credPromise)
+ .runTest("Bad rpId: host + port", "SecurityError");
});
/* JSHINT */
diff --git a/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html b/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html
index dae05e0993a..c5237d2cda2 100644
--- a/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html
+++ b/tests/wpt/web-platform-tests/webauthn/getcredential-passing.https.html
@@ -30,9 +30,6 @@ standardSetup(function() {
new GetCredentialsTest({path: "options.publicKey.rpId", value: undefined})
.addCredential(credPromise)
.runTest("rpId undefined");
- new GetCredentialsTest({path: "options.publicKey.rpId", value: window.location.host})
- .addCredential(credPromise)
- .runTest("passing credentials.get() with rpId (host and port)");
new GetCredentialsTest({path: "options.publicKey.rpId", value: window.location.hostname})
.addCredential(credPromise)
.runTest("passing credentials.get() with rpId (hostname)");
diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-failure.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-failure.html
index 33eeea26189..4c705e73251 100644
--- a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-failure.html
+++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-import-failure.html
@@ -13,12 +13,6 @@ promise_test(async () => {
}, 'importScripts() on module worker should throw an exception.');
promise_test(() => {
- const scriptURL = 'resources/static-import-worker.js';
- const worker = new Worker(scriptURL, { type: 'classic' });
- return new Promise(resolve => worker.onerror = resolve);
-}, 'Static import on classic worker should throw an exception.');
-
-promise_test(() => {
const scriptURL = 'resources/non-existent-worker.js';
const worker = new Worker(scriptURL, { type: 'module' });
return new Promise(resolve => worker.onerror = resolve);
diff --git a/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-parse-error-failure.html b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-parse-error-failure.html
new file mode 100644
index 00000000000..99eae49fc91
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/dedicated-worker-parse-error-failure.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>DedicatedWorker: parse error failure</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script> setup({allow_uncaught_exception: true}); </script>
+<script>
+
+promise_test(async () => {
+ const scriptURL = 'resources/syntax-error.js';
+ const worker = new Worker(scriptURL, { type: 'classic' });
+ return new Promise(resolve => worker.onerror = resolve);
+}, 'Classic worker construction for script with syntax error should dispatch ' +
+ 'an ErrorEvent.');
+
+promise_test(async () => {
+ const scriptURL = 'resources/syntax-error.js';
+ const worker = new Worker(scriptURL, { type: 'module' });
+ return new Promise(resolve => worker.onerror = resolve);
+}, 'Module worker construction for script with syntax error should dispatch ' +
+ 'an ErrorEvent.');
+
+promise_test(async () => {
+ const scriptURL = 'resources/static-import-syntax-error.js';
+ const worker = new Worker(scriptURL, { type: 'module' });
+ return new Promise(resolve => worker.onerror = resolve);
+}, 'Static import on module worker for script with syntax error should ' +
+ 'dispatch an ErrorEvent.');
+
+promise_test(() => {
+ const scriptURL = 'resources/static-import-worker.js';
+ const worker = new Worker(scriptURL, { type: 'classic' });
+ return new Promise(resolve => worker.onerror = resolve);
+}, 'Static import on classic worker should dispatch an ErrorEvent.');
+
+</script>
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/static-import-syntax-error.js b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-syntax-error.js
new file mode 100644
index 00000000000..3a20e792c45
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/static-import-syntax-error.js
@@ -0,0 +1 @@
+import * as module from './syntax-error.js';
diff --git a/tests/wpt/web-platform-tests/workers/modules/resources/syntax-error.js b/tests/wpt/web-platform-tests/workers/modules/resources/syntax-error.js
new file mode 100644
index 00000000000..8c5c4df671b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/workers/modules/resources/syntax-error.js
@@ -0,0 +1 @@
+1 + ;
diff --git a/tests/wpt/webgl/meta/conformance2/context/methods-2.html.ini b/tests/wpt/webgl/meta/conformance2/context/methods-2.html.ini
index 015435d8316..9dcb07e7e09 100644
--- a/tests/wpt/webgl/meta/conformance2/context/methods-2.html.ini
+++ b/tests/wpt/webgl/meta/conformance2/context/methods-2.html.ini
@@ -1,79 +1,73 @@
[methods-2.html]
- [WebGL test #20: Property either does not exist or is not a function: drawBuffers]
+ [WebGL test #19: Property either does not exist or is not a function: getIndexedParameter]
expected: FAIL
- [WebGL test #9: Property either does not exist or is not a function: texSubImage3D]
+ [WebGL test #11: Property either does not exist or is not a function: compressedTexSubImage3D]
expected: FAIL
- [WebGL test #2: Property either does not exist or is not a function: framebufferTextureLayer]
+ [WebGL test #8: Property either does not exist or is not a function: texSubImage3D]
expected: FAIL
- [WebGL test #7: Property either does not exist or is not a function: texStorage2D]
+ [WebGL test #14: Property either does not exist or is not a function: vertexAttribI4ui]
expected: FAIL
- [WebGL test #8: Property either does not exist or is not a function: texStorage3D]
+ [WebGL test #18: Property either does not exist or is not a function: drawBuffers]
expected: FAIL
- [WebGL test #15: Property either does not exist or is not a function: vertexAttribI4iv]
+ [WebGL test #12: Property either does not exist or is not a function: vertexAttribI4i]
expected: FAIL
- [WebGL test #5: Property either does not exist or is not a function: renderbufferStorageMultisample]
+ [WebGL test #6: Property either does not exist or is not a function: texStorage2D]
expected: FAIL
- [WebGL test #16: Property either does not exist or is not a function: vertexAttribI4ui]
- expected: FAIL
-
- [WebGL test #22: Property either does not exist or is not a function: createVertexArray]
- expected: FAIL
-
- [WebGL test #4: Property either does not exist or is not a function: readBuffer]
+ [WebGL test #1: Property either does not exist or is not a function: blitFramebuffer]
expected: FAIL
- [WebGL test #11: Property either does not exist or is not a function: compressedTexImage3D]
+ [WebGL test #5: Property either does not exist or is not a function: texImage3D]
expected: FAIL
- [WebGL test #1: Property either does not exist or is not a function: blitFramebuffer]
+ [WebGL test #17: Property either does not exist or is not a function: drawRangeElements]
expected: FAIL
- [WebGL test #24: Property either does not exist or is not a function: isVertexArray]
+ [WebGL test #21: Property either does not exist or is not a function: deleteVertexArray]
expected: FAIL
- [WebGL test #12: Property either does not exist or is not a function: compressedTexSubImage3D]
+ [WebGL test #10: Property either does not exist or is not a function: compressedTexImage3D]
expected: FAIL
- [WebGL test #18: Property either does not exist or is not a function: vertexAttribIPointer]
+ [WebGL test #7: Property either does not exist or is not a function: texStorage3D]
expected: FAIL
- [WebGL test #6: Property either does not exist or is not a function: texImage3D]
+ [WebGL test #22: Property either does not exist or is not a function: isVertexArray]
expected: FAIL
- [WebGL test #3: Property either does not exist or is not a function: getInternalformatParameter]
+ [WebGL test #4: Property either does not exist or is not a function: renderbufferStorageMultisample]
expected: FAIL
- [WebGL test #21: Property either does not exist or is not a function: getIndexedParameter]
+ [WebGL test #9: Property either does not exist or is not a function: copyTexSubImage3D]
expected: FAIL
- [WebGL test #13: Property either does not exist or is not a function: getFragDataLocation]
+ [WebGL test #0: Property either does not exist or is not a function: isContextLost]
expected: FAIL
- [WebGL test #0: Property either does not exist or is not a function: isContextLost]
+ [WebGL test #20: Property either does not exist or is not a function: createVertexArray]
expected: FAIL
- [WebGL test #10: Property either does not exist or is not a function: copyTexSubImage3D]
+ [WebGL test #23: Property either does not exist or is not a function: bindVertexArray]
expected: FAIL
- [WebGL test #25: Property either does not exist or is not a function: bindVertexArray]
+ [WebGL test #16: Property either does not exist or is not a function: vertexAttribIPointer]
expected: FAIL
- [WebGL test #17: Property either does not exist or is not a function: vertexAttribI4uiv]
+ [WebGL test #15: Property either does not exist or is not a function: vertexAttribI4uiv]
expected: FAIL
- [WebGL test #19: Property either does not exist or is not a function: drawRangeElements]
+ [WebGL test #2: Property either does not exist or is not a function: getInternalformatParameter]
expected: FAIL
- [WebGL test #14: Property either does not exist or is not a function: vertexAttribI4i]
+ [WebGL test #3: Property either does not exist or is not a function: readBuffer]
expected: FAIL
- [WebGL test #23: Property either does not exist or is not a function: deleteVertexArray]
+ [WebGL test #13: Property either does not exist or is not a function: vertexAttribI4iv]
expected: FAIL
diff --git a/tests/wpt/webgl/meta/conformance2/programs/gl-get-frag-data-location.html.ini b/tests/wpt/webgl/meta/conformance2/programs/gl-get-frag-data-location.html.ini
deleted file mode 100644
index 9ee2a3ac166..00000000000
--- a/tests/wpt/webgl/meta/conformance2/programs/gl-get-frag-data-location.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[gl-get-frag-data-location.html]
- expected: ERROR
- [WebGL test #2: successfullyParsed should be true (of type boolean). Was undefined (of type undefined).]
- expected: FAIL
diff --git a/tests/wpt/webgl/meta/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html.ini b/tests/wpt/webgl/meta/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html.ini
deleted file mode 100644
index e241046227c..00000000000
--- a/tests/wpt/webgl/meta/conformance2/reading/read-pixels-from-rgb8-into-pbo-bug.html.ini
+++ /dev/null
@@ -1,7 +0,0 @@
-[read-pixels-from-rgb8-into-pbo-bug.html]
- [WebGL test #2: getError expected: NO_ERROR. Was INVALID_OPERATION : Tests should complete without gl errors]
- expected: FAIL
-
- [WebGL test #1: Expected in pixel 0: [255,0,0,255\], got: 0,0,0,0]
- expected: FAIL
-
diff --git a/tests/wpt/webgl/meta/conformance2/rendering/framebuffer-texture-changing-base-level.html.ini b/tests/wpt/webgl/meta/conformance2/rendering/framebuffer-texture-changing-base-level.html.ini
index d2491514eec..e99f92686ba 100644
--- a/tests/wpt/webgl/meta/conformance2/rendering/framebuffer-texture-changing-base-level.html.ini
+++ b/tests/wpt/webgl/meta/conformance2/rendering/framebuffer-texture-changing-base-level.html.ini
@@ -8,24 +8,9 @@
[WebGL test #8: getError expected: NO_ERROR. Was INVALID_ENUM : Setup framebuffer with texture should succeed.]
expected: FAIL
- [WebGL test #3: getError expected: NO_ERROR. Was INVALID_OPERATION : Clearing the texture level 0 to green should succeed.]
- expected: FAIL
-
- [WebGL test #9: getError expected: NO_ERROR. Was INVALID_OPERATION : Clearing the texture level 2 to green should succeed.]
- expected: FAIL
-
- [WebGL test #6: getError expected: NO_ERROR. Was INVALID_OPERATION : Clearing the texture level 1 to green should succeed.]
- expected: FAIL
-
- [WebGL test #14: should be green\nat (0, 0) expected: 0,255,0,255 was 0,0,0,0]
- expected: FAIL
-
[WebGL test #13: getError expected: NO_ERROR. Was INVALID_ENUM : Drawing the texture to default framebuffer with base level 0 should succeed.]
expected: FAIL
[WebGL test #2: getError expected: NO_ERROR. Was INVALID_ENUM : Setup framebuffer with texture should succeed.]
expected: FAIL
- [WebGL test #12: getError expected: NO_ERROR. Was INVALID_OPERATION : Clearing the texture level 3 to green should succeed.]
- expected: FAIL
-