L'un des objectifs de l'équipe Project Fugu étant de permettre aux développeurs de faire tout ce que peuvent faire sur le Web les applications spécifiques à une plate-forme, l'équipe s'est efforcée d'ajouter les fonctionnalités manquantes dont les développeurs Web avaient besoin pour combler cette lacune. Si vous ne me croyez pas, consultez simplement la section "Expédié" de l'outil de suivi de l'API Fugu. Voici les 55 API expédiées, de la plus ancienne à la plus récente:
La liste est longue, et il y en a encore plus à ce sujet. Il existe encore quelques API et fonctionnalités en cours d'évaluation pour les développeurs (c'est-à-dire implémentées, mais derrière un flag de fonctionnalité), d'autres sur lesquelles nous avons commencé à travailler et d'autres en cours de réflexion. Comme vous pouvez le voir, il n'est pas temps de se détendre pour dire que nous avons terminé.
Méthodes de fichiers synchrones pour le système de fichiers privé d'origine
Bien au contraire, plutôt que de déclarer nos efforts comme terminés, nous ne faisons que commencer. Prenons l'exemple du graphique ci-dessous qui montre la croissance relative de l'utilisation qui monte en flèche de la méthode navigator.storage.getDirectory()
, utilisée comme point d'entrée du système de fichiers privé (OPFS) d'origine. Cette méthode est utilisée, par exemple, pour les besoins de stockage hautes performances de Photoshop, qui suscite un intérêt fortement intéressé par la communauté du stockage depuis l'abandon de Web SQL, et même avant.
Maintenant que davantage de personnes utilisent le service OPFS, des exigences supplémentaires sont apparues. Par exemple, la nécessité d'un ensemble entièrement synchrone de méthodes de fichier dans un contexte de nœud de calcul (consultez whatwg/fs#7 pour en savoir plus). Bien que les nouvelles API Web soient généralement asynchrones, l'utilisation de méthodes synchrones rendrait l'utilisation de l'OPFS beaucoup plus simple dans un contexte Wasm. Comme cela se produit dans un nœud de calcul, le thread principal ne peut pas être bloqué.
Améliorations de la confidentialité pour les API matérielles
Les API matérielles vous permettent également de vous connecter à des appareils HID, serial, USB, Bluetooth et NFC. Bien que certaines de ces API existent depuis un certain temps, jusqu'à récemment, il n'y avait aucun moyen d'oublier un appareil auquel vous vous étiez connecté auparavant. Cela est désormais possible grâce aux méthodes forget()
pour certaines API. Par exemple, voici comment supprimer un appareil série précédemment connecté, ce qui améliore la confidentialité de l'API.
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
Améliorations apportées à l'API Multi-Screen Window Placement
Un dernier exemple est l'API Multi-Screen Window Placement, où, suite aux commentaires des développeurs, les libellés d'écran génériques tels que "Internal Display 1"
ont été remplacés par des libellés plus significatifs comme "Built-in Retina Display"
afin que les utilisateurs puissent les associer plus facilement aux écrans de leur configuration multi-écran.
Conclusions
Comme vous pouvez le constater dans ces trois exemples, le projet Fugu est loin d'être terminé. Continuez ou commencez à utiliser nos API, et envoyez vos commentaires. Étant donné que toutes les spécifications Fugu sont développées en Open Source sur GitHub, vous pouvez signaler un problème de spécification dans le dépôt GitHub correspondant ou ajouter vos réflexions à un problème existant. Si vous constatez un bug dans l'implémentation de Chrome ou si vous découvrez que l'implémentation est différente des spécifications, signalez-le à l'adresse new.crbug.com. Veillez à inclure autant de détails que possible et à fournir des instructions simples pour reproduire le bug.
Si la compatibilité des navigateurs vous préoccupe, de nombreuses API Fugu permettent d'effectuer d'importantes améliorations progressives. Consultez mon article SVGcode: une PWA pour convertir des images matricielles en images vectorielles SVG pour en savoir plus. De plus, nous ne considérons pas notre travail comme terminé tant que ces API ne sont pas interopérables, et nous continuerons à tout mettre en œuvre pour standardiser, tester et adopter d'autres navigateurs.