createImageBitmap indisponible ? Dépannage par plateforme et environnement
Symptôme observé
Any3D affiche « Le navigateur actuel ne prend pas en charge createImageBitmap ». Il s'agit de l'un des trois éléments essentiels du chemin Web Worker, utilisé pour décoder efficacement les pixels d'image en arrière-plan. Sans cela, les flux de compression de texture ou de conversion d'image en modèle ne peuvent pas emprunter le chemin Web Worker complet, ce qui rend les gros fichiers plus susceptibles de ralentir.
Causes courantes
| Cause | Scénario typique |
|---|---|
| Navigateur/WebView obsolète | Vieille version Android WebView, page embarquée dans une application |
| Contexte non sécurisé | Site HTTP (hors localhost), fichier:// |
| Ressources cross-origin mal configurées | Erreur de décodage d'image due à un CDN/CORS d'entreprise (se manifeste par un dysfonctionnement) |
| Limites de mémoire/onglet | Appareil mobile à faible mémoire, stratégie d'entreprise « onglet unique » |
| Perturbation par extension | Plugin de confidentialité modifiant le comportement de l'API Image |
Dépannage par plateforme
Windows / macOS (bureau)
- Utilisez la dernière version stable de Chrome / Edge / Firefox / Safari.
- Ouvrez Any3D impérativement via HTTPS.
- Les Temps d'écran sur macOS et la Sécurité familiale sur Windows, si elles limitent les téléchargements ou l'accès aux supports, peuvent affecter le décodage de grandes images — testez avec un compte administrateur.
- Bureau à distance : Les textures de très haute résolution peuvent échouer au décodage sur des environnements GPU faibles — vérifiez d'abord avec une petite image.
Linux
- Mettez à jour Chrome/Firefox ; si le décodage GPU pose problème sous Wayland, essayez une session X11 pour comparer (cas rare).
iOS / iPadOS
n
- La prise en charge s'améliore à partir de Safari 14+ ; gardez iOS à jour.
- Le navigateur intégré de WeChat a souvent un noyau obsolète → ouvrez dans Safari.
- iCloud Private Relay / Restrictions de contenu ne bloquent généralement pas createImageBitmap, mais peuvent bloquer des hôtes d'images cross-origin — assurez-vous que les textures du modèle sont de même origine ou accessibles.
Android
- Mettez à jour Chrome et Android System WebView (Paramètres → Applications → Afficher les applications système).
- Navigateurs nationaux en mode compatibilité → utilisez Chrome.
- Bien-être numérique / Family Link, lorsqu'ils limitent les activités en arrière-plan, n'affectent pas directement l'API, mais peuvent bloquer l'envoi de gros fichiers.
Réseau, VPN et intranet d'entreprise
| Scénario | Explication |
|---|---|
| VPN d'entreprise | Si les textures du modèle passent par un CDN interne, des erreurs CORS ou de certificat peuvent provoquer un échec de décodage — des erreurs réseau apparaîtront dans la Console |
| Proxy transparent | Si une réponse d'image est remplacée ou corrompue, createImageBitmap peut rejeter |
| Intranet HTTP uniquement | Contexte non sécurisé, l'API peut être indisponible ou son comportement limité |
| Zero Trust / SSL inspection | Les certificats auto-signés doivent être ajoutés à la liste de confiance, sinon le chargement des ressources échoue |
Recommandation : Déconnectez le VPN, passez sur un point d'accès mobile, et testez en téléchargeant un modèle géométrique pur sans textures externes — si le modèle pur fonctionne mais échoue avec des textures, privilégiez une vérification réseau/CORS.
Stratégies d'entreprise et contrôles parentaux
- Intune App Protection peut limiter les fonctionnalités « Enregistrer sous/Télécharger », affectant indirectement le flux de sélection d'image, mais l'API elle-même devrait toujours être présente — utilisez la Console pour distinguer.
- Gestion d'iPads scolaires : L'interdiction de l'application « Fichiers » n'affecte pas l'API, mais affecte la méthode d'envoi ; utilisez un canal de téléchargement pris en charge.
- Contrôle parental DNS sur routeur : Si le domaine Any3D est bloqué, l'ensemble du site est indisponible, et non pas seulement createImageBitmap.
Réparation par étapes (général)
- HTTPS + navigateur le plus récent + redémarrage.
- Fenêtre privée pour exclure les extensions.
- Ouvrez avec le navigateur du système, pas dans une WebView d'application.
- Vérifiez simultanément les alertes pour Web Worker et OffscreenCanvas.
Test rapide
typeof createImageBitmap !== "undefined"
Avancé (nécessite HTTPS et une URL d'image accessible) :
fetch("https://example.com/favicon.ico")
.then((r) => r.blob())
.then((b) => createImageBitmap(b))
.then(() => console.log("ok"))
.catch(console.error);
Résumé
Le problème de createImageBitmap provient le plus souvent d'un WebView obsolète, d'un contexte non HTTPS, ou d'un échec de chargement de ressources dû à un VPN/intranet. En mettant à jour le WebView selon la plateforme, en vérifiant le réseau, et en excluant les extensions, le chemin de traitement d'image via Web Worker est généralement rétabli.