Status: PASS | Duration: 5ms | Subtests: 1/1 | Open test on wpt.live | Open ref on wpt.live | wpt.fyi
/css/css-paint-api/geometry-border-image-001.https.html
<!DOCTYPE html> <html class="reftest-wait"> <link rel="help" href="https://drafts.css-houdini.org/css-paint-api/"> <link rel="match" href="geometry-border-image-001-ref.html"> <style> html, body { margin: 0; padding: 0; } .container { width: 200px; height: 200px; } #canvas-geometry { border: solid 0; border-image: paint(geometry); border-image-slice: 0 fill; } </style> <script src="/common/reftest-wait.js"></script> <script src="/common/worklet-reftest.js"></script> <body> <div id="canvas-geometry" class="container"></div> <script id="code" type="text/worklet"> registerPaint('geometry', class { paint(ctx, geom) { if (geom.width == 220 && geom.height == 220) ctx.fillStyle = 'green'; else ctx.fillStyle = 'red'; ctx.fillRect(0, 0, geom.width, geom.height); } }); </script> <script> document.getElementById('canvas-geometry').style.borderWidth = '10px'; importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, document.getElementById('code').textContent); </script> </body> </html>
/css/css-paint-api/geometry-border-image-001-ref.html
<!DOCTYPE html> <html> <style> html, body { margin: 0; padding: 0; } </style> <body> <canvas id ="canvas" width="200" height="200" style="position:relative; top:10px; left:10px"></canvas> <script> var canvas = document.getElementById('canvas'); var context = canvas.getContext("2d"); // The test geometry-border-image1.html has a paint canvas with width=200 and // height=200, as well as a border-width=10 and border-image-slice: fill. All of // them combined meaning that it draws to the (200+10*2)*(200+10*2) area, but // stretch it to fit into the 200*200 area. // So in this reftest, we create a 200*200 canvas. We draw to a 220*220 area // and scale it to fit the 200*200 canvas. context.scale(200/220, 200/220); context.fillStyle = 'green'; context.fillRect(0, 0, 220, 220); </script> </body> </html>