Điều gì đang xảy ra trong Tiện ích của Chrome?

Tính đến thời điểm này, năm 2023 là một năm bận rộn đối với các tiện ích của Chrome. Ý kiến phản hồi quý giá của bạn đã giúp chúng tôi cải thiện nền tảng tiện ích và tài liệu của mình. Chúng tôi cũng tiếp tục cộng tác với các nhà cung cấp trình duyệt khác trong Nhóm cộng đồng WebExtensions để các API tiện ích hoạt động nhất quán hơn trên các trình duyệt.

Trong bài đăng này, chúng tôi sẽ chia sẻ với bạn một số thay đổi mà nhóm tiện ích Chrome đã thực hiện trong nửa đầu năm nay và những tính năng sắp ra mắt sẽ được phát hành vào cuối quý này. Hãy bắt đầu!

Các API và tính năng mới của tiện ích

Trong phần này, tôi muốn nêu bật một số lần ra mắt API quan trọng, xem xét nhanh các điểm cải tiến khác về API và chia sẻ các bản phát hành API sắp tới.

Điểm nổi bật

Tài liệu ngoài màn hình

Offscreen API (API ngoài màn hình) được giới thiệu trong Chrome 109. Tiện ích này cho phép các tiện ích Manifest V3 xử lý các trường hợp sử dụng cần tương tác với DOM hoặc cửa sổ mà không thể thực hiện trong worker dịch vụ tiện ích. Ngoài ra, Chrome 114 còn giới thiệu thêm hai lý do ngoài màn hình: 'WORKERS' cho các trường hợp khi tài liệu của bạn cần tạo một worker và 'LOCAL_STORAGE' để giúp di chuyển dữ liệu từ window.localStorage sang chrome.storage API.

Kể từ Chrome 115, bạn có thể cung cấp nhiều lý do khi tạo tài liệu ngoài màn hình. Điều này cho phép bạn thực hiện hai thao tác liên quan trong cùng một tài liệu.

API mới cho Bảng điều khiển bên 🎉

Trước đây, cách duy nhất để tạo thanh bên trong tiện ích là chèn một phần tử mới có tập lệnh nội dung trên mỗi trang. Trong Chrome 114, Side Panel API (API Bảng điều khiển bên) đã được ra mắt. Giờ đây, bạn có thể phát triển trải nghiệm thanh bên đồng hành cho người dùng theo cách đơn giản hơn nhiều. Hãy đọc thêm về cách Side Panel API cho phép bạn thiết kế trải nghiệm người dùng vượt trội.

Tiện ích từ điển cho biết định nghĩa của một từ đã chọn
Tiện ích từ điển của bảng điều khiển bên. Xem trong kho lưu trữ chrome-extensions-samples.

Trình chạy dịch vụ mạnh mẽ hơn

Tất cả sự kiện tiện ích hiện sẽ khởi động lại bộ hẹn giờ rảnh của worker dịch vụ tiện ích. Trong Chrome 110, thời gian hoạt động tối đa 5 phút đã bị xoá đối với worker dịch vụ tiện ích. Ngoài ra, các thông báo đến ứng dụng gốcthông báo trong tiện ích sẽ khởi động lại bộ hẹn giờ khi rảnh. Hãy đọc thêm về vấn đề này trong bài viết Vòng đời của worker dịch vụ tiện ích.

Các lần phát hành API khác

  • Action API: Kể từ Chrome 110, bạn có thể tuỳ chỉnh văn bản huy hiệu bằng setBadgeTextColor()getBadgeTextColor(). Ngoài ra, isEnabled() cho phép bạn kiểm tra xem thao tác đó có được bật cho thẻ hiện tại hay không.
  • Commands API (API lệnh): Lỗi trong đó lối tắt tiện ích, được khai báo trong tệp kê khai trong "commands._execute_action", sẽ không tồn tại trong quá trình chuyển đổi sang MV3, đã được khắc phục trong Chrome 111.
  • Downloads API (API Tệp tải xuống): Giao diện người dùng mặc định của tệp tải xuống trong Chrome đã chuyển từ kệ ở dưới cùng sang bên phải của hộp tìm kiếm đa năng. Để tắt hành vi này, bạn có thể sử dụng downloads.setUiOptions() thay cho setShelfEnabled().
  • History API (API nhật ký): chrome.history.getVisits()chrome.history.search() cũng trả về dữ liệu từ các thiết bị khác đã đồng bộ hoá với cơ sở dữ liệu nhật ký cục bộ. Điều này có thể dẫn đến nhiều mục trong nhật ký hơn và số lượt truy cập cao hơn. isLocal đã được thêm vào VisitItem trong Chrome 115 (dự kiến sẽ có phiên bản ổn định vào cuối tháng này) để chỉ có thể lọc theo lượt ghé thăm cửa hàng thực tế.
  • Identity API (API danh tính): Cửa sổ xác thực hiện xuất hiện dưới dạng cửa sổ bật lên, thay vì chiếm toàn bộ cửa sổ ứng dụng. Để cấp thêm quyền kiểm soát trong quá trình chuyển hướng JavaScript, chúng tôi đã thêm hai tuỳ chọn mới: abortOnLoadForNonInteractivetimeoutMsForNonInteractive.
  • API bộ nhớ: Trong Chrome 112, dung lượng bộ nhớ chrome.session đã tăng lên 10 MB. Sau đó, kích thước bộ nhớ chrome.local đã được thay đổi cho phù hợp trong Chrome 114.

Sắp có...

Các phiên bản Chrome sắp tới sẽ ra mắt nhiều tính năng giúp các tiện ích dễ dàng di chuyển sang Manifest V3. Để biết danh sách các thay đổi sắp tới liên quan đến việc di chuyển MV3, hãy xem trang về các vấn đề đã biết. Ngoài ra, chúng tôi dự định sẽ thêm các tính năng sau:

  • API DeclarativeNetRequest: Giá trị mặc định cho thuộc tính isUrlFilterCaseSensitive sẽ thay đổi thành false. Xem chuỗi tin nhắn WECG.
  • File Handling API (API Xử lý tệp) sẽ cho phép các tiện ích ChromeOS mở các tệp có loại MIME và đuôi tệp được chỉ định. Tính năng này hiện được bật bằng cờ.
  • Runtime API (API thời gian chạy): Chúng tôi sẽ phát hành runtime.getContexts() để thay thế extension.getViews() (hiện không dùng nữa). Điều này sẽ cho phép các tiện ích xác định xem một trang tiện ích như bảng điều khiển bên hoặc tài liệu ngoài màn hình có đang mở hay không. Xem đề xuất về WECG.
  • Trình chạy dịch vụ: Chúng tôi sẽ thêm các tính năng duy trì kết nối mạnh mẽ vào các API Chrome hiển thị lời nhắc cho người dùng: permissions.request(), desktopCapture.chooseDesktopMedia(), identity.launchWebAuthFlow()management.uninstall().
  • Side Panel API (API Bảng điều khiển bên): Chúng tôi sẽ ra mắt sidepanel.open(). API này sẽ mở bảng điều khiển bên của tiện ích theo phương thức lập trình để phản hồi một cử chỉ của người dùng, chẳng hạn như một lượt nhấp vào trình đơn theo bối cảnh.
  • TabCapture API: Chúng tôi sẽ thêm khả năng gọi getMediaStreamId() từ worker dịch vụ tiện ích và lấy MediaStream từ mã nhận dạng luồng trong một tài liệu ngoài màn hình. Hãy xem phần Ghi âm và chụp ảnh màn hình để biết ví dụ.

Hãy theo dõi trang Tính năng mới trong tiện ích để nắm bắt các thông báo này ngay khi chúng được cung cấp trong Chrome Beta.

Nâng cấp tài liệu và hướng dẫn khác về Manifest V3

Chúng tôi cũng đang nỗ lực cải thiện trải nghiệm học tập của nhà phát triển. Cảm ơn tất cả những bạn đã dành thời gian đặt câu hỏi trên chromium-group và báo cáo các vấn đề về tài liệu trên developer.chrome.com.

Điểm nổi bật

  • Mục Di chuyển sang MV3 mới cung cấp các cách thực tế để chuyển đổi tiện ích Manifest V2 sang Manifest V3.
  • Hướng dẫn về Trình chạy dịch vụ mở rộng cung cấp thông tin chi tiết về các chủ đề liên quan đến trình chạy dịch vụ mở rộng. Các thông tin này bao gồm cách đăng ký và cập nhật, vòng đời của các thành phần, cách hoạt động của tính năng nhập, v.v.
  • Phần hướng dẫn Xử lý sự kiện bằng trình chạy dịch vụ sẽ hướng dẫn bạn những kiến thức cơ bản về trình chạy dịch vụ của tiện ích. Trình bổ trợ này tạo một tiện ích thanh địa chỉ giúp bạn truy cập nhanh vào các trang tham khảo API tiện ích.

Nội dung cập nhật khác

Sắp có...

  • Cách di chuyển mã được lưu trữ từ xa sang Manifest V3.
  • Cách chạy kiểm thử tự động cho tiện ích Chrome.
  • Cải thiện hướng dẫn về Quyền xử lý yêu cầu trong mạng bằng quy tắc khai báo.
  • Cải tiến nội dung giải thích về tập lệnh.

💡 Bạn có biết?

Trước khi kết thúc, chúng tôi muốn chia sẻ một số công cụ và thông tin chi tiết hữu ích:

  • Chrome đã bắt đầu hỗ trợ WebHID; bạn có thể thử nghiệm API này bắt đầu từ Chrome 115 (nhưng xin lưu ý rằng API này vẫn đang trong quá trình phát triển).
  • Puppeteer hiện hỗ trợ kiểm thử ở chế độ không có giao diện người dùng bằng --headless=new . Đọc thêm về tính năng này trong bài đăng trên blog Nâng cấp chế độ không có giao diện người dùng của Chrome.
  • Với Công cụ kiểm thử bản cập nhật tiện ích, bạn có thể kiểm tra xem cảnh báo nào được kích hoạt khi quyền thay đổi trong tệp kê khai. Bằng cách này, bạn có thể trải nghiệm quy trình cập nhật như một người dùng. Điều này rất quan trọng vì một số quyền có thể vô hiệu hoá tiện ích cho đến khi người dùng cấp lại quyền truy cập.

Rất mong được kết nối với bạn! 🙌

Năm nay, nhóm tiện ích rất vui được gặp gỡ trực tiếp các nhà phát triển tiện ích trong các sự kiện Google I/O Connect. Chúng tôi đang nỗ lực tạo ra những không gian mới để kết nối với bạn, chẳng hạn như ra mắt các nhóm tập trung và sự kiện gặp mặt.

Trong thời gian chờ đợi, vui lòng tiếp tục đặt câu hỏi trên chromium-groups, cân nhắc tham gia WECG và báo cáo mọi vấn đề về tài liệu trên kho lưu trữ GitHub developer.chrome.com.

Một lần nữa, cảm ơn bạn đã tham gia cộng đồng nhà phát triển tiện ích!