Apakah Project Fugu "selesai"?

Dengan salah satu tujuan tim Project Fugu adalah memungkinkan developer melakukan apa pun di web yang dapat dilakukan aplikasi khusus platform, tim sibuk menambahkan fitur-fitur yang hilang yang diperlukan developer web untuk menutup kesenjangan pada aplikasi ini. Jika Anda tidak percaya, lihat saja bagian "Dikirim" pada pelacak Fugu API. Berikut adalah 55 API yang dikirim, diurutkan dari yang paling lama hingga yang terakhir dikirim:

Nama API Dikirimkan
API Bluetooth WebChrome 56
WebUSB APIChrome 61
Target Berbagi WebChrome 71
Web Share API Level 2Chrome 75
Papan Klip Asinkron: Membaca dan Menulis GambarChrome 76
Target Berbagi Web Level 2Chrome 76
Masukkan Petunjuk UtamaChrome 77
Perbesar Kuota PenyimpananChrome 78
Mendapatkan API Aplikasi Terkait TerinstalChrome 80
Sinkronisasi Berkala di Latar BelakangChrome 80
desktop-pwas: Mendukung mode tampilan "minimal-ui"Chrome 80
Codec kompresiChrome 80
API KontakChrome 80
API BadgingChrome 81
Izinkan Badging API digunakan dari pekerja layanan melalui PushChrome 81
Barcode Detection APIChrome 83
API Pengindeksan KontenChrome 84
WebOTPChrome 84
Screen Wake Lock APIChrome 84
Streams API: aliran data yang dapat ditransferChrome 85
Pintasan aplikasiChrome 85
Akses Sistem FileChrome 86
Dukungan teks/html untuk api papan klip asinkronChrome 86
Dukungan Geser/Kemiringan untuk KameraChrome 87
FUGU Menerapkan perekaman output audio sistem dan aplikasi ke headphone dan speaker Chrome 88
PointerLockedMovement yang tidak disesuaikanChrome 88
Membuat pemilih Foto/Video yang mirip dengan Pemilih Foto di AndroidChrome 88
Integrasi Web Share (navigator.share) dengan Windows 10Chrome 88
NFC WebChrome 89
WebHID (Perangkat Antarmuka Manusia)Chrome 89
Web Serial APIChrome 89
Berbagi Web di DesktopChrome 89
API Pengenalan Tulis TanganChrome 90
Konfigurasi terkelola untuk Aplikasi WebChrome 91
Menjalankan PWA di Login OSChrome 91
WebCodecsChrome 93
Deteksi Tidak Ada AktivitasChrome 94
API EyeDropperChrome 95
Menu Pintasan Aplikasi untuk PWA di macOS dan LinuxChrome 96
Pendaftaran Pengendali Protokol URL untuk PWA Chrome 96
WebTransportChrome 97
Papan klip: Menempelkan gambar retina kehilangan metadata pHY.Chrome 98
PWA harus dapat di-uninstal dengan cara yang sama seperti "aplikasi sebenarnya"Chrome 99
NFC Web: NDEFReader makeReadOnly()Chrome 100
Penempatan Jendela MultilayarChrome 100
Lupa HIDDevice remember()Chrome 100
USBDevice remember()Chrome 101
Perilaku sameObject USB webChrome 101
Overlay Kontrol Jendela untuk Aplikasi Web Desktop TerinstalChrome 102
Penanganan FileChrome 102
chrome.management API tidak dapat lagi berinteraksi dengan aplikasi PWAChrome 102
Lupa SerialPort()Chrome 103
Akses Font LokalChrome 103
Permintaan Fugu: Pintasan Aplikasi Dinamis (Pintasan v2)Chrome 104
Format Kustom Web untuk Async Clipboard APIChrome 104
Semua Fugu API yang dikirimkan sejauh ini.

Daftarnya panjang, dan masih banyak lagi yang perlu kami lakukan. Masih ada beberapa API dan fitur yang saat ini sedang dalam uji coba developer (yaitu yang diterapkan, tetapi di balik tombol fitur), beberapa API dan fitur yang telah kami mulai dikerjakan, dan banyak yang sedang dipertimbangkan. Seperti yang Anda lihat, ini bukan waktunya untuk bersantai dan mengatakan sudah selesai.

Metode file sinkron untuk sistem file pribadi origin

Sebaliknya, alih-alih menyatakan upaya kita sebagai selesai, kita sebenarnya baru saja memulai. Misalnya, perhatikan diagram di bawah yang menunjukkan pertumbuhan penggunaan relatif yang melonjak dari metode navigator.storage.getDirectory(), yang digunakan sebagai titik entri ke sistem file pribadi asal (OPFS). Metode ini digunakan, misalnya, untuk kebutuhan penyimpanan berperforma tinggi Photoshop, dan yang sangat diminati komunitas penyimpanan sejak Web SQL mulai tidak digunakan lagi dan bahkan sebelumnya.

Diagram menunjukkan penggunaan relatif metode navigator.storage.getDirectory yang sangat meningkat.

Setelah makin banyak orang menggunakan OPFS, persyaratan tambahan muncul. Misalnya, kebutuhan akan set metode file yang sepenuhnya sinkron dalam konteks pekerja (lihat whatwg/fs#7 untuk latar belakang). Meskipun API web baru umumnya asinkron, memiliki metode sinkron akan membuat penggunaan OPFS jauh lebih sederhana dalam konteks Wasm, dan karena hal ini terjadi dalam worker, thread utama tidak dapat diblokir.

Peningkatan privasi untuk API hardware

Contoh lainnya adalah API hardware yang memungkinkan Anda terhubung ke perangkat HID, serial, USB, Bluetooth, dan NFC. Meskipun beberapa API ini telah ada selama beberapa waktu, hingga baru-baru ini, tidak ada cara untuk melupakan perangkat yang sebelumnya terhubung. Sekarang berkat metode forget() untuk beberapa API. Misalnya, berikut cara melupakan perangkat serial yang terhubung sebelumnya, yang meningkatkan privasi API.

// Request a serial port.
const port = await navigator.serial.requestPort();
// Then later revoke permission to the serial port.
await port.forget();

Peningkatan untuk Multi-Screen Window Placement API

Contoh terakhir adalah Multi-Screen Window Placement API, yang mana, berdasarkan masukan developer, label layar yang sebelumnya umum seperti "Internal Display 1" diganti dengan label yang lebih bermakna seperti "Built-in Retina Display" sehingga pengguna dapat lebih mudah mengaitkan label ini dengan layar penyiapan multilayar mereka.

Kesimpulan

Seperti yang Anda lihat hanya dari tiga contoh ini, Project Fugu masih jauh dari selesai. Pertahankan atau mulai gunakan API kami dan kirim masukan. Karena semua spesifikasi Fugu dikembangkan secara terbuka di GitHub, Anda dapat mengajukan masalah spesifikasi pada repo GitHub yang sesuai atau menambahkan pendapat Anda ke masalah yang ada. Jika Anda menemukan bug pada implementasi Chrome, atau menemukan bahwa implementasi tersebut berbeda dengan spesifikasi, laporkan bug di new.crbug.com. Pastikan Anda menyertakan detail sebanyak mungkin dan berikan petunjuk sederhana untuk mereproduksi bug.

Selain itu, jika Anda memiliki kekhawatiran terkait dukungan browser, banyak Fugu API memberikan peningkatan progresif yang hebat. Lihat artikel saya SVGcode: PWA untuk mengonversi gambar raster ke grafik vektor SVG untuk mendapatkan inspirasi. Kami juga tidak menganggap pekerjaan kami selesai hingga API ini dapat dioperasikan, dan kami akan terus mendorong untuk standardisasi, pengujian, dan adopsi lebih lanjut oleh browser lain.