Aujourd’hui, pour la première fois depuis la separation entre blink / webkit, les équipes WebRTC de Google et Apple ont eu une session de travail. Comment cela a-t-il été possible? Qu’est ce que cela signifie pour WebRTC? Qu’attendre dans le futur de cette relation renouee. Jetons un coup d’oeuil à tout ça.
1st Google Apple (CoSMo) meeting since blink fork. Better #webrtc together. It takes more than commits 2 be a leader pic.twitter.com/5K4IW6Fntw
— Dr. Alex. Gouaillard (@agouaillard) July 6, 2017
I. Comment tout ça a été possible?
Depuis la separation de blink de webkit, l’équipe d’Apple a essayé d’entretenir les APIs JS WebRTC mais c’était trop de travail pour l’équipe restante. Cela a été exacerbe par la rapidité de l evolution du Standard. Le projet wertc-in-webkit a aidé à garder la partie supérieure, la partie générique de webkit (JS API, les échanges de la couche JS a la couche C++, et la partie webcore) synchronisée avec le le standard. Il a aussi permis de tester ces APIs en fournissant une implementation based sur OpenWebRTC. Finalement, le navigateur linux base sur webkit et sur GTK a ajouté les parties qui sont seulement dans le navigateurs eux-même: la gestion des cameras, micros, et capture d écran.
En même temps, l’équipe Safari évaluait gentiment et rapidement toutes les contributions, rendant le processus plus rapide que la plupart des contributions dans webkit. Certains stagiaires ont été mis à travailler sur GUM et finalement Youenn Fablet a été embauché avec pour mission d’implémenter webRTC 1.0. Il y a quelques mois, autour de janvier 2017, les premiers commits webrtc dans safari apparaissent. Nous commençons alors à les passer en revue, a proposer des ameliorations, et a contribuer les ameliorations a la source, la libraire libwebrtc originale maintenue par google. Un an plus tard, la premiere passe est faite et le projet est maintenant divulgué. Apple peut maintenant en parler publiquement et passer au niveau supérieur.
Il est primordial pour google que WebRTC soit adopté et soit un succès. Ils ont essayés d’emmener tous les autres vendeurs de navigateurs et spécialement Apple depuis un certain temps a l’adopter. De plus, la version mac de webrtc (la gestion des cameras principalement) na pas atteint le niveau de qualité des autres versions. L’équipe CoSMo aide google depuis un moment maintenant que ce soit de l écriture et de la contribution bénévole du code manquant pour le rendu vidéo de iOS et l’implémentation en 2013 de JSEP à, de nos jours, des travaux sous contrats incluant, la suite de tests WebRTC 1.0 et sa spécification pour accélérer le processus de standardisation de WebRTC.
Nous savons que cela demande plus que des contributions et des connaissances pour faire en sorte que les choses arrivent. Depuis que nous avons écrit le premier plugin totalement gratuit et open-source pour WebRTC, nous avons promis de le rendre inutile et de contribuer à rendre WebRTC meilleur et plus facilement utilisable pour tout le monde.
Depuis un petit moment maintenant nous avons, en quelque sorte, fait les médiateurs dans la discussion entre Google et Apple jusqu’à ce que nous recevions les signaux des deux parties nous disant qu’une discussion directe était possible et nous l’avons organisée.
(*)à noter que le partage d’écran ne fait ni partie des spécifications de getusermedia ni des spécifications de webrtc 1.0. Il a son propre document et il est en retard en terme de standardisation.
II. Que cela signifie-t-il pour WebRTC?
Au de la du meeting ponctuel, cela signifie que maintenant tous les vendeurs de navigateurs sont autour de la table pour faire avancer WebRTC. La présence de Apple dans le groupe de travail WebRTC au W3C avait jusque la été discrète.
Cela signifie aussi que la plupart des navigateurs (meme is je ne peut pas réellement parler de Edge à ce jour) dépendent maintenant de libwertc pour leur implémentation et collaborent directement pour l’améliorer, ensemble. Mozilla aidait déjà beaucoup, Apple va maintenant lui aussi apporter quelques ameliorations qui vont rendre Firefox et Chrome meilleur sur iOS et MacOS (quand ils existent, pas de firefox sur iOS par exemple), en amenant l’expertise de l’environnement Apple. C’est spécialement important pour lia gestion des cameras, le support de l’accélération graphique, la durée de vie de la batterie, etc
Globalement ce que cela veut réellement dire pour chacun de nous les développeurs WebRTC est: un outil WebRTC unique et global, une base de code unifiée et open source, fournisseurs de navigateurs alignés travaillant ensemble pour fournir une meilleure expérience . Que des bonnes nouvelles.
III. Le futur
Premièrement, le meeting a eu lieu au siège de Google à mountain view. Je vois déjà les titres de certains blog posts (et tabloïds anglais): Apple se rend à Google et se paye le respect par sa visite au siège. Rien ne pourrait être plus faux (comme d’habitude avec ces blog posts et tabloïds). C’était une cession de travail où tout le monde s’est mis autour de la table avec des problèmes à résoudre et des questions pour les autres. La raison pour laquelle ça c’est déroulé à Google et non à Apple était très très pragmatique: la nourriture est gratuite chez Google et non chez Apple.
Les points principaux de la discussion ont déjà été abordés dans les chapitres précédents: du point de vue de Google: comment amener chrome sur mac à égalité avec chrome dans windows. Pour Apple la question était plus tournée vers la conception du coeur media de libwebrtc (surtout l’audio) et d’autres questions de design et d architecture sont venues après. Pour CoSMo, les questions étaient plus centrées sur la haute définition de l’audio en stéréo, l’Audio Processing Module, le System Audio Capture dans son ensemble et sur Mac spécifiquement (supprimer le besoin de « soundflower ») et tester l’automation.
A CoSMo, nous sommes très content d’avoir été capable de combler le fossé. En tant qu’Individus et représentant CoSMo et webrtc-in-webkit, je peux déjà dire que nous n’allons pas arrêter d’essayer de faire la différence. Seulement 50% de webrtc 1.0 est à ce jour implémenté, c’est à peine testé, l’ encryption n’est pas de bout en bout dès lors que vous utilisez un serveur média, et il y a ORTC / webrtc NV qui arrive et qui devrait apporter beaucoup de choses géniales.
En Août (2018), les discussions entre certains fournisseurs de navigateurs à propos du testing devrait commencer.
La première semaine d’Octobre (2018), la plupart des hackers webkit vont se rendre en Espagne pour un meeting de quatre jours: Web Engine Hackfest. L’équipe WebRTC devrait se concentrer sur le réalignement des différentes implémentations WebRTC dans webkit. Compte tenu du statut du projet ouvert webrtc, la pertinence de le garder dans webkit sera débattue et dépendra de la capacité qu’aura quelqu’un à manipuler le support et la maintenance.
Que vous soyez un bon codeur ou non, vous pouvez contribuer à votre niveau. Libwebrtc est open-source, chrome / mozilla / webkit sont open-source, le Google Summer of Code a des projets WebRTC géniaux (dont jitsi), chacun a de grandes opportunités de « hack » et d’apprentissage.Rappelez vous aussi que cela demande plus qu’être un super contributeur pour être un super leader. Restez positif, aidez les autres, ne vous moquez pas d’eux, ne les effrayez pas et aidez à faire arriver les choses pour tout le monde.
(*) Si vous voulez faire une encore plus grande différence, rejoignez nous à CoSMo, on embauche 🙂