huggingface / huggingface/transformers.js

[Bug] Safari fails to load transformers.js into Worker when COOP/COEP in place

Open
#319 3 comments 0 reactions 0 assignees View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.