【エラー】canvasでSecurityError: The operation is insecure が出て困った


状況

Webでcanvasを使った開発をしている際にエラーに遭遇(iOS13 safari)
※しかし何故かPC ChromeやiOS14ではエラーが出ず正常に動作。

エラー内容

SecurityError: The operation is insecure

このようなエラーがcanvas.toDataURL();の部分に出ていました。
このcanvas書き出し前に、srcが外部ページの静止画をdrawImageしていたのでどうやらここのCORSが原因ぽい。

試して失敗したこと

canvasにdrawImageしている画像は、JS側でnew Image();で生成していたので
同じようにJS側で以下のようにcrossOriginを設定しました。

script.js
img.crossOrigin = "Anonymous";

これでPC Chrome、iOS14などではエラーがなくなりましたが
iOS13ではエラーが出現。。。

成功したこと

JSで生成していた画像をそもそもhtml側で用意して置いとくことにしたらエラーが消えました。

index.html
<img crossOrigin="Anonymous" id="canvas-img" class="canvas-img" src="">
style.css
.canvas-img {
  display: none;
}
script.js
canvasImg = document.getElementById("canvas-img");
context.drawImage(canvasImg, x, y, w, h);