Vòng đời cập nhật của tiện ích trên Chrome

Hướng dẫn này trình bày chi tiết quy trình cập nhật tiện ích hoàn chỉnh, bao gồm quy trình cập nhật tiêu chuẩn, chế độ ghi đè thủ công, API dành cho nhà phát triển và tác động đáng kể của các chính sách dành cho doanh nghiệp.

Chu kỳ cập nhật tiêu chuẩn

Chrome được thiết kế để tự động cập nhật các tiện ích đã cài đặt lên phiên bản mới nhất, đảm bảo người dùng có thể sử dụng các tính năng mới và bản sửa lỗi bảo mật. Theo mặc định, Chrome sẽ kiểm tra các bản cập nhật tiện ích khi khởi động và sau mỗi vài giờ.

Một khía cạnh quan trọng của quy trình cập nhật là bản cập nhật chỉ được cài đặt khi tiện ích được coi là không hoạt động. Để tiện ích ở trạng thái rảnh, các thành phần của tiện ích không được ở trạng thái đang hoạt động. Trong bối cảnh của Manifest V3, điều này chủ yếu có nghĩa là trình chạy dịch vụ của tiện ích không chạy. Service worker được thiết kế để hoạt động dựa trên sự kiện và kết thúc sau một khoảng thời gian không hoạt động. Ngoài ra, mọi trang tiện ích đang mở (chẳng hạn như bảng điều khiển bên, cửa sổ bật lên hoặc trang tuỳ chọn) đều khiến tiện ích không được coi là đang ở trạng thái rảnh. Tập lệnh nội dung đang hoạt động không ảnh hưởng đến việc tiện ích có được coi là không hoạt động hay không.

Yêu cầu về thời gian chờ này có thể khiến các bản cập nhật cho những tiện ích thường xuyên hoạt động bị chậm trễ. Nếu trình chạy dịch vụ của một tiện ích liên tục được kích hoạt bởi các sự kiện, thì tiện ích đó có thể không bao giờ đạt đến trạng thái rảnh và bản cập nhật sẽ bị hoãn lại cho đến khi trình duyệt khởi động lại.

Theo dõi quá trình phân phối bản cập nhật tiện ích

Để biết có bao nhiêu người dùng đang sử dụng phiên bản mới nhất của tiện ích, hãy sử dụng trang tổng quan phân tích của Cửa hàng Chrome trực tuyến. Truy cập trang tổng quan dành cho nhà phát triển Cửa hàng Chrome trực tuyến rồi chọn một trong các tiện ích đã xuất bản của bạn. Trong thanh điều hướng bên, hãy chuyển đến: Analytics -> Users (Số liệu phân tích -> Người dùng) rồi di chuyển xuống Daily users by item chart (Biểu đồ người dùng hằng ngày theo mặt hàng). Tại đây, bạn có thể xem số lượng người dùng đang sử dụng phiên bản mới nhất của bạn.

Ảnh chụp màn hình cho thấy số người dùng hằng ngày theo phiên bản của một tiện ích mẫu.

Cập nhật tiện ích theo cách thủ công

Nếu người dùng muốn nhận ngay các bản cập nhật mới nhất, Chrome sẽ cung cấp một cơ chế cập nhật thủ công. Đây cũng là một công cụ hữu ích khi kiểm thử các bản cập nhật.

Người dùng cá nhân có thể buộc cập nhật tất cả các tiện ích đã cài đặt bằng cách làm theo các bước sau:

  1. Chuyển đến chrome://extensions.
  2. Bật Chế độ nhà phát triển bằng nút bật/tắt ở góc trên cùng bên phải.
  3. Nhấp vào nút Cập nhật xuất hiện.

Thao tác này sẽ nhắc Chrome tìm nạp ngay phiên bản mới nhất của tất cả tiện ích đã cài đặt từ Cửa hàng Chrome trực tuyến.

Kiểm tra các bản cập nhật của Tiện ích

API chrome.runtime cung cấp các công cụ để tiện ích tương tác với cơ chế cập nhật.

Kiểm tra bản cập nhật theo yêu cầu

Hàm chrome.runtime.requestUpdateCheck() cho phép một tiện ích chủ động bắt đầu kiểm tra bản cập nhật. Điều này đặc biệt hữu ích đối với những tiện ích có một phần phụ thuộc quan trọng vào dịch vụ phụ trợ và cần đảm bảo rằng chúng đang chạy phiên bản tương thích mới nhất.

Khi hàm này được gọi, Chrome sẽ truy vấn Cửa hàng Chrome trực tuyến để tìm phiên bản mới và tải phiên bản mới xuống nếu có. Lệnh gọi lại của hàm sẽ nhận được một trạng thái cho biết kết quả của quá trình kiểm tra.

Theo dõi các bản cập nhật hiện có

Sự kiện chrome.runtime.onUpdateAvailable sẽ kích hoạt khi một bản cập nhật đã được tải xuống và sẵn sàng cài đặt. Sự kiện này cung cấp số phiên bản mới trong phần thông tin chi tiết. Bằng cách theo dõi sự kiện này, tiện ích có thể xác định rằng có bản cập nhật và cân nhắc chuyển sang trạng thái rảnh hoặc gây ra quá trình tải lại bằng cách sử dụng chrome.runtime.reload() khi thích hợp.

Đoạn mã sau đây cho thấy một mẫu triển khai cơ bản:

Trong những trường hợp đặc biệt, bạn có thể buộc trình duyệt kiểm tra xem có bản cập nhật tiện ích nào không bằng cách sử dụng chrome.runtime.requestUpdateCheck():

Điều quan trọng cần lưu ý là trình duyệt sẽ điều tiết các lệnh gọi thường xuyên đến requestUpdateCheck(). Chỉ sử dụng hàm này khi bạn biết có bản cập nhật. Ví dụ: khi một phần phụ trợ được cập nhật yêu cầu phiên bản mới hơn của tiện ích.

Kiểm soát các bản cập nhật thông qua chính sách doanh nghiệp

Trong môi trường doanh nghiệp được quản lý, quy trình cập nhật tiện ích tiêu chuẩn phải tuân theo các chính sách do quản trị viên hệ thống đặt ra. Những chính sách này có thể ghi đè hành vi mặc định để thực thi tính bảo mật và độ ổn định.

Buộc cài đặt

Chính sách ExtensionInstallForcelist cho phép quản trị viên tự động cài đặt một số tiện ích cụ thể cho người dùng. Người dùng không thể tắt hoặc gỡ cài đặt các tiện ích được cài đặt bằng chính sách này.

Ghim phiên bản tiện ích

Tuy nhiên, các doanh nghiệp thường cần kiểm soát chính xác phiên bản của một tiện ích đang được sử dụng để đảm bảo khả năng tương thích với phần mềm khác. Để thực hiện việc này, quản trị viên có thể "ghim" một tiện ích vào một phiên bản cụ thể. Việc này được thực hiện thông qua Bảng điều khiển dành cho quản trị viên của Google, nơi quản trị viên có thể chọn phiên bản cần thiết cho một đơn vị tổ chức. Khi một tiện ích được ghim, Chrome sẽ không cập nhật tiện ích đó lên phiên bản cao hơn phiên bản đã chỉ định.

Ghi đè nguồn cập nhật

Các doanh nghiệp có thể lưu trữ các phiên bản phân nhánh của tiện ích cho các lý do bảo mật hoặc tuỳ chỉnh. To làm như vậy, hãy sử dụng chính sách ExtensionSettings với thuộc tính override_update_url được đặt thành true. Chính sách này buộc Chrome tìm nạp tiện ích và các bản cập nhật của tiện ích đó từ một URL cụ thể, thay vì từ Cửa hàng Chrome trực tuyến.

Đặt phiên bản Chrome tối thiểu

Bạn có thể chỉ định minimum_chrome_version trong tệp kê khai của tiện ích. Điều này đảm bảo rằng tiện ích chỉ được cài đặt trên các phiên bản Chrome hỗ trợ những API mà tiện ích sử dụng.

Đối với các lượt cài đặt mới, Cửa hàng Chrome trực tuyến sẽ ngăn người dùng sử dụng các phiên bản Chrome cũ cài đặt tiện ích này và hiển thị thông báo "Không tương thích". Đối với người dùng hiện tại, nếu một bản cập nhật cho tiện ích làm tăng minimum_chrome_version lên phiên bản cao hơn phiên bản Chrome mà người dùng đã cài đặt, thì họ sẽ âm thầm ngừng nhận các bản cập nhật cho tiện ích đó. Nhà phát triển cần lưu ý điều này và thông báo cho người dùng nếu một phần đáng kể cơ sở người dùng của họ có thể bị ảnh hưởng.