huggingface / huggingface/transformers.js
[Bug] Safari fails to load transformers.js into Worker when COOP/COEP in place
- Dominant language
- JavaScript
- Stars
- 16.3k
- Forks
- 1.2k
- Avg merge
- 6d 2h
- Merged PRs (30d)
- 6
Description
I am not even sure this is fixable on transformers.js side, but be aware that Safari 16.6 would fail load transformers.js in a special case:
- have main site served with COOP and COEP headers:
- load Worker module which imports transformers.js
```
Cross-Origin-Opener-Policy same-origin
Cross-Origin-Embedder-Policy require-corp
```
```html
const content = `import { pipeline } from "https://cdn.jsdelivr.net/npm/@xenova/transformers@2.5.4/dist/transformers.min.js";`;
const blob = new Blob([content], {type:"text/javascript"});
new Worker(URL.createObjectURL(blob), {type:"module"});
```
safari throws:
```
[Error] Refused to load 'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.5.4/dist/transformers.min.js' worker because of Cross-Origin-Embedder-Policy.
[Error] Worker load was blocked by Cross-Origin-Embedder-Policy
[Error] Failed to load resource: Worker load was blocked by Cross-Origin-Embedder-Policy (transformers.min.js, line 0)
[Error] Cannot load https://cdn.jsdelivr.net/npm/@xenova/transformers@2.5.4/dist/transformers.min.js due to access control checks.
[Error] Failed to load resource: Worker load was blocked by Cross-Origin-Embedder-Policy (transformers.min.js, line 0)
[Error] Importing a module script failed.
```
jsdelivr CDN seems to send correct CORP response headers for .js however that seems to be ignored by safari.
I have filed a [webkit bug](https://bugs.webkit.org/show_bug.cgi?id=261734)
If you have any idea how to workaround, please share
Contributor guide
Assessment
This issue has not been assessed yet.