createImageBitmap non disponibile? Diagnostica per piattaforma e ambiente
I sintomi che vedi
Any3D mostra l'avviso «Il browser corrente non supporta createImageBitmap». Si tratta di uno dei tre requisiti del percorso Worker, usato per decodificare i pixel delle immagini in modo efficiente in background. Se manca, flussi come compressione texture o conversione immagine→modello non possono sfruttare appieno il percorso Worker, e i file più grandi tendono a bloccarsi.
Cause più comuni
| Causa | Scenario tipico |
|---|---|
| Browser/WebView obsoleto | Vecchie WebView Android, pagine incorporate in app |
| Contesto non sicuro | Sito HTTP (diverso da localhost), file:// |
| Risorse cross-origin mal configurate | CDN aziendali/CORS che impediscono la decodifica (il problema si manifesta come malfunzionamento) |
| Limiti di memoria/schede | Dispositivi mobili con poca RAM, criteri aziendali «una sola scheda» |
| Interferenza di estensioni | Plugin privacy che alterano il comportamento dell'API Image |
Diagnostica per piattaforma
Windows / macOS (desktop)
- Usa la versione stabile più recente di Chrome / Edge / Firefox / Safari.
- Apri Any3D solo via HTTPS.
- Se hai Tempo di utilizzo su macOS o Controllo famiglia su Windows con limiti a download o accesso ai media, la decodifica di immagini grandi potrebbe risentirne: prova con un account amministratore.
- Desktop remoto: con GPU debole, texture ad altissima risoluzione possono non decodificare. Verifica prima con un'immagine piccola.
Linux
- Aggiorna Chrome/Firefox; se su Wayland la decodifica GPU dà problemi, puoi provare una sessione X11 (raro).
iOS / iPadOS
- Safari 14+ supporta bene l'API; mantieni iOS aggiornato.
- Il browser integrato di alcune app (es. WhatsApp) usa WebView datate → apri in Safari.
- Proxy privato iCloud / Limita contenuti adulti di solito non bloccano createImageBitmap, ma possono bloccare immagini cross-origin: assicurati che le texture del modello siano same-origin o raggiungibili.
Android
- Aggiorna Chrome e Android System WebView (Impostazioni → App → Mostra app di sistema).
- Browser alternativi in «modalità compatibilità» → prova con Chrome.
- Benessere digitale / Family Link non bloccano direttamente l'API se limitano le attività in background, ma potrebbero impedire l'upload di file grandi.
Rete, VPN e rete aziendale
| Scenario | Descrizione |
|---|---|
| VPN aziendale | Se le texture del modello passano da una CDN interna, errori CORS o certificati causano il fallimento della decodifica: nella Console vedrai errori di rete |
| Proxy trasparente | Se riscrive o corrompe le risposte delle immagini, createImageBitmap può andare in reject |
| Solo HTTP in LAN | Contesto non sicuro: l'API potrebbe non essere disponibile o avere comportamenti limitati |
| Zero trust / SSL inspection | I certificati auto-firmati vanno importati come attendibili, altrimenti le risorse non si caricano |
Suggerimento: disattiva la VPN, passa a una rete mobile, e prova a caricare un modello geometrico puro senza texture esterne — se il modello semplice funziona ma quello con texture fallisce, il problema è quasi certamente di rete/CORS.
Criteri aziendali e controllo genitori
- Intune App Protection può limitare «Salva con nome/Download», influendo indirettamente sulla scelta dei file, ma l'API dovrebbe comunque esistere: verifica dalla Console per distinguere.
- iPad gestiti da scuola: il blocco dell'app File non tocca l'API, ma cambia le modalità di upload; usa il canale di caricamento consentito.
- DNS con controllo genitori sul router: se intercetta il dominio di Any3D, l'intero sito non funziona, non solo createImageBitmap.
Risoluzione passo passo (generica)
- HTTPS + browser aggiornato + riavvio.
- Finestra in incognito per escludere le estensioni.
- Usa il browser di sistema, non una WebView interna all'app.
- Controlla anche gli avvisi per Web Worker e OffscreenCanvas.
Autotest rapido
typeof createImageBitmap !== "undefined";
Test avanzato (richiede HTTPS e un'immagine accessibile):
fetch("https://example.com/favicon.ico")
.then((r) => r.blob())
.then((b) => createImageBitmap(b))
.then(() => console.log("ok"))
.catch(console.error);
In sintesi
Il problema di createImageBitmap è quasi sempre dovuto a WebView obsolete, mancanza di HTTPS, o risorse che falliscono via VPN/rete aziendale. Aggiorna la WebView per piattaforma, cambia rete per verificare ed escludi le estensioni: il percorso Worker per le immagini di solito si ripristina.