Supprimer les "Rats!" WebGL a frappé un problème. "Barre d'erreur dans Google Chrome
J'ai récemment commencé à l'aide de WebGL sur un site que je suis en développement. Il est utilisé comme une amélioration, et le site revient à une toile de rendu si WebGL n'est pas pris en charge ou a une erreur.
Malheureusement, quand une WebGL exception se produit dans Google Chrome, un message d'erreur de barre. Cette barre ne disparaissent pas, jusqu'à ce que l'utilisateur interagit avec elle. Si elles de recharger ou de naviguer vers une autre page, le message apparaîtra de nouveau la prochaine fois que le site tente d'utiliser WebGL.
Dans le cas de mon site, cela signifie que le WebGL message d'erreur ne s'en ira jamais, car chaque page des tentatives d'utilisation de WebGL. Une fois qu'une erreur s'est produite Chrome de ne pas utiliser WebGL à nouveau sur le même site jusqu'à ce que l'utilisateur indique qu'il Rechargerde sorte que le continu message d'erreur ne fait pas les indiquer en continu des erreurs, juste des tentatives répétées d'utiliser WebGL.
Une fois un WebGL erreur se produit, cette boîte de dialogue peut être reproduite sur le site juste en cours d'exécution:
document.createElement('canvas').getContext('experimental-webgl');
Cela ne soulève pas d'exception, et mon .onerror
méthode sur la toile élément n'était pas appelé.
Je n'ai pas été en mesure de déterminer ce trop profondément, parce que je n'ai pas été en mesure de reproduire de manière fiable un WebGL erreur. (Même si j'ai pu reproduire sur mon ordinateur, il peut ne pas être reproductible sur d'autres.)
Ce comportement serait raisonnable pour un site basé sur WebGL, mais mine de ne pas, de sorte que le message est juste distrayant et source de confusion pour les utilisateurs.
Est-il un moyen de supprimer ce message d'erreur? Je n'ai pas l'esprit de revenir à la Ignorer comportement d'avoir WebGL désactivés lorsqu'une erreur se produit.
source d'informationauteur Jeremy
Vous devez vous connecter pour publier un commentaire.
Si vous voulez ignorer l'exception, les opérations suivantes doivent être assez.
Si vous voulez réessayer chargement du contexte webgl
EDIT:
Si vous voulez tester si le contexte doit être géré correctement, alors utilisez le WEBGL_lose_context extension sur le contexte webgl.
M'a pris âges pour résoudre ce problème, il semble que les Rats! l'erreur se produit lorsque le redimensionnement d'une toile qui avait un contexte 3D basée sur elle lors de l'utilisation de Chrome. La solution est d'attraper les redimensionner via un port d'écoute et de recréer la toile et le contexte à ce point. Espérons que cela aide.