Bug 237818

Summary: Canvas export fails due to security reasons because of CanvasPattern
Product: WebKit Reporter: Eduard Kuzmenko <thanwords24>
Component: CanvasAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: bfulgham, dino, sabouhallawa, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 15   
Hardware: Unspecified   
OS: macOS 12   

Description Eduard Kuzmenko 2022-03-13 04:21:03 PDT
Export fails with error: 'Operation is insecure' when canvas is being filled with pattern, which was created using an image from the same origin. Chrome does not have this issue.

Steps to Reproduce:
- Get an image from the same origin (header 'Access-Control-Allow-Origin: *' must not be present)
- Wait for its load
- Create CanvasPattern using the image
- Fill the canvas with created pattern
- Try to use canvas.toBlob() and it'll fail with 'operation is insecure'

Example: https://jsfiddle.net/morethanwords/4u0L5gdn/54/

Temporary solution: draw the image to additional canvas and create the pattern using the canvas, instead of image.
Comment 1 Radar WebKit Bug Importer 2022-03-14 08:55:41 PDT
<rdar://problem/90248577>