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ể thực hiện mọi thứ trên web mà ứng dụng dành riêng cho nền tảng có thể, họ đang bận rộn bổ sung các tính năng còn thiếu mà các nhà phát triển web cần thiết để thu hẹp khoảng cách về ứng dụng. Nếu không tin thì bạn chỉ cần xem phần "Đã vận chuyển" của trình theo dõi API Fugu. Dưới đây là 55 API đã vận chuyển, theo thứ tự ít nhất cho đến gần đây nhất được vận chuyển:

Tên API Nơi vận chuyển
API Bluetooth cho webChrome 56
API WebUSBChrome 61
Mục tiêu chia sẻ trên 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 ý phímChrome 77
Tăng hạn mức bộ nhớChrome 78
Tải API Ứng dụng có liên quan đã cài đặtChrome 80
Đồng bộ hoá định kỳ ở chế độ nềnChrome 80
desktop-pwas: Hỗ trợ chế độ hiển thị "minimal-ui"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
Mã vạch APIChrome 83
API Lập chỉ mục nội dungChrome 84
WebOTPChrome 84
API Khoá chế độ thức trên màn hìnhChrome 84
API Bảng tin: Luồng có thể chuyểnChrome 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ợ tính năng xoay/nghiêng cho Máy ảnhChrome 87
FG triển khai tính năng ghi lại dữ liệu đầu ra âm thanh của ứng dụng và hệ thống đối với tai nghe và loa Chrome 88
PointerLock chưa điều chỉnhMovementChrome 88
Tạo một bộ 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ẻ web (navigation.share) với Windows 10Chrome 88
NFC trên webChrome 89
WebHID (Thiết bị giao diện con người)Chrome 89
API nối tiếp 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 trạng thái rảnhChrome 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ớ mạch: 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 gỡ cài đặt theo cách giống như "ứng dụng thực"Chrome 99
NFC trên web: NDEFReader makeReadOnly()Chrome 100
Vị trí cửa sổ nhiều màn hìnhChrome 100
HIDDevice remember()Chrome 100
Quên thiết bị USB()Chrome 101
Hành vi của sameObject trên USB trên webChrome 101
Lớp phủ điều khiển cửa sổ cho các ứng dụng web đã cài đặt dành cho máy tínhChrome 102
Xử lý tệpChrome 102
API chrome.management không thể tương tác với ứng dụng PWA nữaChrome 102
SerialPort quên()Chrome 103
Quyền truy cập phông chữ trên máyChrome 103
Yêu cầu của Fugu: Lối tắt ứng dụng động (Lối tắt phiên bản 2)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 đã chuyển cho đến thời điểm này.

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

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

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

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

Giờ đây, khi nhiều người sử dụng OPFS hơn thì các yêu cầu bổ sung đã xuất hiện. Ví dụ: nhu cầu về một tập hợp các phương thức tệp đồng bộ hoàn toàn trong ngữ cảnh worker (xem whatwg/fs#7 để biết nền). Mặc dù các API web mới thường không đồng bộ, nhưng việc có các phương thức đồng bộ sẽ giúp quá trình làm việc với OPFS đơn giản hơn nhiều trong ngữ cảnh Wasm và vì điều này diễn 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à các API phần cứng cho phép bạn kết nối với các thiết bị HID, serial, USB, BluetoothNFC. Mặc dù một số API này đã hoạt động được một thời gian, nhưng cho đến gần đây thì vẫn chưa có cách nào để quên thiết bị mà bạn đã kết nối trước đó. Hiện nay, nhờ các phương thức forget() dành cho một số API. Ví dụ: dưới đây là cách xoá thiết bị nối tiếp đã kết nối trước đó, 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ổ đa màn hình

Ví dụ cuối cùng là API Vị trí cửa sổ đa 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 trong quá trình thiết lập nhiều màn hình.

Kết luận

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

Và, nếu bạn lo ngại về khả năng hỗ trợ của trình duyệt, nhiều API Fugu tạo ra các tính năng nâng cao tiến bộ tuyệt vời. Hãy xem bài viết của tôi SVGcode: một PWA để chuyển đổi hình ảnh đường quét sang đồ hoạ vectơ SVG để lấy cảm hứng. Chúng tôi cũng chưa coi việc làm của mình là hoàn tất