blob: 8a644fbb616bc42d223093b70a54fb6653c6b6d4 [file] [log] [blame]
<!DOCTYPE html>
<html class="reftest-wait">
<meta charset="utf-8">
<title>HTML OffscreenCanvas Test: the 'fontVariantCaps' property</title>
<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
<link rel="help" href="https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-fontvariantcaps">
<link rel="mismatch" href="2d.text.fontVariantCaps2-unexpected.html">
<meta name="assert" content="text rendering respects the fontVariantCaps property">
<canvas id="canvas1"></canvas>
<br>
<canvas id="canvas2"></canvas>
<script>
const testContent = `
ctx.font = "small-caps 32px serif";
ctx.fillText("Hello World", 20, 100);
`;
// Draw to the first canvas using a worker:
const canvas1 = document.getElementById("canvas1");
const offscreen1 = canvas1.transferControlToOffscreen();
const workerScript = `
onmessage = (evt) => {
const canvas = evt.data.canvas;
const ctx = canvas.getContext("2d");
${testContent}
self.postMessage("done");
};
`;
const blob = new Blob([workerScript], {type: 'application/javascript'});
const worker = new Worker(URL.createObjectURL(blob));
worker.addEventListener('message', function(e) {
if (e.data == "done") {
// Draw to the second using a main-thread OffscreenCanvas:
const offscreen2 = new OffscreenCanvas(300, 150);
const ctx = offscreen2.getContext("2d");
eval(testContent);
document.getElementById("canvas2")
.getContext("bitmaprenderer")
.transferFromImageBitmap(offscreen2.transferToImageBitmap());
document.documentElement.classList.remove("reftest-wait");
}
}, false);
worker.postMessage({ canvas: offscreen1 }, [offscreen1]);
</script>