Omdat een van de doelstellingen van het Project Fugu-team is om het voor ontwikkelaars mogelijk te maken alles op internet te doen wat platformspecifieke apps kunnen , is het team druk bezig geweest met het toevoegen van ontbrekende functies die webontwikkelaars nodig hadden om deze app-kloof te dichten. Als je me niet gelooft, kijk dan eens naar het gedeelte 'Verzonden' van de Fugu API-tracker. Hier zijn de 55 verzonden API's, in volgorde van minst tot meest recent verzonden:
Het is een lange lijst, en er ligt nog meer op ons bord. Er zijn momenteel nog een aantal API's en functies in de proeffase voor ontwikkelaars (dat wil zeggen geïmplementeerd, maar achter een functievlag), aan sommige zijn we begonnen te werken, en vele worden momenteel overwogen . Zoals u kunt zien, is het geen tijd om achterover te leunen en te zeggen dat we klaar zijn.
Synchrone bestandsmethoden voor het oorspronkelijke privébestandssysteem
Integendeel: in plaats van onze inspanningen als voltooid te verklaren, zijn we eigenlijk nog maar net begonnen. Kijk bijvoorbeeld eens naar het onderstaande diagram, dat de torenhoge relatieve gebruiksgroei laat zien van de methode navigator.storage.getDirectory()
, die wordt gebruikt als toegangspunt tot het oorspronkelijke privébestandssysteem (OPFS). Deze methode wordt bijvoorbeeld gebruikt voor de hoogwaardige opslagbehoeften van Photoshop , en waarin de opslaggemeenschap zeer geïnteresseerd is sinds de start van de afschaffing van Web SQL en zelfs daarvoor.
Nu meer mensen de OPFS gebruiken, zijn er aanvullende eisen ontstaan. Bijvoorbeeld de behoefte aan een volledig synchrone set bestandsmethoden in een werkcontext (zie whatwg/fs#7 voor achtergrondinformatie). Hoewel nieuwe web-API's over het algemeen asynchroon zijn, zou het hebben van synchrone methoden het werken met de OPFS een stuk eenvoudiger maken in een Wasm-context, en aangezien dit in een worker gebeurt, kan de hoofdthread niet worden geblokkeerd.
Privacyverbeteringen voor de hardware-API's
Een ander voorbeeld zijn de hardware-API's waarmee u verbinding kunt maken met HID- , seriële , USB- , Bluetooth- en NFC- apparaten. Hoewel sommige van deze API's al een tijdje bestaan, was er tot voor kort geen manier om een apparaat te vergeten waarmee je eerder verbinding had gemaakt. Nu is er dankzij de forget()
-methoden voor sommige API's. Hier leest u bijvoorbeeld hoe u een eerder verbonden serieel apparaat kunt vergeten, waardoor de privacy van de API wordt verbeterd.
// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();
Verfijningen voor de API voor vensterplaatsing op meerdere schermen
Een laatste voorbeeld is de Multi-Screen Window Placement API , waarbij, op basis van feedback van ontwikkelaars, de voorheen generieke schermlabels zoals "Internal Display 1"
werden vervangen door betekenisvollere labels zoals "Built-in Retina Display"
zodat gebruikers gemakkelijker kunnen associëren deze labels met de schermen van hun opstelling met meerdere schermen.
Conclusies
Zoals u aan de hand van deze drie voorbeelden kunt zien, is Project Fugu nog lang niet klaar. Behoud of gebruik onze API's en stuur feedback. Omdat alle Fugu-specificaties in het openbaar op GitHub worden ontwikkeld, kun je een spec-probleem indienen op de overeenkomstige GitHub-opslagplaats of je mening toevoegen aan een bestaand probleem. Als u een bug vindt in de implementatie van Chrome, of ontdekt dat de implementatie afwijkt van de specificaties, dient u een bug in op new.crbug.com . Zorg ervoor dat u zoveel mogelijk details vermeldt en eenvoudige reproductie-instructies geeft.
En als u zich zorgen maakt over browserondersteuning: veel Fugu-API's zorgen voor geweldige progressieve verbeteringen. Zie mijn artikel SVGcode: een PWA om rasterafbeeldingen om te zetten naar SVG-vectorafbeeldingen voor inspiratie. We beschouwen onze taak ook pas als deze API's interoperabel zijn, en we zullen blijven aandringen op verdere standaardisatie, testen en adoptie door andere browsers.