Microsoft HTML5Labs : WebSockets et IndexedDB dans IE9

Les supports partiels et expérimentaux sous forme de modules 33
Vincent Hermann
Il y a plus de trois mois maintenant, Microsoft a lancé la bêta publique de son navigateur Internet Explorer 9. Depuis, quelques petites mises à jour ont été publiées pour résoudre les problèmes les plus importants mais l’éditeur n’a pas publié de version plus récente. Une Release Candidate est en préparation, mais la firme vient de dévoiler un nouvel aspect du produit : la possibilité d’y adjoindre des modules qui servent à tester certaines fonctionnalités et technologies.

html5labs IE9

Le site HTML5Labs propose donc des modules qui viennent se placer dans Internet Explorer 9 et qui lui permettent de gérer une technologie ou autre. Pour clarifier la situation, il faut faire un distinguo sur le HTML5 proprement dit : il désigne à la fois une technologie et un regroupement de normes. Nous avons donc le HTML5 lui-même qui sert à créer l’ossature d’une page web, et l’ensemble de technologies telles que les CSS, le JavaScript, les éléments Canvas, ou encore les polices WOFF, réunies sous l’appellation générale HTML5.

Normes en devenir

Les éléments cités sont supportés par Internet Explorer 9, mais d’autres ne le sont pas. Exemple notable : les WebSockets. WebSocket est autant un protocole qu’une interface de programmation (API). L’utilisation depuis plusieurs années de l’objet XMLHttpRequest et plus généralement de l’Ajax ont permis au web de se transformer. Désormais, la puissance des navigateurs et les nouveaux besoins font apparaître la nécessité de pouvoir disposer d’un mode de communications plus direct. WebSocket permet ainsi d’établir un canal bidirectionnel et fullduplex entre le navigateur et le serveur, ce dernier pouvant alors notifier au client un changement d’état quelconque. En outre, le serveur peut « pousser » les données (le mode push).

Et justement, l’un des deux premiers modules présents sur HTML5Labs concerne ces WebSockets. L’installation de ces modules est optionnelle et manuelle et doit permettre aux développeurs de tester le support naissant d’une technologie dans le navigateur de Microsoft. L’autre module concerne IndexedDB, une API d'accès aux bases de données et qui permet donc d’appeler de vastes quantités de données pour les incorporer dans une page web.

Des modules externes plutôt que des versions spécifiques d'IE9

Pourquoi cette méthode ? Microsoft indique que les WebSockets et IndexedDB sont des normes en devenir, qui ne sont pas prêtes pour la production. Le cas de WebSockets est encore plus singulier dans la mesure où l’on trouve deux versions, les 75 et 76, incompatibles entre elles. La première se retrouve dans Chrome 4 et 5, ainsi que Safari 5.0.0. La version 76 est prise en charge par les versions plus récentes de Chrome, Safari, Opera et Firefox. Mais c’est cette mouture qui a été récemment critiquée pour son manque de sécurité intrinsèque face à certaines situations où les utilisateurs sont derrières des serveurs proxy. Dans Opera 11 et Firefox 4 bêta 8, le support de la version 76 est donc désactivé.

Microsoft ne souhaite donc pas implémenter dans la version publique de son Internet Explorer 9 des technologies qui évoluent très rapidement, citant le fait que le protocole WebSockets a été révisé 70 fois sur les 18 derniers mois. Pourtant, l’éditeur reconnaît leur importance et présente donc sa vision des choses : plutôt que de publier des versions de test du navigateur, il y aura le navigateur d’un côté et le support de ces technologies de l’autre. Avantage le plus direct pour Microsoft : la prise en charge de ces technologies ne dépend plus de l’arrivée des versions du navigateur lui-même.

Reste à savoir ce qui se passera une fois les normes finalisées. Internet Explorer 9 sera déjà là, et Microsoft ne dit pas pour l’instant comment les technologies viendront prendre place dans le produit, car les modules externes seront alors hors-sujet. S’il faut attendre Internet Explorer 10, l’intérêt sera en effet clairement moindre.