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-004.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-004-ref.html"> <style> html, body { margin: 0; padding: 0; } .container { width: 100px; height: 100px; } #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 == 140 && geom.height == 140) ctx.fillStyle = 'green'; else ctx.fillStyle = 'red'; ctx.fillRect(0, 0, geom.width, geom.height); } }); </script> <script> document.getElementById('canvas-geometry').style.borderWidth = '10px'; document.getElementById('canvas-geometry').style.borderImageOutset = '10px'; importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, document.getElementById('code').textContent); </script> </body> </html>
/css/css-paint-api/geometry-border-image-004-ref.html
<!DOCTYPE html> <html> <style> html, body { margin: 0; padding: 0; } </style> <body> <canvas id ="canvas" width="120" height="120"></canvas> <script> var canvas = document.getElementById('canvas'); var context = canvas.getContext("2d"); // The test geometry-border-image4.html has a 100*100 paint canvas, it specifies // border-width=10 and border-image-outset=10, which means that it is drawing to // a 140*140 area. However, because the test has "border-image-slice: 0 fill", // together with the border-width=10, makes it draw to a 120*120 area. // In this ref html, we draw to a 140*140 area, but scale it to fit the 120*120 // canvas. context.scale(120/140, 120/140); context.fillStyle = 'green'; context.fillRect(0, 0, 140, 140); </script> </body> </html>