
Aussi, Apple a rappelé aux développeurs en août 2020 qu'ils peuvent créer des extensions Web dans Safari 14 en utilisant la même API WebExtensions utilisée dans d'autres navigateurs, tels que Chrome, Firefox et Edge. L'éditeur en a profité pour leur indiquer qu'un outil de portage dans Xcode 12 bêta est mis à leur disposition ; le nouvel outil de conversion dans Xcode 12 bêta permet lui aussi aux développeurs de porter des extensions existantes d'autres navigateurs vers Safari et de les rendre disponibles sur le Mac App Store plus tard cette année.
Dans la documentation, Apple explique « qu’une extension Web Safari ajoute des fonctionnalités personnalisées à Safari en utilisant des API JavaScript et des formats de fichiers couramment utilisés dans les extensions pour les navigateurs Google Chrome, Mozilla Firefox et Microsoft Edge. Alors que les extensions d'application Safari sont utiles pour partager du code entre votre application macOS native et Safari, les extensions Web Safari sont principalement construites sur JavaScript, HTML et CSS, et peuvent être reconditionnées pour fonctionner dans d'autres navigateurs. »
En s'ouvrant à WebExtensions, Safari était donc capable d'utiliser les extensions développées pour Chrome et Firefox ! Apple a fourni un outil de conversion, mais malheureusement cette nouveauté de Safari 14 pour Mac, inaugurée avec Big Sur, n'a pas eu le succès escompté. Cette fois-ci, l'entreprise a opté pour une autre approche en choisissant l'alliance avec d'autres entreprises technologiques.
Création du groupe communautaire WebExtensions
Le nouveau groupe communautaire WebExtensions tentera de forger une architecture commune pour les futures extensions Web et invite les développeurs à se joindre à cette initiative. Safari a adopté une nouvelle API d'extension Web avec macOS Big Sur qui permet aux extensions conçues pour d'autres navigateurs de fonctionner avec. Cela a ouvert la porte à de nouvelles extensions, mais une méthode standardisée de développement des extensions n'avait pas été définie.
Le nouveau groupe, abrégé WECG, se compose de membres de chacun des principaux développeurs de navigateurs. À la tête de ce nouveau groupe, nous retrouvons Timothy Hatcher d'Apple et Simeon Vincent de Google. Les participants actuels comprennent des employés d'Apple, Mozilla et Microsoft.
Le World Wide Web Consortium, l'organisme chargé de promouvoir la compatibilité des technologies du World Wide Web, a commenté cette action en ces termes :
« Nous sommes ravis d'annoncer le lancement du groupe communautaire WebExtensions (WECG). Avec plusieurs navigateurs adoptant un modèle largement compatible pour les extensions au cours des dernières années, le WECG est ravi d'explorer comment les fournisseurs de navigateurs et d'autres parties intéressées peuvent travailler ensemble pour faire progresser une plateforme d'extension de navigateur commune. Apple, Google, Microsoft et Mozilla lancent ce groupe communautaire, et nous invitons d'autres éditeurs de navigateurs, développeurs d'extensions et parties intéressées à se joindre à cette initiative*! »
Le groupe communautaire WebExtensions a deux objectifs*:
- Faciliter la création d'extensions pour les développeurs en spécifiant un modèle cohérent et un noyau commun de fonctionnalités, d'API et d'autorisations.
- Décrire une architecture qui améliore les performances et est encore plus sécurisée et résistante aux abus.
« Notre travail sera guidé par un ensemble commun de principes de conception HTML et W3C TAG*: centrée sur l'utilisateur, compatibilité, performances, sécurité, confidentialité, portabilité, maintenabilité et comportement bien défini.
« En utilisant le modèle d'extensions et les API existants pris en charge par Chrome, Microsoft Edge, Firefox et Safari comme base, nous commencerons par travailler sur une spécification. Nous visons à identifier un terrain d'entente, à rapprocher les implémentations et à tracer une voie pour l'évolution future ».
Sur la charte de travail, les principes de conception suivants sont évoqués :
[LIST][*]Centré sur l'utilisateur : Les extensions de navigateur permettent aux utilisateurs de personnaliser leur expérience de navigation sur le Web en fonction de leurs préférences et de leurs besoins. [Les gens devraient pouvoir restituer le contenu Web comme ils le souhaitent] [Internet est pour les utilisateurs finaux]. Nous spécifierons des API d'extension qui permettent aux développeurs d'écrire une variété d'extensions de navigateur utiles. En cas de conflit, nous donnerons la priorité aux besoins des utilisateurs finaux par rapport aux besoins des développeurs et des implémenteurs.[*]Compatibilité : Nous nous efforçons de maintenir et d'améliorer la compatibilité avec les extensions existantes et les API d'extension populaires. [Prise en charge du contenu existant] Cela permettra aux développeurs de ne pas avoir à réécrire complètement leurs extensions pour qu'elles fonctionnent dans différents navigateurs, ce qui peut être sujet aux erreurs. [Ne pas réinventer la roue][*]Performance : Nous devons permettre aux développeurs d'écrire des extensions qui n'ont pas d'impact négatif sur les performances ou la consommation d'énergie des pages Web ou du navigateur. [Le web doit être une plateforme écologiquement durable][*]Sécurité : Lors du choix des extensions à utiliser, les utilisateurs ne devraient pas avoir à faire de compromis entre fonctionnalité et sécurité. Nous spécifierons de nouvelles API d'extension, apporterons des modifications au modèle et améliorerons les autorisations pour promouvoir de bonnes pratiques de sécurité et réduire les dommages que peuvent causer les extensions de navigateur compromises ou malveillantes. [La sécurité et la confidentialité sont essentielles][*]Vie privée : De même, les utilisateurs ne devraient pas avoir à faire de compromis entre fonctionnalité et confidentialité. Nous allons permettre aux extensions de navigateur d'améliorer l'expérience de l'utilisateur tout en exigeant l'accès minimum nécessaire aux données de navigation de l'utilisateur afin de réduire ou d'éliminer le compromis que les utilisateurs finaux doivent faire entre fonctionnalité et confidentialité. [La sécurité et la confidentialité sont essentielles][*]Portabilité : Il devrait être relativement simple pour les développeurs de porter des extensions d'un navigateur à un autre, et pour les navigateurs de prendre en charge les extensions sur une variété d'appareils et de systèmes d'exploitation. [Le Web est multinavigateur, multi-OS et multiappareils] [Indépendance des médias]. Nous garderons le nombre de points d'entrée d'interface utilisateur au minimum pour éviter de[/indépendance des médias]...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.