Safari/Webkit freezing in a new tab

Safari freezes when we try to use canvas.putImageData to draw image to canvas. Safari version is 15. happen in MacOs and iPad.

I have made a reproduction here.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * { padding: 0; margin: 0 }
        html,body {
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <div>
        <button id="btn">
            get random number
        </button>
        <button id="btn2">
            open a tab
        </button>
    </div>
</body>
</html>
<script>
let i = 1;
const btn = document.querySelector('#btn');
const btn2 = document.querySelector('#btn2');
const urls =  ['https://st-gdx.dancf.com/gaodingx/0/uxms/design/20210914-213851-d8b8.png'];
urls.length = 1;

btn.onclick = () => {
    console.time('click');
    btn.innerHTML = Math.random();
    console.timeEnd('click');
}
btn2.onclick = () => {
    window.open(window.location.href);
}

for(let i = 0; i < urls.length; i++) {
    const img = new Image();
    img.src = urls[i];
    img.crossOrigin = 'anycrossorign';

    
    img.onload = () => {
        const canvas = document.createElement('canvas');
        canvas.width = 1000;
        canvas.height = 1000;

        const ctx = canvas.getContext('2d');
        ctx.drawImage(img, 0, 0);
        
        const pixels = ctx.getImageData(0, 0, 1000, 1000);
        for (let i = 0; i < pixels.data.length; i += 4) {
            pixels.data[i + 3] = 255;
        }
        ctx.putImageData(pixels, 0, 0, 0, 0, 1000, 1000);
        document.body.appendChild(canvas);
    }
}
</script>

Update: Safari version above 15.4.

Can you try in latest Technology Preview (May 11 release)?

Safari/Webkit freezing in a new tab
 
 
Q