aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/include.ini2
-rw-r--r--tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.lighter.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.lighter.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.xor.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvaspattern.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.fill.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.image.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.imagepattern.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.range.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.lighter.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.casesensitive.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.clear.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.darker.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.highlight.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.nullsuffix.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.unrecognised.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.lighter.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.xor.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.lighter.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.copy.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-atop.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-in.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-out.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/conformance-requirements/2d.missingargs.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/conformance-requirements/2d.voidreturn.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.5arg.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.apng.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.gif.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.poster.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.broken.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.canvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.clip.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.composite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.floatsource.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.emptysrc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.immediate.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.nosrc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.reload.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.removedsrc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedest.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedir.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativesource.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nowrap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.path.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.transform.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerocanvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/canvas_focus_drawCustomFocusRing_001.html.ini8
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.clip.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.path.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.clip.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.path.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.clip.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.path.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.zero.5.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.baseline.alphabetic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.solid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.transparent.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html.ini3
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html.ini3
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html.ini3
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colour.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.solid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.compare.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.current.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidcolour.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.return.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.type.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.update.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.front.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.top.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.equal.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.negative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.animated.gif.html.ini6
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.canvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.image.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.nocontext.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.type.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.crosscanvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.broken.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.case.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.null.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.undefined.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.strokeStyle.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini14
-rw-r--r--tests/wpt/metadata/2dcontext/hit-regions/hitregions-members-exist.html.ini11
-rw-r--r--tests/wpt/metadata/2dcontext/image-smoothing/imagesmoothing.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.butt.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.closed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.open.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.round.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.square.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.cross.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.defaults.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.bevel.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.closed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.miter.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.open.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.parallel.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.join.round.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.acute.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.exceeded.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.obtuse.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.rightangle.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.valid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.within.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.union.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.width.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.width.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.width.scaledefault.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.width.transformed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/2d.line.width.valid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/line-styles/canvas_linestyles_linecap_001.htm.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.4.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.5.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.6.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.end.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonempty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.4.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.5.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.4.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zeroradius.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.negative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.scale.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.end.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.start.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.transformation.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.beginPath.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.scaled.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.shape.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.intersect.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.newline.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.nextpoint.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.overlap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.add.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.arc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bezier.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bigarc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.edge.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.subpath.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.4.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.unclosed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.winding.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nextpoint.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.multiple.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.scaled.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.shape.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.closed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.negative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.newsubpath.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.selfintersect.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.winding.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.4.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.5.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.6.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.empty.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.overlap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.arc.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.closed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.corner.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.curve.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.line.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.rect.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.skew.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.union.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.changing.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.multiple.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.tiny.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.clamp.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.tiny.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.clip.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.path.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unaffected.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.4.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.5.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.initial.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.initial.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.valid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.initial.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.blur.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.x.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.y.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.scale.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.section.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.outside.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.3.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.1.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.2.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.align.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.align.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.basic.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.complex.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.system.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/text-styles/2d.text.measure.width.space.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.bitmap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.clip.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.fillStyle.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalAlpha.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineCap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineJoin.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineWidth.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.miterLimit.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.path.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowBlur.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowColor.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetX.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetY.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stack.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stackdepth.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.strokeStyle.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.transformation.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.underflow.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/the-canvas-state/canvas_state_restore_001.htm.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.order.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.direction.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.radians.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrap.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrapnegative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.zero.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.negative.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.zero.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.skewed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.skewed.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/2d.transformation.translate.nonfinite.html.ini5
-rw-r--r--tests/wpt/metadata/2dcontext/transformations/canvas_transformations_scale_001.htm.ini5
559 files changed, 2805 insertions, 0 deletions
diff --git a/tests/wpt/include.ini b/tests/wpt/include.ini
index de50130387c..5e53cc937ab 100644
--- a/tests/wpt/include.ini
+++ b/tests/wpt/include.ini
@@ -1,4 +1,6 @@
skip: true
+[2dcontext]
+ skip: false
[dom]
skip: false
[domparsing]
diff --git a/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini
new file mode 100644
index 00000000000..e4f67a13404
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_arcto_001.htm.ini
@@ -0,0 +1,5 @@
+[canvas_complexshapes_arcto_001.htm]
+ type: reftest
+ reftype: ==
+ refurl: /2dcontext/building-paths/canvas_complexshapes_arcto_001-ref.htm
+ expected: FAIL
diff --git a/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini
new file mode 100644
index 00000000000..ef729a45f8d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/building-paths/canvas_complexshapes_beziercurveto_001.htm.ini
@@ -0,0 +1,5 @@
+[canvas_complexshapes_beziercurveto_001.htm]
+ type: reftest
+ reftype: ==
+ refurl: /2dcontext/building-paths/canvas_complexshapes_beziercurveto_001-ref.htm
+ expected: FAIL
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini
new file mode 100644
index 00000000000..69471e48881
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.copy.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.copy]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini
new file mode 100644
index 00000000000..78a31566554
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.destination-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.destination-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini
new file mode 100644
index 00000000000..9d21e34db4b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.destination-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.destination-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini
new file mode 100644
index 00000000000..9d5f2fb490c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.destination-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.destination-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini
new file mode 100644
index 00000000000..8277c5a8dcd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.destination-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.destination-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.destination-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.lighter.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.lighter.html.ini
new file mode 100644
index 00000000000..8e4e7a3ddca
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.lighter.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.lighter.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.lighter]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini
new file mode 100644
index 00000000000..83960b07b77
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.source-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.source-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini
new file mode 100644
index 00000000000..bfd57a3886b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.source-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.source-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini
new file mode 100644
index 00000000000..8c919587d15
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.source-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.source-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini
new file mode 100644
index 00000000000..d1af3381578
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.source-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.source-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.source-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini
new file mode 100644
index 00000000000..d37ecc0011f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.canvas.xor.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.canvas.xor.html]
+ type: testharness
+ [Canvas test: 2d.composite.canvas.xor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.copy.html.ini
new file mode 100644
index 00000000000..23f9b8fd121
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.copy.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-atop.html.ini
new file mode 100644
index 00000000000..d7af32419ea
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.destination-atop.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-in.html.ini
new file mode 100644
index 00000000000..911f5811a29
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.destination-in.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-out.html.ini
new file mode 100644
index 00000000000..dccdf5223c9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.destination-out.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-over.html.ini
new file mode 100644
index 00000000000..feed3e92b44
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.destination-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.destination-over.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.lighter.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.lighter.html.ini
new file mode 100644
index 00000000000..ed0c008a047
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.lighter.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.lighter.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-atop.html.ini
new file mode 100644
index 00000000000..da2471b44ca
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.source-atop.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-in.html.ini
new file mode 100644
index 00000000000..de301459ba3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.source-in.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-out.html.ini
new file mode 100644
index 00000000000..69939989f46
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.source-out.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-over.html.ini
new file mode 100644
index 00000000000..77fbfd70264
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.source-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.source-over.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.xor.html.ini
new file mode 100644
index 00000000000..bfd93df0fe4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.clip.xor.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.clip.xor.html]
+ type: testharness
+ [fill() does not affect pixels outside the clip region.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvas.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvas.html.ini
new file mode 100644
index 00000000000..2032a2a017c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvas.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.canvas.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.canvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvaspattern.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvaspattern.html.ini
new file mode 100644
index 00000000000..004da3989cd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.canvaspattern.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.canvaspattern.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.canvaspattern]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.default.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.default.html.ini
new file mode 100644
index 00000000000..5e17eb50b21
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.default.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.default.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.fill.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.fill.html.ini
new file mode 100644
index 00000000000..2c38aab1c77
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.fill.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.fill.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.fill]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.image.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.image.html.ini
new file mode 100644
index 00000000000..58a667efe51
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.image.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.image.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.image]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.imagepattern.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.imagepattern.html.ini
new file mode 100644
index 00000000000..094e647afa7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.imagepattern.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.imagepattern.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.imagepattern]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.invalid.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.invalid.html.ini
new file mode 100644
index 00000000000..2b16fc32a08
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.invalid.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.range.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.range.html.ini
new file mode 100644
index 00000000000..0577c735609
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.globalAlpha.range.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.globalAlpha.range.html]
+ type: testharness
+ [Canvas test: 2d.composite.globalAlpha.range]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini
new file mode 100644
index 00000000000..1ca75fe16c2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.copy.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.copy]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini
new file mode 100644
index 00000000000..99a7be01aa0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.destination-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.destination-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini
new file mode 100644
index 00000000000..ad3d8dccc7e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.destination-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.destination-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini
new file mode 100644
index 00000000000..98625ab9687
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.destination-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.destination-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini
new file mode 100644
index 00000000000..fb8ad3107a8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.destination-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.destination-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.destination-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.lighter.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.lighter.html.ini
new file mode 100644
index 00000000000..f822eec7bcc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.lighter.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.lighter.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.lighter]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini
new file mode 100644
index 00000000000..fc886edca68
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.source-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.source-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini
new file mode 100644
index 00000000000..334346dd9ba
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.source-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.source-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini
new file mode 100644
index 00000000000..f6ccbf762a0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.source-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.source-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini
new file mode 100644
index 00000000000..8bdfd76aeaf
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.source-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.source-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.source-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini
new file mode 100644
index 00000000000..6e50bc40a55
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.image.xor.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.image.xor.html]
+ type: testharness
+ [Canvas test: 2d.composite.image.xor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.casesensitive.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.casesensitive.html.ini
new file mode 100644
index 00000000000..1468279d320
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.casesensitive.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.casesensitive.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.casesensitive]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.clear.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.clear.html.ini
new file mode 100644
index 00000000000..8ddda3e4602
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.clear.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.clear.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.clear]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.darker.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.darker.html.ini
new file mode 100644
index 00000000000..77c1dfc146d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.darker.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.darker.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.darker]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.default.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.default.html.ini
new file mode 100644
index 00000000000..4eeb2613121
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.default.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.default.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.highlight.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.highlight.html.ini
new file mode 100644
index 00000000000..78655d8a483
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.highlight.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.highlight.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.highlight]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.nullsuffix.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.nullsuffix.html.ini
new file mode 100644
index 00000000000..a4606d7552e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.nullsuffix.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.nullsuffix.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.nullsuffix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.over.html.ini
new file mode 100644
index 00000000000..995fd951428
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.over.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.unrecognised.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.unrecognised.html.ini
new file mode 100644
index 00000000000..1233f669734
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.operation.unrecognised.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.operation.unrecognised.html]
+ type: testharness
+ [Canvas test: 2d.composite.operation.unrecognised]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-atop.html.ini
new file mode 100644
index 00000000000..a7e384149a2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.destination-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.destination-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-in.html.ini
new file mode 100644
index 00000000000..322f1503513
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.destination-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.destination-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-out.html.ini
new file mode 100644
index 00000000000..7346214d9e0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.destination-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.destination-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-over.html.ini
new file mode 100644
index 00000000000..2db42d95dca
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.destination-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.destination-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.destination-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.lighter.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.lighter.html.ini
new file mode 100644
index 00000000000..9666e52886e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.lighter.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.lighter.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.lighter]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.source-out.html.ini
new file mode 100644
index 00000000000..6c0784f3fb7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.source-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.source-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.xor.html.ini
new file mode 100644
index 00000000000..417c11463fd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.solid.xor.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.solid.xor.html]
+ type: testharness
+ [Canvas test: 2d.composite.solid.xor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini
new file mode 100644
index 00000000000..9c314a870aa
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.copy.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.copy]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini
new file mode 100644
index 00000000000..a58fe90d76c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.destination-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.destination-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini
new file mode 100644
index 00000000000..b535e9cc525
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.destination-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.destination-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini
new file mode 100644
index 00000000000..c425dd8a7d1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.destination-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.destination-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini
new file mode 100644
index 00000000000..c0178e7ff5b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.destination-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.destination-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.destination-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.lighter.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.lighter.html.ini
new file mode 100644
index 00000000000..0050fcee30c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.lighter.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.lighter.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.lighter]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini
new file mode 100644
index 00000000000..3b4e72a198e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.source-atop.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.source-atop]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini
new file mode 100644
index 00000000000..8b7fb3f6e95
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.source-in.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.source-in]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini
new file mode 100644
index 00000000000..6686231c07f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.source-out.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.source-out]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini
new file mode 100644
index 00000000000..c5732728b2c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.source-over.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.source-over.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.source-over]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini
new file mode 100644
index 00000000000..f0b3f066424
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.transparent.xor.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.transparent.xor.html]
+ type: testharness
+ [Canvas test: 2d.composite.transparent.xor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.copy.html.ini
new file mode 100644
index 00000000000..7dc0b0df511
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.fill.copy.html]
+ type: testharness
+ [fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-atop.html.ini
new file mode 100644
index 00000000000..9b2d545fc8c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.fill.destination-atop.html]
+ type: testharness
+ [fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-in.html.ini
new file mode 100644
index 00000000000..c7d1065df1c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.fill.destination-in.html]
+ type: testharness
+ [fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-in.html.ini
new file mode 100644
index 00000000000..44e030afd4e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.fill.source-in.html]
+ type: testharness
+ [fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-out.html.ini
new file mode 100644
index 00000000000..13560b6ca6c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.fill.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.fill.source-out.html]
+ type: testharness
+ [fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.copy.html.ini
new file mode 100644
index 00000000000..9df43f40d14
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.image.copy.html]
+ type: testharness
+ [drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-atop.html.ini
new file mode 100644
index 00000000000..ee8680e2c12
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.image.destination-atop.html]
+ type: testharness
+ [drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-in.html.ini
new file mode 100644
index 00000000000..97bf4477445
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.image.destination-in.html]
+ type: testharness
+ [drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-in.html.ini
new file mode 100644
index 00000000000..d302a5baaaf
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.image.source-in.html]
+ type: testharness
+ [drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-out.html.ini
new file mode 100644
index 00000000000..a9e0eb4862e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.image.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.image.source-out.html]
+ type: testharness
+ [drawImage() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.copy.html.ini
new file mode 100644
index 00000000000..f74bd40b4f6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.nocontext.copy.html]
+ type: testharness
+ [drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-atop.html.ini
new file mode 100644
index 00000000000..ca9cef53b42
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.nocontext.destination-atop.html]
+ type: testharness
+ [drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-in.html.ini
new file mode 100644
index 00000000000..3959a65a60d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.nocontext.destination-in.html]
+ type: testharness
+ [drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-in.html.ini
new file mode 100644
index 00000000000..76362784c2a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.nocontext.source-in.html]
+ type: testharness
+ [drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-out.html.ini
new file mode 100644
index 00000000000..929be71efea
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.nocontext.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.nocontext.source-out.html]
+ type: testharness
+ [drawImage() of a canvas with no context draws pixels as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.copy.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.copy.html.ini
new file mode 100644
index 00000000000..fdf4be2b668
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.copy.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.pattern.copy.html]
+ type: testharness
+ [Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-atop.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-atop.html.ini
new file mode 100644
index 00000000000..79fa9c1554e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-atop.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.pattern.destination-atop.html]
+ type: testharness
+ [Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-in.html.ini
new file mode 100644
index 00000000000..d92d2b31fea
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.destination-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.pattern.destination-in.html]
+ type: testharness
+ [Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-in.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-in.html.ini
new file mode 100644
index 00000000000..d54001c7d2f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-in.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.pattern.source-in.html]
+ type: testharness
+ [Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-out.html.ini b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-out.html.ini
new file mode 100644
index 00000000000..d287645f0a7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/2d.composite.uncovered.pattern.source-out.html.ini
@@ -0,0 +1,5 @@
+[2d.composite.uncovered.pattern.source-out.html]
+ type: testharness
+ [Pattern fill() draws pixels not covered by the source object as (0,0,0,0), and does not leave the pixels unchanged.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm.ini b/tests/wpt/metadata/2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm.ini
new file mode 100644
index 00000000000..64b088a8dcf
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/compositing/canvas_compositing_globalcompositeoperation_001.htm.ini
@@ -0,0 +1,5 @@
+[canvas_compositing_globalcompositeoperation_001.htm]
+ type: reftest
+ reftype: ==
+ refurl: /2dcontext/compositing/canvas_compositing_globalcompositeoperation_001-ref.htm
+ expected: FAIL
diff --git a/tests/wpt/metadata/2dcontext/conformance-requirements/2d.missingargs.html.ini b/tests/wpt/metadata/2dcontext/conformance-requirements/2d.missingargs.html.ini
new file mode 100644
index 00000000000..ce1cd9d0ff6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/conformance-requirements/2d.missingargs.html.ini
@@ -0,0 +1,5 @@
+[2d.missingargs.html]
+ type: testharness
+ [Missing arguments cause TypeError]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/conformance-requirements/2d.voidreturn.html.ini b/tests/wpt/metadata/2dcontext/conformance-requirements/2d.voidreturn.html.ini
new file mode 100644
index 00000000000..a8951ee5130
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/conformance-requirements/2d.voidreturn.html.ini
@@ -0,0 +1,5 @@
+[2d.voidreturn.html]
+ type: testharness
+ [void methods return undefined]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html.ini
new file mode 100644
index 00000000000..36849de7ae0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.3arg.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.3arg.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.3arg]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.5arg.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.5arg.html.ini
new file mode 100644
index 00000000000..29ca7fccdd3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.5arg.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.5arg.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.5arg]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.html.ini
new file mode 100644
index 00000000000..8847e0db8c5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.9arg.basic.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.9arg.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.html.ini
new file mode 100644
index 00000000000..d3d8a6f1a14
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destpos.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.9arg.destpos.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.9arg.destpos]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.html.ini
new file mode 100644
index 00000000000..eb84f28d686
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.9arg.destsize.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.9arg.destsize]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.html.ini
new file mode 100644
index 00000000000..3d8cc371b4b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcepos.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.9arg.sourcepos.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.9arg.sourcepos]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.html.ini
new file mode 100644
index 00000000000..2f90478b571
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.9arg.sourcesize.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.9arg.sourcesize.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.9arg.sourcesize]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.alpha.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.alpha.html.ini
new file mode 100644
index 00000000000..6d71c0fe6e4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.alpha.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.alpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.apng.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.apng.html.ini
new file mode 100644
index 00000000000..12bbb87fda1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.apng.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.animated.apng.html]
+ type: testharness
+ [drawImage() of an APNG with no poster frame draws the first frame]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.gif.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.gif.html.ini
new file mode 100644
index 00000000000..ab2c8e2cb02
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.gif.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.animated.gif.html]
+ type: testharness
+ [drawImage() of an animated GIF draws the first frame]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.poster.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.poster.html.ini
new file mode 100644
index 00000000000..bcbaad2c882
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.animated.poster.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.animated.poster.html]
+ type: testharness
+ [drawImage() of an APNG draws the poster frame]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.broken.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.broken.html.ini
new file mode 100644
index 00000000000..7143009c054
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.broken.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.broken.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.broken]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.canvas.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.canvas.html.ini
new file mode 100644
index 00000000000..50084ff0b01
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.canvas.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.canvas.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.canvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.clip.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.clip.html.ini
new file mode 100644
index 00000000000..1dd6e3a9019
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.clip.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.clip.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.clip]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.composite.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.composite.html.ini
new file mode 100644
index 00000000000..59f9d248c37
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.composite.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.composite.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.composite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.floatsource.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.floatsource.html.ini
new file mode 100644
index 00000000000..58a5608ae50
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.floatsource.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.floatsource.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.floatsource]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.emptysrc.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.emptysrc.html.ini
new file mode 100644
index 00000000000..d47648d6d4a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.emptysrc.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.incomplete.emptysrc.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.incomplete.emptysrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.immediate.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.immediate.html.ini
new file mode 100644
index 00000000000..73034e1a41f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.immediate.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.incomplete.immediate.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.incomplete.immediate]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.nosrc.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.nosrc.html.ini
new file mode 100644
index 00000000000..4b9cc677204
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.nosrc.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.incomplete.nosrc.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.incomplete.nosrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.reload.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.reload.html.ini
new file mode 100644
index 00000000000..e84629a9f0d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.reload.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.incomplete.reload.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.incomplete.reload]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.removedsrc.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.removedsrc.html.ini
new file mode 100644
index 00000000000..0813bec1e54
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.incomplete.removedsrc.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.incomplete.removedsrc.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.incomplete.removedsrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedest.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedest.html.ini
new file mode 100644
index 00000000000..df3c4e40247
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedest.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.negativedest.html]
+ type: testharness
+ [Negative destination width/height represents the correct rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedir.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedir.html.ini
new file mode 100644
index 00000000000..e12061baeb0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativedir.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.negativedir.html]
+ type: testharness
+ [Negative dimensions do not affect the direction of the image]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativesource.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativesource.html.ini
new file mode 100644
index 00000000000..08d638e3e02
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.negativesource.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.negativesource.html]
+ type: testharness
+ [Negative source width/height represents the correct rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nonfinite.html.ini
new file mode 100644
index 00000000000..59c2ed1eda1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.nonfinite.html]
+ type: testharness
+ [drawImage() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nowrap.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nowrap.html.ini
new file mode 100644
index 00000000000..65d4f782665
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.nowrap.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.nowrap.html]
+ type: testharness
+ [Stretched images do not get pixels wrapping around the edges]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.path.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.path.html.ini
new file mode 100644
index 00000000000..90e93b43b2d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.path.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.path.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.1.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.1.html.ini
new file mode 100644
index 00000000000..f1466e20fe5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.1.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.self.1.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.self.1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.2.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.2.html.ini
new file mode 100644
index 00000000000..a7e3656486d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.self.2.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.self.2.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.self.2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini
new file mode 100644
index 00000000000..dfda7023a66
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.svg.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.svg.html]
+ type: testharness
+ [drawImage() of an SVG image]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.transform.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.transform.html.ini
new file mode 100644
index 00000000000..65ee855d48a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.transform.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.transform.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.transform]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerocanvas.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerocanvas.html.ini
new file mode 100644
index 00000000000..fd39e5a9200
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerocanvas.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.zerocanvas.html]
+ type: testharness
+ [Canvas test: 2d.drawImage.zerocanvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.html.ini
new file mode 100644
index 00000000000..92e485ec36e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.zerosource.html]
+ type: testharness
+ [drawImage with zero-sized source rectangle throws INDEX_SIZE_ERR]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini
new file mode 100644
index 00000000000..fbe9a0a6877
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-images-to-the-canvas/2d.drawImage.zerosource.image.html.ini
@@ -0,0 +1,5 @@
+[2d.drawImage.zerosource.image.html]
+ type: testharness
+ [drawImage with zero-sized source rectangle from image throws INDEX_SIZE_ERR]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/canvas_focus_drawCustomFocusRing_001.html.ini b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/canvas_focus_drawCustomFocusRing_001.html.ini
new file mode 100644
index 00000000000..3c26f50e1d1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/canvas_focus_drawCustomFocusRing_001.html.ini
@@ -0,0 +1,8 @@
+[canvas_focus_drawCustomFocusRing_001.html]
+ type: testharness
+ [drawCustomFocusRing must return false for an element that is not focused.]
+ expected: FAIL
+
+ [drawCustomFocusRing must return false for an element that is not a descendant of the canvas element.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini
new file mode 100644
index 00000000000..13e8e7e8c01
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_001.html.ini
@@ -0,0 +1,5 @@
+[drawFocusIfNeeded_001.html]
+ type: testharness
+ [drawFocusIfNeeded draws a focus ring.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini
new file mode 100644
index 00000000000..0cfb2d75dc9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_002.html.ini
@@ -0,0 +1,5 @@
+[drawFocusIfNeeded_002.html]
+ type: testharness
+ [drawFocusIfNeeded does not draw a focus ring if the element is not in focus.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini
new file mode 100644
index 00000000000..de713e4a974
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_003.html.ini
@@ -0,0 +1,5 @@
+[drawFocusIfNeeded_003.html]
+ type: testharness
+ [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/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini
new file mode 100644
index 00000000000..2535051e65f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_004.html.ini
@@ -0,0 +1,5 @@
+[drawFocusIfNeeded_004.html]
+ type: testharness
+ [drawFocusIfNeeded does draw a focus ring if the element is in focus.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini
new file mode 100644
index 00000000000..2ad3d516b37
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-paths-to-the-canvas/drawFocusIfNeeded_005.html.ini
@@ -0,0 +1,5 @@
+[drawFocusIfNeeded_005.html]
+ type: testharness
+ [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/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.clip.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.clip.html.ini
new file mode 100644
index 00000000000..b866307aca1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.clip.html.ini
@@ -0,0 +1,5 @@
+[2d.clearRect.clip.html]
+ type: testharness
+ [clearRect is affected by clipping regions]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.nonfinite.html.ini
new file mode 100644
index 00000000000..915e0758635
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.clearRect.nonfinite.html]
+ type: testharness
+ [clearRect() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.path.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.path.html.ini
new file mode 100644
index 00000000000..615202eb6b5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.clearRect.path.html.ini
@@ -0,0 +1,5 @@
+[2d.clearRect.path.html]
+ type: testharness
+ [clearRect does not affect the current path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.clip.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.clip.html.ini
new file mode 100644
index 00000000000..a4515096beb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.clip.html.ini
@@ -0,0 +1,5 @@
+[2d.fillRect.clip.html]
+ type: testharness
+ [fillRect is affected by clipping regions]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.path.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.path.html.ini
new file mode 100644
index 00000000000..b3bd1685ad2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.path.html.ini
@@ -0,0 +1,5 @@
+[2d.fillRect.path.html]
+ type: testharness
+ [fillRect does not affect the current path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini
new file mode 100644
index 00000000000..62a4de4bb7d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.fillRect.shadow.html.ini
@@ -0,0 +1,5 @@
+[2d.fillRect.shadow.html]
+ type: testharness
+ [fillRect draws shadows]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.basic.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.basic.html.ini
new file mode 100644
index 00000000000..844a6ba3474
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.strokeRect.basic.html]
+ type: testharness
+ [strokeRect works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.clip.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.clip.html.ini
new file mode 100644
index 00000000000..00208229e45
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.clip.html.ini
@@ -0,0 +1,5 @@
+[2d.strokeRect.clip.html]
+ type: testharness
+ [strokeRect is affected by clipping regions]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.path.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.path.html.ini
new file mode 100644
index 00000000000..3fb4bbb762f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.path.html.ini
@@ -0,0 +1,5 @@
+[2d.strokeRect.path.html]
+ type: testharness
+ [strokeRect does not affect the current path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini
new file mode 100644
index 00000000000..3a7aab00076
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.shadow.html.ini
@@ -0,0 +1,5 @@
+[2d.strokeRect.shadow.html]
+ type: testharness
+ [strokeRect draws shadows]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.zero.5.html.ini b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.zero.5.html.ini
new file mode 100644
index 00000000000..b08134d8578
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-rectangles-to-the-canvas/2d.strokeRect.zero.5.html.ini
@@ -0,0 +1,5 @@
+[2d.strokeRect.zero.5.html]
+ type: testharness
+ [strokeRect of Nx0 pixels draws a closed line with joins]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini
new file mode 100644
index 00000000000..2740f64d22c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.center.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.center.html]
+ type: testharness
+ [textAlign center is the center of the em squares (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini
new file mode 100644
index 00000000000..31154644091
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.ltr.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.end.ltr.html]
+ type: testharness
+ [textAlign end with ltr is the right edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini
new file mode 100644
index 00000000000..3160cc57e3e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.end.rtl.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.end.rtl.html]
+ type: testharness
+ [textAlign end with rtl is the left edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini
new file mode 100644
index 00000000000..6e5a002a13a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.left.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.left.html]
+ type: testharness
+ [textAlign left is the left of the first em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini
new file mode 100644
index 00000000000..c06aa8fbbb6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.right.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.right.html]
+ type: testharness
+ [textAlign right is the right of the last em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini
new file mode 100644
index 00000000000..804b2b35021
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.ltr.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.start.ltr.html]
+ type: testharness
+ [textAlign start with ltr is the left edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini
new file mode 100644
index 00000000000..4e7db9c9954
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.align.start.rtl.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.align.start.rtl.html]
+ type: testharness
+ [textAlign start with rtl is the right edge]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.baseline.alphabetic.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.baseline.alphabetic.html.ini
new file mode 100644
index 00000000000..a7b960c6b79
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.baseline.alphabetic.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.baseline.alphabetic.html]
+ type: testharness
+ [Canvas test: 2d.text.draw.baseline.alphabetic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini
new file mode 100644
index 00000000000..382a02e4036
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.bound.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fill.maxWidth.bound.html]
+ type: testharness
+ [fillText handles maxWidth based on line size, not bounding box size]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html.ini
new file mode 100644
index 00000000000..4aa53f27a11
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.fontface.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fill.maxWidth.fontface.html]
+ type: testharness
+ [fillText works on @font-face fonts]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html.ini
new file mode 100644
index 00000000000..e1277b87083
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.negative.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fill.maxWidth.negative.html]
+ type: testharness
+ [fillText handles maxWidth correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html.ini
new file mode 100644
index 00000000000..97596b7e4eb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.small.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fill.maxWidth.small.html]
+ type: testharness
+ [fillText handles maxWidth correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html.ini
new file mode 100644
index 00000000000..43e5c7fcb8b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.maxWidth.zero.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fill.maxWidth.zero.html]
+ type: testharness
+ [fillText handles maxWidth correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html.ini
new file mode 100644
index 00000000000..550fb3514a5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fill.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fill.unaffected.html]
+ type: testharness
+ [fillText does not start a new path or subpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini
new file mode 100644
index 00000000000..11f8e3b0c77
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fontface.html]
+ type: testharness
+ [Canvas test: 2d.text.draw.fontface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini
new file mode 100644
index 00000000000..c3c66625959
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.notinpage.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fontface.notinpage.html]
+ type: testharness
+ [@font-face fonts should work even if they are not used in the page]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini
new file mode 100644
index 00000000000..20be6075748
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.fontface.repeat.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.fontface.repeat.html]
+ type: testharness
+ [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/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini
new file mode 100644
index 00000000000..4f0a23c99ae
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.space.basic.html]
+ type: testharness
+ [U+0020 is rendered the correct size (1em wide)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini
new file mode 100644
index 00000000000..f2935218c7c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.space.collapse.nonspace.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.space.collapse.nonspace.html]
+ type: testharness
+ [Non-space characters are not converted to U+0020 and collapsed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini
new file mode 100644
index 00000000000..3aa9b18a820
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.draw.stroke.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.stroke.unaffected.html]
+ type: testharness
+ [strokeText does not start a new path or subpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini
new file mode 100644
index 00000000000..52f0380ea08
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.text.measure.width.basic.html]
+ type: testharness
+ [Canvas test: 2d.text.measure.width.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini
new file mode 100644
index 00000000000..51c6544ee94
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/drawing-text-to-the-canvas/2d.text.measure.width.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.text.measure.width.empty.html]
+ type: testharness
+ [The empty string has zero width]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.default.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.default.html.ini
new file mode 100644
index 00000000000..895e44d8fde
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.default.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.default.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html.ini
new file mode 100644
index 00000000000..2f69f049652
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.semitransparent.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.get.semitransparent.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.get.semitransparent]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.solid.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.solid.html.ini
new file mode 100644
index 00000000000..19b79599d85
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.solid.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.get.solid.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.get.solid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.transparent.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.transparent.html.ini
new file mode 100644
index 00000000000..47a333916ea
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.get.transparent.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.get.transparent.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.get.transparent]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini
new file mode 100644
index 00000000000..de8c2aff18e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.current.basic.html]
+ type: testharness
+ [currentColor is computed from the canvas element]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini
new file mode 100644
index 00000000000..f91d8688b8a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.changed.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.current.changed.html]
+ type: testharness
+ [currentColor is computed when the attribute is set, not when it is painted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html.ini
new file mode 100644
index 00000000000..b96a3759e15
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.current.removed.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.current.removed.html]
+ type: testharness
+ [currentColor is solid black when the canvas element is not in a document]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini
new file mode 100644
index 00000000000..eaa3aab2432
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.hsla-1.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.hsla-1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html.ini
new file mode 100644
index 00000000000..e59f1e88464
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.invalid.name-3.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.invalid.name-3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html.ini
new file mode 100644
index 00000000000..7750f0ccb51
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.rgb-clamp-1.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.rgb-clamp-1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html.ini
new file mode 100644
index 00000000000..a631db395ee
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.rgb-clamp-2.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.rgb-clamp-2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html.ini
new file mode 100644
index 00000000000..293c51f06ae
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html.ini
@@ -0,0 +1,3 @@
+[2d.fillStyle.parse.rgb-clamp-3.html]
+ type: testharness
+ expected: CRASH
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html.ini
new file mode 100644
index 00000000000..def25383235
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html.ini
@@ -0,0 +1,3 @@
+[2d.fillStyle.parse.rgb-clamp-4.html]
+ type: testharness
+ expected: CRASH
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html.ini
new file mode 100644
index 00000000000..29e71891ded
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html.ini
@@ -0,0 +1,3 @@
+[2d.fillStyle.parse.rgb-clamp-5.html]
+ type: testharness
+ expected: CRASH
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini
new file mode 100644
index 00000000000..e625f8b7e07
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.rgba-num-1.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.rgba-num-1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini
new file mode 100644
index 00000000000..48ebdde1034
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.rgba-num-2.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.rgba-num-2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini
new file mode 100644
index 00000000000..309fc2dede9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.rgba-percent.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.rgba-percent]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini
new file mode 100644
index 00000000000..4357c7272b5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.fillStyle.parse.system.html.ini
@@ -0,0 +1,5 @@
+[2d.fillStyle.parse.system.html]
+ type: testharness
+ [Canvas test: 2d.fillStyle.parse.system]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.empty.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.empty.html.ini
new file mode 100644
index 00000000000..6be9b274256
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.empty.html]
+ type: testharness
+ [Canvas test: 2d.gradient.empty]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html.ini
new file mode 100644
index 00000000000..2da3282dd8e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.alpha.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.alpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colour.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colour.html.ini
new file mode 100644
index 00000000000..ec79d4dbc5f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colour.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.colour.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.colour]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini
new file mode 100644
index 00000000000..c0a89137a37
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.colouralpha.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.colouralpha.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.colouralpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html.ini
new file mode 100644
index 00000000000..c8562bae0e3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.multiple.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.multiple.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.multiple]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.outside.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.outside.html.ini
new file mode 100644
index 00000000000..8cba4c2b674
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.outside.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.outside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html.ini
new file mode 100644
index 00000000000..a89907b67db
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.overlap.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.overlap]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html.ini
new file mode 100644
index 00000000000..af56df25104
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.overlap2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.overlap2.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.overlap2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.solid.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.solid.html.ini
new file mode 100644
index 00000000000..ce470eb581d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.solid.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.solid.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.solid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html.ini
new file mode 100644
index 00000000000..6d1e4837b87
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.vertical.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.vertical.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.vertical]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html.ini
new file mode 100644
index 00000000000..4e811b1293f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fill.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.zerosize.fill.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.zerosize.fill]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html.ini
new file mode 100644
index 00000000000..c00de83efcd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillRect.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.zerosize.fillRect.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.zerosize.fillRect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html.ini
new file mode 100644
index 00000000000..65ef5ac2ee8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.fillText.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.zerosize.fillText.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.zerosize.fillText]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html.ini
new file mode 100644
index 00000000000..f18694d03c3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.stroke.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.zerosize.stroke.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.zerosize.stroke]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html.ini
new file mode 100644
index 00000000000..e5ae2179bd8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeRect.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.zerosize.strokeRect.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.zerosize.strokeRect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini
new file mode 100644
index 00000000000..894f5cd6dd4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.interpolate.zerosize.strokeText.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.interpolate.zerosize.strokeText.html]
+ type: testharness
+ [Canvas test: 2d.gradient.interpolate.zerosize.strokeText]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.1.html.ini
new file mode 100644
index 00000000000..de4f2bddebe
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.1.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.linear.transform.1.html]
+ type: testharness
+ [Linear gradient coordinates are relative to the coordinate space at the time of filling]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.2.html.ini
new file mode 100644
index 00000000000..d7de096f800
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.linear.transform.2.html]
+ type: testharness
+ [Linear gradient coordinates are relative to the coordinate space at the time of filling]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.3.html.ini
new file mode 100644
index 00000000000..8f6a7dd384f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.linear.transform.3.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.linear.transform.3.html]
+ type: testharness
+ [Linear gradient transforms do not experience broken caching effects]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.compare.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.compare.html.ini
new file mode 100644
index 00000000000..9fbe5bd5893
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.compare.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.compare.html]
+ type: testharness
+ [Canvas test: 2d.gradient.object.compare]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html.ini
new file mode 100644
index 00000000000..19d23d2d188
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.crosscanvas.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.crosscanvas.html]
+ type: testharness
+ [Canvas test: 2d.gradient.object.crosscanvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.current.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.current.html.ini
new file mode 100644
index 00000000000..c849f911b7f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.current.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.current.html]
+ type: testharness
+ [Canvas test: 2d.gradient.object.current]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidcolour.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidcolour.html.ini
new file mode 100644
index 00000000000..3fae4ceb973
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidcolour.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.invalidcolour.html]
+ type: testharness
+ [Canvas test: 2d.gradient.object.invalidcolour]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html.ini
new file mode 100644
index 00000000000..9efe5b4bfdd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.invalidoffset.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.invalidoffset.html]
+ type: testharness
+ [Canvas test: 2d.gradient.object.invalidoffset]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.return.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.return.html.ini
new file mode 100644
index 00000000000..471d071ccf1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.return.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.return.html]
+ type: testharness
+ [createLinearGradient() and createRadialGradient() returns objects implementing CanvasGradient]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.type.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.type.html.ini
new file mode 100644
index 00000000000..0f94a1ea962
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.type.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.type.html]
+ type: testharness
+ [window.CanvasGradient exists and has the right properties]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.update.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.update.html.ini
new file mode 100644
index 00000000000..5ab8ded6255
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.object.update.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.object.update.html]
+ type: testharness
+ [Canvas test: 2d.gradient.object.update]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini
new file mode 100644
index 00000000000..db248f89ae4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.behind.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.behind.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.behind]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini
new file mode 100644
index 00000000000..2283a856053
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.beside.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.beside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html.ini
new file mode 100644
index 00000000000..fa196ab8fce
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.bottom.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.bottom.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.bottom]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html.ini
new file mode 100644
index 00000000000..5280a598777
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.cylinder.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.cylinder.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.cylinder]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.front.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.front.html.ini
new file mode 100644
index 00000000000..ba4f90807cf
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.front.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.front.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.front]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html.ini
new file mode 100644
index 00000000000..7f85b8a7964
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape1.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.shape1.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.shape1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini
new file mode 100644
index 00000000000..ac163231f8b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.shape2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.shape2.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.shape2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.top.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.top.html.ini
new file mode 100644
index 00000000000..0b5e6257889
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.cone.top.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.cone.top.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.cone.top]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.equal.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.equal.html.ini
new file mode 100644
index 00000000000..32ab0251122
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.equal.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.equal.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.equal]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside1.html.ini
new file mode 100644
index 00000000000..008c2bdcf2b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside1.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.inside1.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.inside1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside2.html.ini
new file mode 100644
index 00000000000..4a877166ec5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.inside2.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.inside2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini
new file mode 100644
index 00000000000..efb6671ff96
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.inside3.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.inside3.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.inside3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.negative.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.negative.html.ini
new file mode 100644
index 00000000000..e7b491b0005
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.negative.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.negative.html]
+ type: testharness
+ [createRadialGradient() throws INDEX_SIZE_ERR if either radius is negative]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside1.html.ini
new file mode 100644
index 00000000000..f04fb4e2e55
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside1.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.outside1.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.outside1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini
new file mode 100644
index 00000000000..ae7beeb2c2d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.outside2.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.outside2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini
new file mode 100644
index 00000000000..9dcf34ddd87
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.outside3.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.outside3.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.outside3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini
new file mode 100644
index 00000000000..df30497660a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch1.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.touch1.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.touch1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini
new file mode 100644
index 00000000000..53c8947f53c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.touch2.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.touch2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini
new file mode 100644
index 00000000000..354a08d0728
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.touch3.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.touch3.html]
+ type: testharness
+ [Canvas test: 2d.gradient.radial.touch3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.1.html.ini
new file mode 100644
index 00000000000..3110be91ce8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.1.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.transform.1.html]
+ type: testharness
+ [Radial gradient coordinates are relative to the coordinate space at the time of filling]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.2.html.ini
new file mode 100644
index 00000000000..047159c7a5f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.2.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.transform.2.html]
+ type: testharness
+ [Radial gradient coordinates are relative to the coordinate space at the time of filling]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.3.html.ini
new file mode 100644
index 00000000000..a19423b6ad4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.gradient.radial.transform.3.html.ini
@@ -0,0 +1,5 @@
+[2d.gradient.radial.transform.3.html]
+ type: testharness
+ [Radial gradient transforms do not experience broken caching effects]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.animated.gif.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.animated.gif.html.ini
new file mode 100644
index 00000000000..28d125b79fa
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.animated.gif.html.ini
@@ -0,0 +1,6 @@
+[2d.pattern.animated.gif.html]
+ type: testharness
+ expected: TIMEOUT
+ [createPattern() of an animated GIF draws the first frame]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.canvas.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.canvas.html.ini
new file mode 100644
index 00000000000..f272df4151b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.canvas.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.basic.canvas.html]
+ type: testharness
+ [Canvas test: 2d.pattern.basic.canvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.image.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.image.html.ini
new file mode 100644
index 00000000000..32c0cdc04d1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.image.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.basic.image.html]
+ type: testharness
+ [Canvas test: 2d.pattern.basic.image]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.nocontext.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.nocontext.html.ini
new file mode 100644
index 00000000000..76d9994438c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.nocontext.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.basic.nocontext.html]
+ type: testharness
+ [Canvas test: 2d.pattern.basic.nocontext]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.type.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.type.html.ini
new file mode 100644
index 00000000000..beeb2480613
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.type.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.basic.type.html]
+ type: testharness
+ [Canvas test: 2d.pattern.basic.type]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html.ini
new file mode 100644
index 00000000000..3625c104df0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.basic.zerocanvas.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.basic.zerocanvas.html]
+ type: testharness
+ [Canvas test: 2d.pattern.basic.zerocanvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.crosscanvas.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.crosscanvas.html.ini
new file mode 100644
index 00000000000..4f47854c3ba
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.crosscanvas.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.crosscanvas.html]
+ type: testharness
+ [Canvas test: 2d.pattern.crosscanvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.broken.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.broken.html.ini
new file mode 100644
index 00000000000..da8fad63e8b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.broken.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.image.broken.html]
+ type: testharness
+ [Canvas test: 2d.pattern.image.broken]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html.ini
new file mode 100644
index 00000000000..a182cdc6e30
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.emptysrc.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.image.incomplete.emptysrc.html]
+ type: testharness
+ [Canvas test: 2d.pattern.image.incomplete.emptysrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html.ini
new file mode 100644
index 00000000000..64b9e3e8638
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.immediate.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.image.incomplete.immediate.html]
+ type: testharness
+ [Canvas test: 2d.pattern.image.incomplete.immediate]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html.ini
new file mode 100644
index 00000000000..b8ab4c72db7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.nosrc.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.image.incomplete.nosrc.html]
+ type: testharness
+ [Canvas test: 2d.pattern.image.incomplete.nosrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html.ini
new file mode 100644
index 00000000000..7feef17685a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.reload.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.image.incomplete.reload.html]
+ type: testharness
+ [Canvas test: 2d.pattern.image.incomplete.reload]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html.ini
new file mode 100644
index 00000000000..47dadb726d7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.image.incomplete.removedsrc.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.image.incomplete.removedsrc.html]
+ type: testharness
+ [Canvas test: 2d.pattern.image.incomplete.removedsrc]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas1.html.ini
new file mode 100644
index 00000000000..a21645a765c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas1.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.modify.canvas1.html]
+ type: testharness
+ [Canvas test: 2d.pattern.modify.canvas1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas2.html.ini
new file mode 100644
index 00000000000..7623dfd1886
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.canvas2.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.modify.canvas2.html]
+ type: testharness
+ [Canvas test: 2d.pattern.modify.canvas2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image1.html.ini
new file mode 100644
index 00000000000..498ccc84d73
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image1.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.modify.image1.html]
+ type: testharness
+ [Canvas test: 2d.pattern.modify.image1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image2.html.ini
new file mode 100644
index 00000000000..1593930977d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.modify.image2.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.modify.image2.html]
+ type: testharness
+ [Canvas test: 2d.pattern.modify.image2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html.ini
new file mode 100644
index 00000000000..e7478d8bf68
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.norepeat.basic.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.norepeat.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html.ini
new file mode 100644
index 00000000000..dd802a9aacb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord1.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.norepeat.coord1.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.norepeat.coord1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html.ini
new file mode 100644
index 00000000000..fd5586ba789
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord2.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.norepeat.coord2.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.norepeat.coord2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html.ini
new file mode 100644
index 00000000000..c1a72e7e5d2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.coord3.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.norepeat.coord3.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.norepeat.coord3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html.ini
new file mode 100644
index 00000000000..1f70fed95fc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.norepeat.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.norepeat.outside.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.norepeat.outside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html.ini
new file mode 100644
index 00000000000..d7361884b35
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.canvas.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.orientation.canvas.html]
+ type: testharness
+ [Canvas patterns do not get flipped when painted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html.ini
new file mode 100644
index 00000000000..2d1fe7cd66c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.orientation.image.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.orientation.image.html]
+ type: testharness
+ [Image patterns do not get flipped when painted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html.ini
new file mode 100644
index 00000000000..03575cb75da
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeat.basic.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeat.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html.ini
new file mode 100644
index 00000000000..25dc343f55d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord1.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeat.coord1.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeat.coord1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html.ini
new file mode 100644
index 00000000000..81ed3170e63
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord2.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeat.coord2.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeat.coord2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html.ini
new file mode 100644
index 00000000000..7e56d01152f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.coord3.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeat.coord3.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeat.coord3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html.ini
new file mode 100644
index 00000000000..7c3f94f3efc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeat.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeat.outside.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeat.outside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html.ini
new file mode 100644
index 00000000000..3026ff09ce1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeatx.basic.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeatx.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html.ini
new file mode 100644
index 00000000000..929441d8dbc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeatx.coord1.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeatx.coord1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html.ini
new file mode 100644
index 00000000000..25a8049f577
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeatx.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeatx.outside.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeatx.outside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html.ini
new file mode 100644
index 00000000000..f3437028238
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeaty.basic.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeaty.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html.ini
new file mode 100644
index 00000000000..0f1c5251d5d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.coord1.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeaty.coord1.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeaty.coord1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html.ini
new file mode 100644
index 00000000000..706dc9f16f0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.paint.repeaty.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.paint.repeaty.outside.html]
+ type: testharness
+ [Canvas test: 2d.pattern.paint.repeaty.outside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.case.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.case.html.ini
new file mode 100644
index 00000000000..24381e66fa6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.case.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.case.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.case]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.empty.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.empty.html.ini
new file mode 100644
index 00000000000..39ec1af8f9c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.empty.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.empty]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.null.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.null.html.ini
new file mode 100644
index 00000000000..1013179fffc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.null.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.null.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.null]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html.ini
new file mode 100644
index 00000000000..b70c0607866
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.nullsuffix.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.nullsuffix.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.nullsuffix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.undefined.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.undefined.html.ini
new file mode 100644
index 00000000000..51f6a595672
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.undefined.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.undefined.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.undefined]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html.ini
new file mode 100644
index 00000000000..133f469fcaa
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognised.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.unrecognised.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.unrecognised]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html.ini
new file mode 100644
index 00000000000..806b6af758d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.pattern.repeat.unrecognisednull.html.ini
@@ -0,0 +1,5 @@
+[2d.pattern.repeat.unrecognisednull.html]
+ type: testharness
+ [Canvas test: 2d.pattern.repeat.unrecognisednull]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.strokeStyle.default.html.ini b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.strokeStyle.default.html.ini
new file mode 100644
index 00000000000..035d765a4d3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/fill-and-stroke-styles/2d.strokeStyle.default.html.ini
@@ -0,0 +1,5 @@
+[2d.strokeStyle.default.html]
+ type: testharness
+ [Canvas test: 2d.strokeStyle.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini b/tests/wpt/metadata/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini
new file mode 100644
index 00000000000..cdb81ab2fb1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/hit-regions/addHitRegions-NotSupportedError-01.html.ini
@@ -0,0 +1,14 @@
+[addHitRegions-NotSupportedError-01.html]
+ type: testharness
+ [fillRect should not affect current default path and NotSupportedError should be thrown.]
+ expected: FAIL
+
+ [strokeRect should not affect current default path and NotSupportedError should be thrown.]
+ expected: FAIL
+
+ [fillText 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
+
diff --git a/tests/wpt/metadata/2dcontext/hit-regions/hitregions-members-exist.html.ini b/tests/wpt/metadata/2dcontext/hit-regions/hitregions-members-exist.html.ini
new file mode 100644
index 00000000000..ef586fa5987
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/hit-regions/hitregions-members-exist.html.ini
@@ -0,0 +1,11 @@
+[hitregions-members-exist.html]
+ type: testharness
+ [context.addHitRegion Exists]
+ expected: FAIL
+
+ [context.removeHitRegion Exists]
+ expected: FAIL
+
+ [context.clearHitRegions Exists]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/image-smoothing/imagesmoothing.html.ini b/tests/wpt/metadata/2dcontext/image-smoothing/imagesmoothing.html.ini
new file mode 100644
index 00000000000..0aa58081d2f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/image-smoothing/imagesmoothing.html.ini
@@ -0,0 +1,5 @@
+[imagesmoothing.html]
+ type: testharness
+ [When the CanvasRenderingContext2D object is created, the attribute must be set to true.]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.butt.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.butt.html.ini
new file mode 100644
index 00000000000..386a0b1cf36
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.butt.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cap.butt.html]
+ type: testharness
+ [lineCap \'butt\' is rendered correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.closed.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.closed.html.ini
new file mode 100644
index 00000000000..20856efda4e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.closed.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cap.closed.html]
+ type: testharness
+ [Line caps are not drawn at the corners of an unclosed rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.invalid.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.invalid.html.ini
new file mode 100644
index 00000000000..db30affbf67
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cap.invalid.html]
+ type: testharness
+ [Setting lineCap to invalid values is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.open.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.open.html.ini
new file mode 100644
index 00000000000..8a67e0834c0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.open.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cap.open.html]
+ type: testharness
+ [Line caps are drawn at the corners of an unclosed rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.round.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.round.html.ini
new file mode 100644
index 00000000000..d2b5a4389d9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.round.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cap.round.html]
+ type: testharness
+ [lineCap \'round\' is rendered correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.square.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.square.html.ini
new file mode 100644
index 00000000000..f33641e4ef6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cap.square.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cap.square.html]
+ type: testharness
+ [lineCap \'square\' is rendered correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.cross.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cross.html.ini
new file mode 100644
index 00000000000..ca2d0b733fd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.cross.html.ini
@@ -0,0 +1,5 @@
+[2d.line.cross.html]
+ type: testharness
+ [Canvas test: 2d.line.cross]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.defaults.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.defaults.html.ini
new file mode 100644
index 00000000000..bd72782c40b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.defaults.html.ini
@@ -0,0 +1,5 @@
+[2d.line.defaults.html]
+ type: testharness
+ [Canvas test: 2d.line.defaults]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.bevel.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.bevel.html.ini
new file mode 100644
index 00000000000..4f618507159
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.bevel.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.bevel.html]
+ type: testharness
+ [lineJoin \'bevel\' is rendered correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.closed.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.closed.html.ini
new file mode 100644
index 00000000000..15f8a96aea1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.closed.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.closed.html]
+ type: testharness
+ [Line joins are drawn at the corner of a closed rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.invalid.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.invalid.html.ini
new file mode 100644
index 00000000000..bbe08654e58
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.invalid.html]
+ type: testharness
+ [Setting lineJoin to invalid values is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.miter.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.miter.html.ini
new file mode 100644
index 00000000000..9defd450bd7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.miter.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.miter.html]
+ type: testharness
+ [lineJoin \'miter\' is rendered correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.open.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.open.html.ini
new file mode 100644
index 00000000000..2d03bf89eb5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.open.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.open.html]
+ type: testharness
+ [Line joins are not drawn at the corner of an unclosed rectangle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.parallel.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.parallel.html.ini
new file mode 100644
index 00000000000..5544f057fc5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.parallel.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.parallel.html]
+ type: testharness
+ [Line joins are drawn at 180-degree joins]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.round.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.round.html.ini
new file mode 100644
index 00000000000..9e7ffc7569b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.join.round.html.ini
@@ -0,0 +1,5 @@
+[2d.line.join.round.html]
+ type: testharness
+ [lineJoin \'round\' is rendered correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.acute.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.acute.html.ini
new file mode 100644
index 00000000000..8a4bb47701b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.acute.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.acute.html]
+ type: testharness
+ [Miter joins are drawn correctly with acute angles]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.exceeded.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.exceeded.html.ini
new file mode 100644
index 00000000000..9bfac57b79b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.exceeded.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.exceeded.html]
+ type: testharness
+ [Miter joins are not drawn when the miter limit is exceeded]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.invalid.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.invalid.html.ini
new file mode 100644
index 00000000000..90ea3c99711
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.invalid.html]
+ type: testharness
+ [Setting miterLimit to invalid values is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.obtuse.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.obtuse.html.ini
new file mode 100644
index 00000000000..8e0a2db94f8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.obtuse.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.obtuse.html]
+ type: testharness
+ [Miter joins are drawn correctly with obtuse angles]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.rightangle.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.rightangle.html.ini
new file mode 100644
index 00000000000..ec3453af662
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.rightangle.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.rightangle.html]
+ type: testharness
+ [Miter joins are not drawn when the miter limit is exceeded, on exact right angles]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.valid.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.valid.html.ini
new file mode 100644
index 00000000000..1d0e60231c0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.valid.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.valid.html]
+ type: testharness
+ [Setting miterLimit to valid values works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.within.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.within.html.ini
new file mode 100644
index 00000000000..2a555ab524e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.miter.within.html.ini
@@ -0,0 +1,5 @@
+[2d.line.miter.within.html]
+ type: testharness
+ [Miter joins are drawn when the miter limit is not quite exceeded]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.union.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.union.html.ini
new file mode 100644
index 00000000000..d3819b5f9cd
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.union.html.ini
@@ -0,0 +1,5 @@
+[2d.line.union.html]
+ type: testharness
+ [Canvas test: 2d.line.union]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.basic.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.basic.html.ini
new file mode 100644
index 00000000000..d81daf9d6a1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.line.width.basic.html]
+ type: testharness
+ [lineWidth determines the width of line strokes]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.invalid.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.invalid.html.ini
new file mode 100644
index 00000000000..e3b85032ad3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.line.width.invalid.html]
+ type: testharness
+ [Setting lineWidth to invalid values is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.scaledefault.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.scaledefault.html.ini
new file mode 100644
index 00000000000..f5ee638b6a1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.scaledefault.html.ini
@@ -0,0 +1,5 @@
+[2d.line.width.scaledefault.html]
+ type: testharness
+ [Default lineWidth strokes are affected by scale transformations]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.transformed.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.transformed.html.ini
new file mode 100644
index 00000000000..7f6d331fab2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.transformed.html.ini
@@ -0,0 +1,5 @@
+[2d.line.width.transformed.html]
+ type: testharness
+ [Line stroke widths are affected by scale transformations]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.valid.html.ini b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.valid.html.ini
new file mode 100644
index 00000000000..b2c4e676ccb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/2d.line.width.valid.html.ini
@@ -0,0 +1,5 @@
+[2d.line.width.valid.html]
+ type: testharness
+ [Setting lineWidth to valid values works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/line-styles/canvas_linestyles_linecap_001.htm.ini b/tests/wpt/metadata/2dcontext/line-styles/canvas_linestyles_linecap_001.htm.ini
new file mode 100644
index 00000000000..e880cc0b0aa
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/line-styles/canvas_linestyles_linecap_001.htm.ini
@@ -0,0 +1,5 @@
+[canvas_linestyles_linecap_001.htm]
+ type: reftest
+ reftype: ==
+ refurl: /2dcontext/line-styles/canvas_linestyles_linecap_001-ref.htm
+ expected: FAIL
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.1.html.ini
new file mode 100644
index 00000000000..2953e6f38d1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.angle.1.html]
+ type: testharness
+ [arc() draws pi/2 .. -pi anticlockwise correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.2.html.ini
new file mode 100644
index 00000000000..5f31b88915d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.angle.2.html]
+ type: testharness
+ [arc() draws -3pi/2 .. -pi anticlockwise correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.3.html.ini
new file mode 100644
index 00000000000..4ecc6d30496
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.angle.3.html]
+ type: testharness
+ [arc() wraps angles mod 2pi when anticlockwise and end > start+2pi]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.4.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.4.html.ini
new file mode 100644
index 00000000000..edee22560e6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.4.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.angle.4.html]
+ type: testharness
+ [arc() draws a full circle when clockwise and end > start+2pi]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.5.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.5.html.ini
new file mode 100644
index 00000000000..9771204e9a4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.5.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.angle.5.html]
+ type: testharness
+ [arc() wraps angles mod 2pi when clockwise and start > end+2pi]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.6.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.6.html.ini
new file mode 100644
index 00000000000..acd1ea70ae1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.angle.6.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.angle.6.html]
+ type: testharness
+ [arc() draws a full circle when anticlockwise and start > end+2pi]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.default.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.default.html.ini
new file mode 100644
index 00000000000..74e289dbd3d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.default.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.default.html]
+ type: testharness
+ [arc() with missing last argument defaults to clockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.empty.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.empty.html.ini
new file mode 100644
index 00000000000..8453ab18b35
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.empty.html]
+ type: testharness
+ [arc() with an empty path does not draw a straight line to the start point]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.end.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.end.html.ini
new file mode 100644
index 00000000000..8aa906851c8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.end.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.end.html]
+ type: testharness
+ [arc() adds the end point of the arc to the subpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini
new file mode 100644
index 00000000000..f8014c1fcfc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.negative.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.negative.html]
+ type: testharness
+ [arc() with negative radius throws INDEX_SIZE_ERR]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonempty.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonempty.html.ini
new file mode 100644
index 00000000000..7855f8b17d1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonempty.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.nonempty.html]
+ type: testharness
+ [arc() with a non-empty path does draw a straight line to the start point]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonfinite.html.ini
new file mode 100644
index 00000000000..3f87ba6bcad
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.nonfinite.html]
+ type: testharness
+ [arc() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.1.html.ini
new file mode 100644
index 00000000000..bc22f19de6b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.scale.1.html]
+ type: testharness
+ [Non-uniformly scaled arcs are the right shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.2.html.ini
new file mode 100644
index 00000000000..457a90e47be
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.scale.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.scale.2.html]
+ type: testharness
+ [Highly scaled arcs are the right shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini
new file mode 100644
index 00000000000..64fb4beeedc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.selfintersect.1.html]
+ type: testharness
+ [arc() with lineWidth > 2*radius is drawn sensibly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini
new file mode 100644
index 00000000000..f0aa0f59ab3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.selfintersect.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.selfintersect.2.html]
+ type: testharness
+ [arc() with lineWidth > 2*radius is drawn sensibly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.1.html.ini
new file mode 100644
index 00000000000..005cb67064a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.shape.1.html]
+ type: testharness
+ [arc() from 0 to pi does not draw anything in the wrong half]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.2.html.ini
new file mode 100644
index 00000000000..eca2267ee9e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.shape.2.html]
+ type: testharness
+ [arc() from 0 to pi draws stuff in the right half]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.3.html.ini
new file mode 100644
index 00000000000..9b7071262b9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.shape.3.html]
+ type: testharness
+ [arc() from 0 to -pi/2 does not draw anything in the wrong quadrant]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.4.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.4.html.ini
new file mode 100644
index 00000000000..a9441c8ff7b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.4.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.shape.4.html]
+ type: testharness
+ [arc() from 0 to -pi/2 draws stuff in the right quadrant]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.5.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.5.html.ini
new file mode 100644
index 00000000000..7e2e20baf52
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.shape.5.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.shape.5.html]
+ type: testharness
+ [arc() from 0 to 5pi does not draw crazy things]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.1.html.ini
new file mode 100644
index 00000000000..de2110b0beb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.twopie.1.html]
+ type: testharness
+ [arc() draws nothing when end = start + 2pi-e and anticlockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.2.html.ini
new file mode 100644
index 00000000000..deed1c408ec
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.twopie.2.html]
+ type: testharness
+ [arc() draws a full circle when end = start + 2pi-e and clockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.3.html.ini
new file mode 100644
index 00000000000..eb1a8875b19
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.twopie.3.html]
+ type: testharness
+ [arc() draws a full circle when end = start + 2pi+e and anticlockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.4.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.4.html.ini
new file mode 100644
index 00000000000..9b60546068c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.twopie.4.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.twopie.4.html]
+ type: testharness
+ [arc() draws nothing when end = start + 2pi+e and clockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.1.html.ini
new file mode 100644
index 00000000000..b0c2394bb03
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.zero.1.html]
+ type: testharness
+ [arc() draws nothing when startAngle = endAngle and anticlockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.2.html.ini
new file mode 100644
index 00000000000..9b1dd1a715b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zero.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.zero.2.html]
+ type: testharness
+ [arc() draws nothing when startAngle = endAngle and clockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zeroradius.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zeroradius.html.ini
new file mode 100644
index 00000000000..c0d7eb76e57
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arc.zeroradius.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arc.zeroradius.html]
+ type: testharness
+ [arc() with zero radius draws a line to the start point]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.1.html.ini
new file mode 100644
index 00000000000..48de25791b4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.coincide.1.html]
+ type: testharness
+ [arcTo() has no effect if P0 = P1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.2.html.ini
new file mode 100644
index 00000000000..916ac446886
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.coincide.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.coincide.2.html]
+ type: testharness
+ [arcTo() draws a straight line to P1 if P1 = P2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.1.html.ini
new file mode 100644
index 00000000000..6196beb9176
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.collinear.1.html]
+ type: testharness
+ [arcTo() with all points on a line, and P1 between P0/P2, draws a straight line to P1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.2.html.ini
new file mode 100644
index 00000000000..85fbca77e84
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.collinear.2.html]
+ type: testharness
+ [arcTo() with all points on a line, and P2 between P0/P1, draws a straight line to P1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.3.html.ini
new file mode 100644
index 00000000000..f1faf63dde5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.collinear.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.collinear.3.html]
+ type: testharness
+ [arcTo() with all points on a line, and P0 between P1/P2, draws a straight line to P1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.1.html.ini
new file mode 100644
index 00000000000..1f530b60b13
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.ensuresubpath.1.html]
+ type: testharness
+ [If there is no subpath, the first control point is added (and nothing is drawn up to it)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.2.html.ini
new file mode 100644
index 00000000000..a0dd9521cd8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.ensuresubpath.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.ensuresubpath.2.html]
+ type: testharness
+ [If there is no subpath, the first control point is added]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.negative.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.negative.html.ini
new file mode 100644
index 00000000000..a95f562affc
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.negative.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.negative.html]
+ type: testharness
+ [arcTo() with negative radius throws an exception]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.nonfinite.html.ini
new file mode 100644
index 00000000000..9edb4bf29ef
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.nonfinite.html]
+ type: testharness
+ [arcTo() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.scale.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.scale.html.ini
new file mode 100644
index 00000000000..9176d25b683
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.scale.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.scale.html]
+ type: testharness
+ [arcTo scales the curve, not just the control points]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve1.html.ini
new file mode 100644
index 00000000000..170abb8500e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.shape.curve1.html]
+ type: testharness
+ [arcTo() curves in the right kind of shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve2.html.ini
new file mode 100644
index 00000000000..3ceefeb7d1a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.curve2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.shape.curve2.html]
+ type: testharness
+ [arcTo() curves in the right kind of shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.end.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.end.html.ini
new file mode 100644
index 00000000000..019012629ca
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.end.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.shape.end.html]
+ type: testharness
+ [arcTo() does not draw anything from P1 to P2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.start.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.start.html.ini
new file mode 100644
index 00000000000..69a3f30735b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.shape.start.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.shape.start.html]
+ type: testharness
+ [arcTo() draws a straight line from P0 to P1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.transformation.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.transformation.html.ini
new file mode 100644
index 00000000000..3f170878e71
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.transformation.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.transformation.html]
+ type: testharness
+ [arcTo joins up to the last subpath point correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.1.html.ini
new file mode 100644
index 00000000000..4bea8f4b115
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.zero.1.html]
+ type: testharness
+ [arcTo() with zero radius draws a straight line from P0 to P1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.2.html.ini
new file mode 100644
index 00000000000..7570e15e03a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.arcTo.zero.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.arcTo.zero.2.html]
+ type: testharness
+ [arcTo() with zero radius draws a straight line from P0 to P1, even when all points are collinear]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.beginPath.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.beginPath.html.ini
new file mode 100644
index 00000000000..9dba6a39c78
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.beginPath.html.ini
@@ -0,0 +1,5 @@
+[2d.path.beginPath.html]
+ type: testharness
+ [Canvas test: 2d.path.beginPath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.basic.html.ini
new file mode 100644
index 00000000000..51f7febafc4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.bezierCurveTo.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.bezierCurveTo.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.1.html.ini
new file mode 100644
index 00000000000..040e0d40e74
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.bezierCurveTo.ensuresubpath.1.html]
+ type: testharness
+ [If there is no subpath, the first control point is added (and nothing is drawn up to it)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.2.html.ini
new file mode 100644
index 00000000000..706725605f5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.ensuresubpath.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.bezierCurveTo.ensuresubpath.2.html]
+ type: testharness
+ [If there is no subpath, the first control point is added]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.nonfinite.html.ini
new file mode 100644
index 00000000000..3e6cdd5d089
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.bezierCurveTo.nonfinite.html]
+ type: testharness
+ [bezierCurveTo() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.scaled.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.scaled.html.ini
new file mode 100644
index 00000000000..438a372be12
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.scaled.html.ini
@@ -0,0 +1,5 @@
+[2d.path.bezierCurveTo.scaled.html]
+ type: testharness
+ [Canvas test: 2d.path.bezierCurveTo.scaled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.shape.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.shape.html.ini
new file mode 100644
index 00000000000..90b2a0bee97
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.bezierCurveTo.shape.html.ini
@@ -0,0 +1,5 @@
+[2d.path.bezierCurveTo.shape.html]
+ type: testharness
+ [Canvas test: 2d.path.bezierCurveTo.shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.1.html.ini
new file mode 100644
index 00000000000..c831b3ffb3e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.basic.1.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.basic.1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.2.html.ini
new file mode 100644
index 00000000000..8aa80f7fe73
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.basic.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.basic.2.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.basic.2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.empty.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.empty.html.ini
new file mode 100644
index 00000000000..b9f51bde836
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.empty.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.empty]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.intersect.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.intersect.html.ini
new file mode 100644
index 00000000000..786916e63f3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.intersect.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.intersect.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.intersect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.unaffected.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.unaffected.html.ini
new file mode 100644
index 00000000000..5cc73cbf53c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.unaffected.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.unaffected]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.1.html.ini
new file mode 100644
index 00000000000..9727f314b4f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.winding.1.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.winding.1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.2.html.ini
new file mode 100644
index 00000000000..340a096ce70
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.clip.winding.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.clip.winding.2.html]
+ type: testharness
+ [Canvas test: 2d.path.clip.winding.2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.newline.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.newline.html.ini
new file mode 100644
index 00000000000..72c6c30fb79
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.newline.html.ini
@@ -0,0 +1,5 @@
+[2d.path.closePath.newline.html]
+ type: testharness
+ [Canvas test: 2d.path.closePath.newline]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.nextpoint.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.nextpoint.html.ini
new file mode 100644
index 00000000000..b79e0fc4396
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.closePath.nextpoint.html.ini
@@ -0,0 +1,5 @@
+[2d.path.closePath.nextpoint.html]
+ type: testharness
+ [Canvas test: 2d.path.closePath.nextpoint]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.basic.html.ini
new file mode 100644
index 00000000000..260b452ebd5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.closed.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.closed.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.unaffected.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.unaffected.html.ini
new file mode 100644
index 00000000000..68acf76f5c9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.closed.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.closed.unaffected.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.closed.unaffected]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.overlap.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.overlap.html.ini
new file mode 100644
index 00000000000..ed2f2f9b29a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.overlap.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.overlap.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.overlap]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.add.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.add.html.ini
new file mode 100644
index 00000000000..6a8c520f42e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.add.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.winding.add.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.winding.add]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.1.html.ini
new file mode 100644
index 00000000000..f36e3187c4f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.winding.subtract.1.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.winding.subtract.1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.2.html.ini
new file mode 100644
index 00000000000..b46ed107dd7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.winding.subtract.2.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.winding.subtract.2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.3.html.ini
new file mode 100644
index 00000000000..6e219ce6feb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.fill.winding.subtract.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.fill.winding.subtract.3.html]
+ type: testharness
+ [Canvas test: 2d.path.fill.winding.subtract.3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.arc.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.arc.html.ini
new file mode 100644
index 00000000000..832c2665fba
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.arc.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.arc.html]
+ type: testharness
+ [isPointInPath() works on arcs]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.1.html.ini
new file mode 100644
index 00000000000..7d715e75658
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.basic.1.html]
+ type: testharness
+ [isPointInPath() detects whether the point is inside the path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.2.html.ini
new file mode 100644
index 00000000000..b42c7712c51
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.basic.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.basic.2.html]
+ type: testharness
+ [isPointInPath() detects whether the point is inside the path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bezier.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bezier.html.ini
new file mode 100644
index 00000000000..9235849a8a9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bezier.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.bezier.html]
+ type: testharness
+ [isPointInPath() works on Bezier curves]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bigarc.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bigarc.html.ini
new file mode 100644
index 00000000000..341b9bd460f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.bigarc.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.bigarc.html]
+ type: testharness
+ [isPointInPath() works on unclosed arcs larger than 2pi]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.edge.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.edge.html.ini
new file mode 100644
index 00000000000..e4cb413b5ba
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.edge.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.edge.html]
+ type: testharness
+ [isPointInPath() counts points on the path as being inside]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.empty.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.empty.html.ini
new file mode 100644
index 00000000000..8ab421be7ad
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.empty.html]
+ type: testharness
+ [isPointInPath() works when there is no path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.nonfinite.html.ini
new file mode 100644
index 00000000000..c79f039d929
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.nonfinite.html]
+ type: testharness
+ [isPointInPath() returns false for non-finite arguments]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.outside.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.outside.html.ini
new file mode 100644
index 00000000000..4038b3af6c7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.outside.html]
+ type: testharness
+ [isPointInPath() works on paths outside the canvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.subpath.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.subpath.html.ini
new file mode 100644
index 00000000000..401d0f6632c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.subpath.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.subpath.html]
+ type: testharness
+ [isPointInPath() uses the current path, not just the subpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.1.html.ini
new file mode 100644
index 00000000000..c65142a293d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.transform.1.html]
+ type: testharness
+ [isPointInPath() handles transformations correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.2.html.ini
new file mode 100644
index 00000000000..52e5f19ca7d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.transform.2.html]
+ type: testharness
+ [isPointInPath() handles transformations correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.3.html.ini
new file mode 100644
index 00000000000..dbf9afc61de
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.transform.3.html]
+ type: testharness
+ [isPointInPath() handles transformations correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.4.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.4.html.ini
new file mode 100644
index 00000000000..9e3698f4221
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.transform.4.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.transform.4.html]
+ type: testharness
+ [isPointInPath() handles transformations correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.unclosed.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.unclosed.html.ini
new file mode 100644
index 00000000000..5f3b65f58f0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.unclosed.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.unclosed.html]
+ type: testharness
+ [isPointInPath() works on unclosed subpaths]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.winding.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.winding.html.ini
new file mode 100644
index 00000000000..37b8eac6e2a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.isPointInPath.winding.html.ini
@@ -0,0 +1,5 @@
+[2d.path.isPointInPath.winding.html]
+ type: testharness
+ [isPointInPath() uses the non-zero winding number rule]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.basic.html.ini
new file mode 100644
index 00000000000..9ad2b96500c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.lineTo.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.lineTo.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.1.html.ini
new file mode 100644
index 00000000000..7fe70780084
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.lineTo.ensuresubpath.1.html]
+ type: testharness
+ [If there is no subpath, the point is added and nothing is drawn]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.2.html.ini
new file mode 100644
index 00000000000..87c2f5be4b0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.ensuresubpath.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.lineTo.ensuresubpath.2.html]
+ type: testharness
+ [If there is no subpath, the point is added and used for subsequent drawing]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nextpoint.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nextpoint.html.ini
new file mode 100644
index 00000000000..0fdb557edc2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nextpoint.html.ini
@@ -0,0 +1,5 @@
+[2d.path.lineTo.nextpoint.html]
+ type: testharness
+ [Canvas test: 2d.path.lineTo.nextpoint]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nonfinite.html.ini
new file mode 100644
index 00000000000..a40bdb285b9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.lineTo.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.lineTo.nonfinite.html]
+ type: testharness
+ [lineTo() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.basic.html.ini
new file mode 100644
index 00000000000..09fcdf36b81
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.moveTo.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.moveTo.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.multiple.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.multiple.html.ini
new file mode 100644
index 00000000000..88ed837c51c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.multiple.html.ini
@@ -0,0 +1,5 @@
+[2d.path.moveTo.multiple.html]
+ type: testharness
+ [Canvas test: 2d.path.moveTo.multiple]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.nonfinite.html.ini
new file mode 100644
index 00000000000..8d6dd344381
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.moveTo.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.moveTo.nonfinite.html]
+ type: testharness
+ [moveTo() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.basic.html.ini
new file mode 100644
index 00000000000..d3b625a5d54
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.quadraticCurveTo.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.quadraticCurveTo.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.1.html.ini
new file mode 100644
index 00000000000..0a1545fe4c2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.quadraticCurveTo.ensuresubpath.1.html]
+ type: testharness
+ [If there is no subpath, the first control point is added (and nothing is drawn up to it)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.2.html.ini
new file mode 100644
index 00000000000..393a15509f0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.ensuresubpath.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.quadraticCurveTo.ensuresubpath.2.html]
+ type: testharness
+ [If there is no subpath, the first control point is added]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.nonfinite.html.ini
new file mode 100644
index 00000000000..5f47e04b2f7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.quadraticCurveTo.nonfinite.html]
+ type: testharness
+ [quadraticCurveTo() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.scaled.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.scaled.html.ini
new file mode 100644
index 00000000000..b5866f7763b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.scaled.html.ini
@@ -0,0 +1,5 @@
+[2d.path.quadraticCurveTo.scaled.html]
+ type: testharness
+ [Canvas test: 2d.path.quadraticCurveTo.scaled]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.shape.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.shape.html.ini
new file mode 100644
index 00000000000..46cd3f28585
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.quadraticCurveTo.shape.html.ini
@@ -0,0 +1,5 @@
+[2d.path.quadraticCurveTo.shape.html]
+ type: testharness
+ [Canvas test: 2d.path.quadraticCurveTo.shape]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.basic.html.ini
new file mode 100644
index 00000000000..0abc294400a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.closed.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.closed.html.ini
new file mode 100644
index 00000000000..998dd532bc5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.closed.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.closed.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.closed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.1.html.ini
new file mode 100644
index 00000000000..24ffbf09995
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.end.1.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.end.1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.2.html.ini
new file mode 100644
index 00000000000..c1fc1a7218a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.end.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.end.2.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.end.2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.negative.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.negative.html.ini
new file mode 100644
index 00000000000..9abbc1efdae
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.negative.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.negative.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.negative]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.newsubpath.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.newsubpath.html.ini
new file mode 100644
index 00000000000..a686aeaa694
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.newsubpath.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.newsubpath.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.newsubpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.nonfinite.html.ini
new file mode 100644
index 00000000000..3e9d98ef623
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.nonfinite.html]
+ type: testharness
+ [rect() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.selfintersect.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.selfintersect.html.ini
new file mode 100644
index 00000000000..ba5026a5284
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.selfintersect.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.selfintersect.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.selfintersect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.winding.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.winding.html.ini
new file mode 100644
index 00000000000..9d513c9678f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.winding.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.winding.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.winding]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.1.html.ini
new file mode 100644
index 00000000000..4d0ceb9e0a0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.zero.1.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.zero.1]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.2.html.ini
new file mode 100644
index 00000000000..62cf2bed704
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.zero.2.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.zero.2]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.3.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.3.html.ini
new file mode 100644
index 00000000000..ba8f7d7aee6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.3.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.zero.3.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.zero.3]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.4.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.4.html.ini
new file mode 100644
index 00000000000..510e9f6960e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.4.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.zero.4.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.zero.4]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.5.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.5.html.ini
new file mode 100644
index 00000000000..b35c28f56d9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.5.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.zero.5.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.zero.5]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.6.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.6.html.ini
new file mode 100644
index 00000000000..89e66cb7e8e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.rect.zero.6.html.ini
@@ -0,0 +1,5 @@
+[2d.path.rect.zero.6.html]
+ type: testharness
+ [Canvas test: 2d.path.rect.zero.6]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.empty.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.empty.html.ini
new file mode 100644
index 00000000000..0582bcd1000
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.empty.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.empty.html]
+ type: testharness
+ [Empty subpaths are not stroked]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.overlap.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.overlap.html.ini
new file mode 100644
index 00000000000..cc7b9903abe
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.overlap.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.overlap.html]
+ type: testharness
+ [Stroked subpaths are combined before being drawn]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.arc.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.arc.html.ini
new file mode 100644
index 00000000000..d0d5286768b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.arc.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.prune.arc.html]
+ type: testharness
+ [Zero-length line segments from arcTo and arc are removed before stroking]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.closed.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.closed.html.ini
new file mode 100644
index 00000000000..e725f778232
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.closed.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.prune.closed.html]
+ type: testharness
+ [Zero-length line segments from closed paths are removed before stroking]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.corner.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.corner.html.ini
new file mode 100644
index 00000000000..42da280f6e4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.corner.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.prune.corner.html]
+ type: testharness
+ [Zero-length line segments are removed before stroking with miters]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.curve.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.curve.html.ini
new file mode 100644
index 00000000000..8c0ce9d70c1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.curve.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.prune.curve.html]
+ type: testharness
+ [Zero-length line segments from quadraticCurveTo and bezierCurveTo are removed before stroking]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.line.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.line.html.ini
new file mode 100644
index 00000000000..5a56734aad4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.line.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.prune.line.html]
+ type: testharness
+ [Zero-length line segments from lineTo are removed before stroking]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.rect.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.rect.html.ini
new file mode 100644
index 00000000000..129a2d6d000
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.prune.rect.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.prune.rect.html]
+ type: testharness
+ [Zero-length line segments from rect and strokeRect are removed before stroking]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale1.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale1.html.ini
new file mode 100644
index 00000000000..50af8df36ee
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale1.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.scale1.html]
+ type: testharness
+ [Stroke line widths are scaled by the current transformation matrix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale2.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale2.html.ini
new file mode 100644
index 00000000000..4b2184e8d7e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.scale2.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.scale2.html]
+ type: testharness
+ [Stroke line widths are scaled by the current transformation matrix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.skew.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.skew.html.ini
new file mode 100644
index 00000000000..418266dccc2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.skew.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.skew.html]
+ type: testharness
+ [Strokes lines are skewed by the current transformation matrix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.unaffected.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.unaffected.html.ini
new file mode 100644
index 00000000000..b79fc7eb008
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.unaffected.html]
+ type: testharness
+ [Stroking does not start a new path or subpath]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.union.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.union.html.ini
new file mode 100644
index 00000000000..b539c394b03
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.stroke.union.html.ini
@@ -0,0 +1,5 @@
+[2d.path.stroke.union.html]
+ type: testharness
+ [Strokes in opposite directions are unioned, not subtracted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.basic.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.basic.html.ini
new file mode 100644
index 00000000000..e6cec3c806d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.path.transformation.basic.html]
+ type: testharness
+ [Canvas test: 2d.path.transformation.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.changing.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.changing.html.ini
new file mode 100644
index 00000000000..13e13c05992
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.changing.html.ini
@@ -0,0 +1,5 @@
+[2d.path.transformation.changing.html]
+ type: testharness
+ [Transformations are applied while building paths, not when drawing]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.multiple.html.ini b/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.multiple.html.ini
new file mode 100644
index 00000000000..b59844f2c8c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/path-objects/2d.path.transformation.multiple.html.ini
@@ -0,0 +1,5 @@
+[2d.path.transformation.multiple.html]
+ type: testharness
+ [Transformations are applied while building paths, not when drawing]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
new file mode 100644
index 00000000000..9283a342c7b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.create2.nonfinite.html]
+ type: testharness
+ [createImageData() throws TypeError if arguments are not finite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.tiny.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.tiny.html.ini
new file mode 100644
index 00000000000..4c8c24b530d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.create2.tiny.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.create2.tiny.html]
+ type: testharness
+ [createImageData(sw, sh) works for sizes smaller than one pixel]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.clamp.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.clamp.html.ini
new file mode 100644
index 00000000000..92fa884db90
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.clamp.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.get.clamp.html]
+ type: testharness
+ [getImageData() clamps colours to the range [0, 255\]]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
new file mode 100644
index 00000000000..dee5527cb27
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.get.nonfinite.html]
+ type: testharness
+ [getImageData() throws TypeError if arguments are not finite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini
new file mode 100644
index 00000000000..9a25dae1b16
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.nonpremul.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.get.nonpremul.html]
+ type: testharness
+ [getImageData() returns non-premultiplied colours]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini
new file mode 100644
index 00000000000..cc64f5ee17a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.source.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.get.source.outside.html]
+ type: testharness
+ [getImageData() returns transparent black outside the canvas]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.tiny.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.tiny.html.ini
new file mode 100644
index 00000000000..cafc902fd91
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.tiny.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.get.tiny.html]
+ type: testharness
+ [getImageData() works for sizes smaller than one pixel]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.unaffected.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.unaffected.html.ini
new file mode 100644
index 00000000000..957c4342e8e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.get.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.get.unaffected.html]
+ type: testharness
+ [getImageData() is not affected by context state]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.alpha.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.alpha.html.ini
new file mode 100644
index 00000000000..db809e5d44b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.put.alpha.html]
+ type: testharness
+ [putImageData() puts non-solid image data correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.clip.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.clip.html.ini
new file mode 100644
index 00000000000..cd173c1349d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.clip.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.put.clip.html]
+ type: testharness
+ [putImageData() is not affected by clipping regions]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
new file mode 100644
index 00000000000..e0f83c5951d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.put.nonfinite.html]
+ type: testharness
+ [putImageData() throws TypeError if arguments are not finite]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.path.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.path.html.ini
new file mode 100644
index 00000000000..ac486347a73
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.path.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.put.path.html]
+ type: testharness
+ [putImageData() does not affect the current path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unaffected.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unaffected.html.ini
new file mode 100644
index 00000000000..c94f03f47b6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unaffected.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.put.unaffected.html]
+ type: testharness
+ [putImageData() is not affected by context state]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini
new file mode 100644
index 00000000000..587c1305293
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/pixel-manipulation/2d.imageData.put.unchanged.html.ini
@@ -0,0 +1,5 @@
+[2d.imageData.put.unchanged.html]
+ type: testharness
+ [putImageData(getImageData(...), ...) has no effect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.2.html.ini
new file mode 100644
index 00000000000..35a6e6b5c5f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.alpha.2.html]
+ type: testharness
+ [Shadow colour alpha components are used]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.3.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.3.html.ini
new file mode 100644
index 00000000000..7b37ea90c2d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.3.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.alpha.3.html]
+ type: testharness
+ [Shadows are affected by globalAlpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.4.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.4.html.ini
new file mode 100644
index 00000000000..a6fd4c6f50b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.4.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.alpha.4.html]
+ type: testharness
+ [Shadows with alpha components are correctly affected by globalAlpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.5.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.5.html.ini
new file mode 100644
index 00000000000..8191fe10430
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.alpha.5.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.alpha.5.html]
+ type: testharness
+ [Shadows of shapes with alpha components are drawn correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.initial.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.initial.html.ini
new file mode 100644
index 00000000000..656c915e09e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.initial.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowBlur.initial.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowBlur.initial]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.invalid.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.invalid.html.ini
new file mode 100644
index 00000000000..b0b66d20951
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowBlur.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowBlur.invalid.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowBlur.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.initial.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.initial.html.ini
new file mode 100644
index 00000000000..62b49e7faad
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.initial.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowColor.initial.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowColor.initial]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.invalid.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.invalid.html.ini
new file mode 100644
index 00000000000..27cd205c82d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowColor.invalid.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowColor.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.valid.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.valid.html.ini
new file mode 100644
index 00000000000..f44dd1df35d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowColor.valid.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowColor.valid.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowColor.valid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.initial.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.initial.html.ini
new file mode 100644
index 00000000000..4566136259b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.initial.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowOffset.initial.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowOffset.initial]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.invalid.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.invalid.html.ini
new file mode 100644
index 00000000000..2a19d5ceb6c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.attributes.shadowOffset.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.attributes.shadowOffset.invalid.html]
+ type: testharness
+ [Canvas test: 2d.shadow.attributes.shadowOffset.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini
new file mode 100644
index 00000000000..ea471331390
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.canvas.alpha.html]
+ type: testharness
+ [Shadows are drawn correctly for partially-transparent canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.basic.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.basic.html.ini
new file mode 100644
index 00000000000..b3f3e9447c9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.canvas.basic.html]
+ type: testharness
+ [Shadows are drawn for canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.1.html.ini
new file mode 100644
index 00000000000..e63cfb92258
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.canvas.transparent.1.html]
+ type: testharness
+ [Shadows are not drawn for transparent canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini
new file mode 100644
index 00000000000..b3623a00589
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.canvas.transparent.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.canvas.transparent.2.html]
+ type: testharness
+ [Shadows are not drawn for transparent parts of canvases]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.1.html.ini
new file mode 100644
index 00000000000..4483183bb64
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.clip.1.html]
+ type: testharness
+ [Shadows of clipped shapes are still drawn within the clipping region]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.2.html.ini
new file mode 100644
index 00000000000..5a5707158f3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.clip.2.html]
+ type: testharness
+ [Shadows are not drawn outside the clipping region]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.3.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.3.html.ini
new file mode 100644
index 00000000000..be2049d5433
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.clip.3.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.clip.3.html]
+ type: testharness
+ [Shadows of clipped shapes are still drawn within the clipping region]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.blur.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.blur.html.ini
new file mode 100644
index 00000000000..275f0cc3e18
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.blur.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.enable.blur.html]
+ type: testharness
+ [Shadows are drawn if shadowBlur is set]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.x.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.x.html.ini
new file mode 100644
index 00000000000..5c9a8b6fcff
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.x.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.enable.x.html]
+ type: testharness
+ [Shadows are drawn if shadowOffsetX is set]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.y.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.y.html.ini
new file mode 100644
index 00000000000..650676bd036
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.enable.y.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.enable.y.html]
+ type: testharness
+ [Shadows are drawn if shadowOffsetY is set]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini
new file mode 100644
index 00000000000..bf87275775c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.gradient.alpha.html]
+ type: testharness
+ [Shadows are drawn correctly for partially-transparent gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.basic.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.basic.html.ini
new file mode 100644
index 00000000000..f0050cf43df
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.gradient.basic.html]
+ type: testharness
+ [Shadows are drawn for gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.1.html.ini
new file mode 100644
index 00000000000..f52099df851
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.gradient.transparent.1.html]
+ type: testharness
+ [Shadows are not drawn for transparent gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini
new file mode 100644
index 00000000000..2c237d44166
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.gradient.transparent.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.gradient.transparent.2.html]
+ type: testharness
+ [Shadows are not drawn for transparent parts of gradient fills]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.alpha.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.alpha.html.ini
new file mode 100644
index 00000000000..a5ec5f3d68a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.image.alpha.html]
+ type: testharness
+ [Shadows are drawn correctly for partially-transparent images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.basic.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.basic.html.ini
new file mode 100644
index 00000000000..173a3ae64db
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.image.basic.html]
+ type: testharness
+ [Shadows are drawn for images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.scale.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.scale.html.ini
new file mode 100644
index 00000000000..dcc98242c10
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.scale.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.image.scale.html]
+ type: testharness
+ [Shadows are drawn correctly for scaled images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.section.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.section.html.ini
new file mode 100644
index 00000000000..4bedaf32833
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.section.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.image.section.html]
+ type: testharness
+ [Shadows are not drawn for areas outside image source rectangles]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.1.html.ini
new file mode 100644
index 00000000000..0798e2c6553
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.image.transparent.1.html]
+ type: testharness
+ [Shadows are not drawn for transparent images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini
new file mode 100644
index 00000000000..4b5b797c037
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.image.transparent.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.image.transparent.2.html]
+ type: testharness
+ [Shadows are not drawn for transparent parts of images]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini
new file mode 100644
index 00000000000..a1d8f085f8e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeX.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.offset.negativeX.html]
+ type: testharness
+ [Shadows can be offset with negative x]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini
new file mode 100644
index 00000000000..97eaa6496b4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.negativeY.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.offset.negativeY.html]
+ type: testharness
+ [Shadows can be offset with negative y]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini
new file mode 100644
index 00000000000..fa440bc4d24
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveX.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.offset.positiveX.html]
+ type: testharness
+ [Shadows can be offset with positive x]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini
new file mode 100644
index 00000000000..b1a28912095
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.offset.positiveY.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.offset.positiveY.html]
+ type: testharness
+ [Shadows can be offset with positive y]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.outside.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.outside.html.ini
new file mode 100644
index 00000000000..327adac4ee3
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.outside.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.outside.html]
+ type: testharness
+ [Shadows of shapes outside the visible area can be offset onto the visible area]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini
new file mode 100644
index 00000000000..186a634202c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.alpha.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.pattern.alpha.html]
+ type: testharness
+ [Shadows are drawn correctly for partially-transparent fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.basic.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.basic.html.ini
new file mode 100644
index 00000000000..b54302d2613
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.pattern.basic.html]
+ type: testharness
+ [Shadows are drawn for fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.1.html.ini
new file mode 100644
index 00000000000..11aba1fd214
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.pattern.transparent.1.html]
+ type: testharness
+ [Shadows are not drawn for transparent fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini
new file mode 100644
index 00000000000..1766a1b8c4e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.pattern.transparent.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.pattern.transparent.2.html]
+ type: testharness
+ [Shadows are not drawn for transparent parts of fill patterns]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.basic.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.basic.html.ini
new file mode 100644
index 00000000000..7f125d2b500
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.stroke.basic.html]
+ type: testharness
+ [Shadows are drawn for strokes]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.1.html.ini
new file mode 100644
index 00000000000..eae9eb9866b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.stroke.cap.1.html]
+ type: testharness
+ [Shadows are not drawn for areas outside stroke caps]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini
new file mode 100644
index 00000000000..733a4c82939
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.cap.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.stroke.cap.2.html]
+ type: testharness
+ [Shadows are drawn for stroke caps]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.1.html.ini
new file mode 100644
index 00000000000..252b5d3ac0e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.stroke.join.1.html]
+ type: testharness
+ [Shadows are not drawn for areas outside stroke joins]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini
new file mode 100644
index 00000000000..231f92dfa02
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.stroke.join.2.html]
+ type: testharness
+ [Shadows are drawn for stroke joins]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.3.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.3.html.ini
new file mode 100644
index 00000000000..c0560c8aaba
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.stroke.join.3.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.stroke.join.3.html]
+ type: testharness
+ [Shadows are drawn for stroke joins respecting miter limit]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.1.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.1.html.ini
new file mode 100644
index 00000000000..3bccb3361c6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.1.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.transform.1.html]
+ type: testharness
+ [Shadows take account of transformations]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.2.html.ini b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.2.html.ini
new file mode 100644
index 00000000000..01adf37c669
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/shadows/2d.shadow.transform.2.html.ini
@@ -0,0 +1,5 @@
+[2d.shadow.transform.2.html]
+ type: testharness
+ [Shadow offsets are not affected by transformations]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.align.default.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.align.default.html.ini
new file mode 100644
index 00000000000..436b33901d0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.align.default.html.ini
@@ -0,0 +1,5 @@
+[2d.text.align.default.html]
+ type: testharness
+ [Canvas test: 2d.text.align.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.align.invalid.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.align.invalid.html.ini
new file mode 100644
index 00000000000..1dcbd02d882
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.align.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.text.align.invalid.html]
+ type: testharness
+ [Canvas test: 2d.text.align.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.default.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.default.html.ini
new file mode 100644
index 00000000000..a06e52da7ec
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.default.html.ini
@@ -0,0 +1,5 @@
+[2d.text.baseline.default.html]
+ type: testharness
+ [Canvas test: 2d.text.baseline.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.invalid.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.invalid.html.ini
new file mode 100644
index 00000000000..ca09c15401e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.baseline.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.text.baseline.invalid.html]
+ type: testharness
+ [Canvas test: 2d.text.baseline.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini
new file mode 100644
index 00000000000..7d488e64183
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.bottom.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.baseline.bottom.html]
+ type: testharness
+ [textBaseline bottom is the bottom of the em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini
new file mode 100644
index 00000000000..9077975527b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.hanging.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.baseline.hanging.html]
+ type: testharness
+ [Canvas test: 2d.text.draw.baseline.hanging]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini
new file mode 100644
index 00000000000..266246fff96
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.ideographic.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.baseline.ideographic.html]
+ type: testharness
+ [Canvas test: 2d.text.draw.baseline.ideographic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini
new file mode 100644
index 00000000000..8814c65ceac
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.middle.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.baseline.middle.html]
+ type: testharness
+ [textBaseline middle is the middle of the em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini
new file mode 100644
index 00000000000..28eeb811902
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.baseline.top.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.baseline.top.html]
+ type: testharness
+ [textBaseline top is the top of the em square (not the bounding box)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini
new file mode 100644
index 00000000000..6c31ffa39f4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.end.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.space.collapse.end.html]
+ type: testharness
+ [Space characters at the end of a line are collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini
new file mode 100644
index 00000000000..30ac0236634
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.other.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.space.collapse.other.html]
+ type: testharness
+ [Space characters are converted to U+0020, and collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini
new file mode 100644
index 00000000000..5d1f16b3c8a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.space.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.space.collapse.space.html]
+ type: testharness
+ [Space characters are converted to U+0020, and collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini
new file mode 100644
index 00000000000..721814a257f
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.draw.space.collapse.start.html.ini
@@ -0,0 +1,5 @@
+[2d.text.draw.space.collapse.start.html]
+ type: testharness
+ [Space characters at the start of a line are collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.default.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.default.html.ini
new file mode 100644
index 00000000000..cdac5e01b6b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.default.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.default.html]
+ type: testharness
+ [Canvas test: 2d.text.font.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.basic.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.basic.html.ini
new file mode 100644
index 00000000000..8fdf7be8311
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.basic.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.parse.basic.html]
+ type: testharness
+ [Canvas test: 2d.text.font.parse.basic]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.complex.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.complex.html.ini
new file mode 100644
index 00000000000..95b8119f1e7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.complex.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.parse.complex.html]
+ type: testharness
+ [Canvas test: 2d.text.font.parse.complex]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini
new file mode 100644
index 00000000000..d3c9b75da36
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.invalid.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.parse.invalid.html]
+ type: testharness
+ [Canvas test: 2d.text.font.parse.invalid]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini
new file mode 100644
index 00000000000..d557fc48e7d
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.default.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.parse.size.percentage.default.html]
+ type: testharness
+ [Canvas test: 2d.text.font.parse.size.percentage.default]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini
new file mode 100644
index 00000000000..101870cf26b
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.size.percentage.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.parse.size.percentage.html]
+ type: testharness
+ [Canvas test: 2d.text.font.parse.size.percentage]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.system.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.system.html.ini
new file mode 100644
index 00000000000..577166c8101
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.font.parse.system.html.ini
@@ -0,0 +1,5 @@
+[2d.text.font.parse.system.html]
+ type: testharness
+ [System fonts must be computed to explicit values]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/text-styles/2d.text.measure.width.space.html.ini b/tests/wpt/metadata/2dcontext/text-styles/2d.text.measure.width.space.html.ini
new file mode 100644
index 00000000000..f7b7bb43da1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/text-styles/2d.text.measure.width.space.html.ini
@@ -0,0 +1,5 @@
+[2d.text.measure.width.space.html]
+ type: testharness
+ [Space characters are converted to U+0020 and collapsed (per CSS)]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.bitmap.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.bitmap.html.ini
new file mode 100644
index 00000000000..16cf3284387
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.bitmap.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.bitmap.html]
+ type: testharness
+ [save()/restore() does not affect the current bitmap]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.clip.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.clip.html.ini
new file mode 100644
index 00000000000..15d95322852
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.clip.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.clip.html]
+ type: testharness
+ [save()/restore() affects the clipping path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.fillStyle.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.fillStyle.html.ini
new file mode 100644
index 00000000000..e99c74d2806
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.fillStyle.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.fillStyle.html]
+ type: testharness
+ [save()/restore() works for fillStyle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini
new file mode 100644
index 00000000000..9291c93dc28
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.font.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.font.html]
+ type: testharness
+ [save()/restore() works for font]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalAlpha.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalAlpha.html.ini
new file mode 100644
index 00000000000..d4676a347c0
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalAlpha.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.globalAlpha.html]
+ type: testharness
+ [save()/restore() works for globalAlpha]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html.ini
new file mode 100644
index 00000000000..358b2b148b4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.globalCompositeOperation.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.globalCompositeOperation.html]
+ type: testharness
+ [save()/restore() works for globalCompositeOperation]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineCap.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineCap.html.ini
new file mode 100644
index 00000000000..11ee72efd6e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineCap.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.lineCap.html]
+ type: testharness
+ [save()/restore() works for lineCap]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineJoin.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineJoin.html.ini
new file mode 100644
index 00000000000..cba7c1653fe
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineJoin.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.lineJoin.html]
+ type: testharness
+ [save()/restore() works for lineJoin]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineWidth.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineWidth.html.ini
new file mode 100644
index 00000000000..8be9e715f82
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.lineWidth.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.lineWidth.html]
+ type: testharness
+ [save()/restore() works for lineWidth]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.miterLimit.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.miterLimit.html.ini
new file mode 100644
index 00000000000..c60e9b276a7
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.miterLimit.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.miterLimit.html]
+ type: testharness
+ [save()/restore() works for miterLimit]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.path.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.path.html.ini
new file mode 100644
index 00000000000..7050240d9bf
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.path.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.path.html]
+ type: testharness
+ [save()/restore() does not affect the current path]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowBlur.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowBlur.html.ini
new file mode 100644
index 00000000000..9ff47aacc2a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowBlur.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.shadowBlur.html]
+ type: testharness
+ [save()/restore() works for shadowBlur]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowColor.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowColor.html.ini
new file mode 100644
index 00000000000..355e874c45e
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowColor.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.shadowColor.html]
+ type: testharness
+ [save()/restore() works for shadowColor]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetX.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetX.html.ini
new file mode 100644
index 00000000000..e77591be6f6
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetX.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.shadowOffsetX.html]
+ type: testharness
+ [save()/restore() works for shadowOffsetX]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetY.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetY.html.ini
new file mode 100644
index 00000000000..23b0fdd1133
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.shadowOffsetY.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.shadowOffsetY.html]
+ type: testharness
+ [save()/restore() works for shadowOffsetY]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stack.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stack.html.ini
new file mode 100644
index 00000000000..7a1db072d37
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stack.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.stack.html]
+ type: testharness
+ [save()/restore() can be nested as a stack]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stackdepth.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stackdepth.html.ini
new file mode 100644
index 00000000000..a3658368a1c
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.stackdepth.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.stackdepth.html]
+ type: testharness
+ [save()/restore() stack depth is not unreasonably limited]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.strokeStyle.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.strokeStyle.html.ini
new file mode 100644
index 00000000000..767f020c0a1
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.strokeStyle.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.strokeStyle.html]
+ type: testharness
+ [save()/restore() works for strokeStyle]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini
new file mode 100644
index 00000000000..a2da902c46a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textAlign.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.textAlign.html]
+ type: testharness
+ [save()/restore() works for textAlign]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini
new file mode 100644
index 00000000000..b5348999bd4
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.textBaseline.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.textBaseline.html]
+ type: testharness
+ [save()/restore() works for textBaseline]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.transformation.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.transformation.html.ini
new file mode 100644
index 00000000000..57e9fdc6068
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.transformation.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.transformation.html]
+ type: testharness
+ [save()/restore() affects the current transformation matrix]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.underflow.html.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.underflow.html.ini
new file mode 100644
index 00000000000..80a4e6d4819
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/2d.state.saverestore.underflow.html.ini
@@ -0,0 +1,5 @@
+[2d.state.saverestore.underflow.html]
+ type: testharness
+ [restore() with an empty stack has no effect]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/the-canvas-state/canvas_state_restore_001.htm.ini b/tests/wpt/metadata/2dcontext/the-canvas-state/canvas_state_restore_001.htm.ini
new file mode 100644
index 00000000000..539034fbef9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/the-canvas-state/canvas_state_restore_001.htm.ini
@@ -0,0 +1,5 @@
+[canvas_state_restore_001.htm]
+ type: reftest
+ reftype: ==
+ refurl: /2dcontext/the-canvas-state/canvas_state_restore_001-ref.htm
+ expected: FAIL
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.order.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.order.html.ini
new file mode 100644
index 00000000000..a263b319a67
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.order.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.order.html]
+ type: testharness
+ [Transformations are applied in the right order]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.direction.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.direction.html.ini
new file mode 100644
index 00000000000..9de526626a8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.direction.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.rotate.direction.html]
+ type: testharness
+ [rotate() is clockwise]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.nonfinite.html.ini
new file mode 100644
index 00000000000..bc9a6afb294
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.rotate.nonfinite.html]
+ type: testharness
+ [rotate() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.radians.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.radians.html.ini
new file mode 100644
index 00000000000..572010938a9
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.radians.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.rotate.radians.html]
+ type: testharness
+ [rotate() uses radians]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrap.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrap.html.ini
new file mode 100644
index 00000000000..31ddd50de23
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrap.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.rotate.wrap.html]
+ type: testharness
+ [rotate() wraps large positive values correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrapnegative.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrapnegative.html.ini
new file mode 100644
index 00000000000..ba64eb83421
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.wrapnegative.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.rotate.wrapnegative.html]
+ type: testharness
+ [rotate() wraps large negative values correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.zero.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.zero.html.ini
new file mode 100644
index 00000000000..ddfed08dbc8
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.rotate.zero.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.rotate.zero.html]
+ type: testharness
+ [rotate() by 0 does nothing]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.negative.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.negative.html.ini
new file mode 100644
index 00000000000..70876efb171
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.negative.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.scale.negative.html]
+ type: testharness
+ [scale() with negative scale factors works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.nonfinite.html.ini
new file mode 100644
index 00000000000..c8974564113
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.scale.nonfinite.html]
+ type: testharness
+ [scale() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.zero.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.zero.html.ini
new file mode 100644
index 00000000000..b75f87a88eb
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.scale.zero.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.scale.zero.html]
+ type: testharness
+ [scale() with a scale factor of zero works]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.nonfinite.html.ini
new file mode 100644
index 00000000000..3b104d0b1e2
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.setTransform.nonfinite.html]
+ type: testharness
+ [setTransform() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.skewed.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.skewed.html.ini
new file mode 100644
index 00000000000..afb7f1e0c0a
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.setTransform.skewed.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.setTransform.skewed.html]
+ type: testharness
+ [Canvas test: 2d.transformation.setTransform.skewed]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.nonfinite.html.ini
new file mode 100644
index 00000000000..f96c4fdfe63
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.transform.nonfinite.html]
+ type: testharness
+ [transform() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.skewed.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.skewed.html.ini
new file mode 100644
index 00000000000..bf8e11b3717
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.transform.skewed.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.transform.skewed.html]
+ type: testharness
+ [transform() with skewy matrix transforms correctly]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/2d.transformation.translate.nonfinite.html.ini b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.translate.nonfinite.html.ini
new file mode 100644
index 00000000000..130cfa45cff
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/2d.transformation.translate.nonfinite.html.ini
@@ -0,0 +1,5 @@
+[2d.transformation.translate.nonfinite.html]
+ type: testharness
+ [translate() with Infinity/NaN is ignored]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_scale_001.htm.ini b/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_scale_001.htm.ini
new file mode 100644
index 00000000000..fdf5e7636f5
--- /dev/null
+++ b/tests/wpt/metadata/2dcontext/transformations/canvas_transformations_scale_001.htm.ini
@@ -0,0 +1,5 @@
+[canvas_transformations_scale_001.htm]
+ type: reftest
+ reftype: ==
+ refurl: /2dcontext/transformations/canvas_transformations_scale_001-ref.htm
+ expected: FAIL