Dự án Fugu có "hoàn thành" không?

Với một trong những mục tiêu của nhóm Project Fugu là giúp các nhà phát triển có thể bất cứ thứ gì trên web mà các ứng dụng dành riêng cho nền tảng có thể, nhóm đã bận rộn bổ sung những tính năng còn thiếu nhà phát triển web cần thu hẹp khoảng cách ứng dụng này. Nếu không tin tôi, bạn chỉ cần xem "Đã giao hàng" của trình theo dõi Fugu API. Sau đây là 55 đã vận chuyển, theo thứ tự ít nhất đến gần đây nhất được vận chuyển:

Tên API Đã giao hàng
API Bluetooth trên webChrome 56
API WebUSBChrome 61
Mục tiêu chia sẻ webChrome 71
API Chia sẻ web cấp 2Chrome 75
Bảng nhớ tạm không đồng bộ: Đọc và ghi hình ảnhChrome 76
Mục tiêu chia sẻ trên web cấp 2Chrome 76
Nhập gợi ý chínhChrome 77
Tăng hạn mức bộ nhớChrome 78
Tải API ứng dụng có liên quan được cài đặtChrome 80
Đồng bộ hoá định kỳ ở chế độ nềnChrome 80
desktop-pwas: Hỗ trợ "minimal-ui" chế độ hiển thịChrome 80
Bộ mã hoá và giải mã nénChrome 80
API Danh bạChrome 80
API Huy hiệuChrome 81
Cho phép sử dụng API Huy hiệu từ một trình chạy dịch vụ thông qua chế độ ĐẩyChrome 81
Quét mã vạchChrome 83
API Lập chỉ mục nội dungChrome 84
WebOTPChrome 84
API chế độ khoá màn hìnhChrome 84
Streams API: sự kiện phát trực tiếp có thể chuyển điChrome 85
Lối tắt ứng dụngChrome 85
Quyền truy cập vào hệ thống tệpChrome 86
Hỗ trợ văn bản/html cho API bảng nhớ tạm không đồng bộChrome 86
Hỗ trợ xoay/nghiêng cho Máy ảnhChrome 87
FIAB Triển khai tính năng ghi lại đầu ra âm thanh của hệ thống và ứng dụng đến tai nghe và loa Chrome 88
PointerLock chưa điều chỉnh chuyển độngChrome 88
Tạo một Công cụ chọn ảnh/video tương tự như Công cụ chọn ảnh trên AndroidChrome 88
Tích hợp tính năng Chia sẻ trên web (navigation.share) với Windows 10Chrome 88
NFC trên webChrome 89
WebHID (Thiết bị có giao diện người dùng)Chrome 89
API Serial WebChrome 89
Chia sẻ trên web trên máy tínhChrome 89
API Nhận dạng chữ viết tayChrome 90
Cấu hình được quản lý cho Ứng dụng webChrome 91
Chạy PWA khi đăng nhập vào hệ điều hànhChrome 91
WebCodecsChrome 93
Phát hiện thiết bị không hoạt độngChrome 94
API EyeDropperChrome 95
Trình đơn lối tắt ứng dụng cho PWA trên macOS và LinuxChrome 96
Đăng ký Trình xử lý giao thức URL cho PWA Chrome 96
WebTransportChrome 97
Bảng nhớ tạm: Việc dán hình ảnh võng mạc sẽ làm mất siêu dữ liệu pHY.Chrome 98
PWA phải có thể được gỡ cài đặt giống như cách "ứng dụng thực" có thểChrome 99
NFC trên web: NDEFReader makeReadOnly()Chrome 100
Vị trí đặt cửa sổ nhiều màn hìnhChrome 100
Quên() thiết bị tìm thiết bịChrome 100
USBDevice Glance()Chrome 101
Hành vi của cùng thành phần USB trên webChrome 101
Lớp phủ chế độ điều khiển cửa sổ cho các ứng dụng web dành cho máy tính đã cài đặtChrome 102
Xử lý tệpChrome 102
API chrome.management không thể tương tác với các ứng dụng PWA nữaChrome 102
Cổng chuyển đổi quên()Chrome 103
Quyền truy cập phông chữ cục bộChrome 103
Yêu cầu Fuugu: Lối tắt ứng dụng động (Lối tắt v2)Chrome 104
Các định dạng tuỳ chỉnh trên web cho API Bảng nhớ tạm không đồng bộChrome 104
Tất cả API Fugu đã được vận chuyển cho đến thời điểm này.

Danh sách rất dài và còn nhiều món khác nữa. Vẫn còn một số API và tính năng hiện ở trong bản dùng thử dành cho nhà phát triển (tức là được triển khai, nhưng đằng sau một cờ tính năng), một số tính năng mà chúng tôi đã bắt đầu bạn cần cải thiện, và nhiều yếu tố khác đang được cân nhắc. Khi bạn có thể thấy, đã đến lúc bạn nên tận hưởng rồi nói rằng chúng ta đã xong.

Phương thức tệp đồng bộ cho hệ thống tệp riêng tư gốc

Ngược lại, thay vì tuyên bố nỗ lực của chúng ta là đã hoàn thành, chúng ta thực sự chỉ nhận được đầu. Ví dụ: hãy xem xét biểu đồ dưới đây thể hiện mức sử dụng tương đối tăng vọt của navigator.storage.getDirectory() , được dùng làm điểm truy cập đến hệ thống tệp riêng tư gốc (OPFS). Phương pháp này được sử dụng cho ví dụ: cho Bộ nhớ hiệu suất cao của Photoshop cũng như nhu cầu của cộng đồng về bộ nhớ rất quan tâm đến kể từ khi Web SQL bắt đầu ngừng hoạt động và thậm chí là trước đó.

Biểu đồ cho thấy mức sử dụng tương đối của phương thức navigator.storage.getDirectory tăng vọt.

Giờ đây, khi có nhiều người sử dụng OPFS hơn, các yêu cầu bổ sung đã xuất hiện. Ví dụ: nhu cầu về một tập hợp phương thức tệp hoàn toàn đồng bộ trong ngữ cảnh worker (xem whatwg/fs#7 cho nền). Mặc dù API web mới đang nói chung là không đồng bộ, nên việc có các phương thức đồng bộ sẽ giúp làm việc với OPFS đơn giản hơn rất nhiều trong ngữ cảnh Wasm và vì điều này xảy ra trong một worker nên không thể chặn luồng chính.

Cải thiện quyền riêng tư cho API phần cứng

Một ví dụ khác là API phần cứng cho phép bạn kết nối với HID, sổ nối tiếp, USB, Thiết bị BluetoothNFC. Mặc dù một số các API này đã xuất hiện được một thời gian, cho đến gần đây, không có cách nào để quên một thiết bị mà đã kết nối trước đó. Giờ đây, nhờ có Phương thức forget() cho một số API. Cho ví dụ: dưới đây là cách quên một thiết bị nối tiếp đã kết nối trước đó, cách này giúp cải thiện tính bảo mật của API.

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

Tinh chỉnh cho API Vị trí cửa sổ nhiều màn hình

Ví dụ cuối cùng là API Vị trí cửa sổ nhiều màn hình, trong đó, dựa trên phản hồi của nhà phát triển, các nhãn màn hình chung trước đây như "Internal Display 1" đã được thay thế bằng các nhãn có ý nghĩa hơn như "Built-in Retina Display" để người dùng có thể dễ dàng liên kết các nhãn này với màn hình thiết lập nhiều màn hình của chúng.

Kết luận

Như bạn có thể thấy chỉ trong ba ví dụ này, Dự án Fugu vẫn chưa thể hoàn thành. Giữ lại hoặc bắt đầu thông qua API của chúng tôi và gửi phản hồi. Vì tất cả thông số của Fugu đều được phát triển công khai trên GitHub, nên bạn có thể báo cáo vấn đề thông số kỹ thuật trên kho lưu trữ GitHub tương ứng hoặc bổ sung ý kiến về vấn đề hiện có. Nếu bạn tìm lỗi trong quá trình triển khai Chrome hoặc phát hiện ra rằng cách triển khai khác với spec, sau đó báo cáo lỗi tại new.crbug.com. Hãy nhớ cung cấp càng nhiều thông tin chi tiết càng tốt và cung cấp những hướng dẫn đơn giản về cách tái sản xuất.

Và nếu bạn lo ngại về việc hỗ trợ trình duyệt, nhiều API Fugu tạo ra sự tiến bộ các tính năng nâng cao. Xem bài viết của tôi Mã SVG: PWA để chuyển đổi hình ảnh đường quét thành đồ họa vectơ SVG cho nguồn cảm hứng. Chúng tôi cũng chưa xem xét công việc của mình cho đến khi các API này có khả năng tương tác và chúng tôi sẽ tiếp tục thúc đẩy tiêu chuẩn hoá, thử nghiệm và áp dụng hơn nữa cho các trình duyệt khác.