Tùy chọn phân phối phần mở rộng thay thế

Tất cả tiện ích của Chrome phải được phân phối trực tiếp từ Cửa hàng Chrome trực tuyến hoặc bằng cách sử dụng các cơ chế được mô tả dưới đây. Việc không tuân thủ một trong các phương thức phân phối này sẽ cấu thành hành vi vi phạm chính sách Tiện ích của Chrome, đồng thời có thể khiến tiện ích và/hoặc phần mềm phân phối tiện ích đó bị gắn cờ là phần mềm không mong muốn.

Thông thường, người dùng cài đặt tiện ích từ Cửa hàng Chrome trực tuyến, nhưng đôi khi bạn có thể muốn cài đặt tiện ích qua các phương thức khác. Sau đây là hai trường hợp điển hình:

  • Một tiện ích được liên kết với một số phần mềm khác và phải cài đặt tiện ích bất cứ khi nào người dùng cài đặt phần mềm khác đó.
  • Một quản trị viên mạng muốn cài đặt các tiện ích tương tự trong toàn tổ chức của họ.

Tiện ích không được cài đặt từ Cửa hàng Chrome trực tuyến được gọi là tiện ích bên ngoài. Đối với những nhà phát triển muốn phân phối một tiện ích dưới dạng một phần của quá trình cài đặt cho phần mềm khác hoặc cho quản trị viên mạng muốn phân phối một tiện ích trong toàn tổ chức, Google Chrome hỗ trợ các phương thức cài đặt tiện ích sau:

  • Sử dụng tệp JSON chứa các lựa chọn ưu tiên (chỉ dành cho Mac OS X và Linux)
  • Sử dụng đăng ký Windows (chỉ dành cho Windows)

Cả hai cách đều hỗ trợ việc cài đặt tiện ích được lưu trữ tại update_URL. Trên Windows và Mac, update_URL phải trỏ đến Cửa hàng Chrome trực tuyến nơi lưu trữ tiện ích.

Tệp lựa chọn ưu tiên trên Linux có thể trỏ tới máy chủ của riêng bạn mà bạn đang lưu trữ tiện ích. Tệp JSON lựa chọn ưu tiên cũng hỗ trợ cài đặt một tiện ích qua tệp tiện ích .crx trên máy tính Linux của người dùng.

Trước khi bắt đầu

Trước tiên, hãy publish tiện ích này trong Cửa hàng Chrome trực tuyến hoặc đóng gói một tệp .crx và đảm bảo rằng tiện ích đó sẽ cài đặt thành công.

Nếu bạn cài đặt qua một URL cập nhật, hãy đảm bảo rằng tiện ích được lưu trữ đúng cách.

Trước khi bạn chỉnh sửa tệp lựa chọn ưu tiên hoặc sổ đăng ký, hãy lưu ý những điều sau:

  • Vị trí dự kiến của tệp .crx của tiện ích hoặc URL cập nhật nơi phân phát tệp
  • Phiên bản của tiện ích (từ tệp kê khai hoặc trang chrome://extensions)
  • ID của tiện ích (từ trang chrome://extensions khi bạn tải tiện ích đóng gói)

Các ví dụ sau đây giả định phiên bản là 1.0 và mã nhận dạng là aaaaaaaaaabbbbbbbbbbcccccccccc.

Sử dụng tệp lựa chọn ưu tiên

  1. Nếu bạn đang cài đặt từ một tệp trên Linux, hãy cung cấp tệp tiện ích .crx cho máy mà bạn muốn cài đặt tiện ích đó. (Sao chép tệp đó vào một thư mục cục bộ hoặc vào một phần mạng, chẳng hạn như \\server\share\extension.crx hoặc /home/share/extension.crx.)
  2. Tạo một tệp có tên sau ở một trong các thư mục được liệt kê bên dưới: aaaaaaaaaabbbbbbbbbbcccccccccc.json, trong đó tên tệp (không có đuôi) tương ứng với mã nhận dạng của tiện ích. Vị trí tuỳ thuộc vào hệ điều hành.

    Mac OS X:

    Đối với người dùng cụ thể: ~USERNAME/Library/Application Support/Google/Chrome/External Extensions/ Đối với tất cả người dùng: /Library/Application Support/Google/Chrome/External Extensions/

    Tệp tiện ích bên ngoài dành cho tất cả người dùng chỉ được đọc nếu mọi thư mục trong đường dẫn thuộc sở hữu của người dùng root, thuộc nhóm admin hoặc wheel và không thể ghi trên toàn thế giới. Đường dẫn cũng không được có đường liên kết tượng trưng. Những hạn chế này ngăn người dùng không có đặc quyền cài đặt tiện ích cho tất cả người dùng. Hãy xem phần khắc phục sự cố để biết thông tin chi tiết.

    Linux:

    /opt/google/chrome/extensions/

    /usr/share/google-chrome/extensions/

    Lưu ý: Hãy sử dụng chmod nếu cần để đảm bảo rằng các tệp aaaaaaaaaabbbbbbbbbbcccccccccc.json đều có thể đọc được.

  3. Chỉ dành cho Linux: Nếu bạn đang cài đặt qua một tệp, hãy chỉ định vị trí và phiên bản của tiện ích bằng các trường có tên là "external_crx" và "external_version" trong tệp đã tạo ở trên.

    • Ví dụ:
    • json { "external_crx": "/home/share/extension.crx", "external_version": "1.0" }
    • Lưu ý: Bạn cần thoát từng \` character in the location. For example,\server\share\extension.crxwould be"\\server\share\extension.crx"`.
    • Nếu bạn đang cài đặt qua một URL cập nhật, hãy chỉ định URL cập nhật của tiện ích bằng tên trường "external_update_url".
    • Ví dụ về cách cài đặt từ tệp .crx cục bộ (chỉ dành cho Linux):
    • json { "external_update_url": "http://myhost.com/mytestextension/updates.xml" }
    • Ví dụ về cách cài đặt từ Cửa hàng Chrome trực tuyến (Mac và Linux):
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx" }
    • Nếu chỉ muốn cài đặt tiện ích cho một số ngôn ngữ trình duyệt, bạn có thể liệt kê các ngôn ngữ được hỗ trợ trong tên trường "supported_locale". Ngôn ngữ có thể chỉ định ngôn ngữ mẹ như "en", trong trường hợp này, tiện ích sẽ được cài đặt cho tất cả các ngôn ngữ tiếng Anh như "en-US", "en-GB", v.v. Nếu bạn chọn một ngôn ngữ trình duyệt khác không được tiện ích hỗ trợ, thì các tiện ích bên ngoài sẽ bị gỡ cài đặt. Nếu thiếu danh sách "supported_locales", tiện ích này sẽ được cài đặt cho ngôn ngữ bất kỳ.
    • Ví dụ:
    • json { "external_update_url": "https://clients2.google.com/service/update2/crx", "supported_locales": [ "en", "fr", "de" ] }
  4. Lưu tệp JSON.

  5. Chạy Google Chrome và chuyển đến chrome://extensions; bạn sẽ thấy tiện ích đó được liệt kê.

Khắc phục sự cố về quyền của hệ điều hành Mac

Trên Mac OS, các tệp tiện ích bên ngoài của tất cả người dùng chỉ được đọc nếu quyền hệ thống tệp ngăn người dùng không có đặc quyền thay đổi tệp đó. Nếu bạn không thấy tiện ích bên ngoài được cài đặt khi Chrome chạy, thì có thể đã xảy ra vấn đề về quyền với các tệp tuỳ chọn tiện ích bên ngoài. Để xem liệu đây có phải là vấn đề không, hãy làm theo các bước sau:

  1. Chạy chương trình Console. Bạn có thể tìm thấy phiên bản này trong phần /Applications/Extensions/Console.
  2. Nếu biểu tượng ở ngoài cùng bên trái trong Bảng điều khiển là "Hiển thị danh sách nhật ký", hãy nhấp vào biểu tượng đó. Cột thứ hai sẽ xuất hiện ở bên trái.
  3. Nhấp vào "Thông báo trên Play Console" trong ngăn bên trái.
  4. Tìm chuỗi Không thể đọc các tiện ích bên ngoài. Nếu gặp sự cố khi đọc tệp tiện ích bên ngoài, bạn sẽ thấy thông báo lỗi. Hãy tìm một thông báo lỗi khác ngay phía trên thông báo đó để giải thích vấn đề. Ví dụ: nếu bạn thấy lỗi sau: "Đường dẫn /Thư viện/Hỗ trợ ứng dụng/Google/Chrome thuộc sở hữu của nhóm không đúng", bạn cần sử dụng chgrp hoặc hộp thoại Nhận thông tin của Trình tìm kiếm để thay đổi chủ sở hữu nhóm của thư mục thành Nhóm Quản trị viên.
  5. Sau khi khắc phục vấn đề, hãy chạy lại Chrome. Kiểm tra để đảm bảo bạn đã cài đặt tiện ích bên ngoài. Có thể một lỗi về quyền khiến Chrome không phát hiện được lỗi thứ hai. Nếu tiện ích bên ngoài chưa được cài đặt, hãy lặp lại các bước này cho đến khi bạn không thấy lỗi trong ứng dụng Console.

Sử dụng đăng ký Windows

  1. Tìm hoặc tạo khoá sau trong sổ đăng ký:
    • Windows 32 bit: HKEY_LOCAL_MACHINE\Software\Google\Chrome\Extensions
    • Windows 64 bit: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Google\Chrome\Extensions
  2. Tạo một khoá (thư mục) mới trong khoá Tiện ích có cùng tên với mã nhận dạng tiện ích của bạn (ví dụ: aaaaaaaaaabbbbbbbbbbcccccccccc).
  3. Trong khoá tiện ích, hãy tạo một thuộc tính "update_url" và đặt thuộc tính này thành giá trị: "https://clients2.google.com/service/update2/crx" (nội dung này trỏ đến mã crx của tiện ích trong Cửa hàng Chrome trực tuyến):

    {
      "update_url": "https://clients2.google.com/service/update2/crx"
    }
    
  4. Khởi chạy trình duyệt và chuyển đến chrome://extensions; bạn sẽ thấy danh sách tiện ích đó.

Cập nhật và gỡ cài đặt

Google Chrome quét các mục siêu dữ liệu trong tuỳ chọn và sổ đăng ký mỗi khi trình duyệt khởi động, đồng thời thực hiện mọi thay đổi cần thiết đối với các tiện ích bên ngoài đã cài đặt.

Để cập nhật tiện ích lên phiên bản mới, hãy cập nhật tệp rồi cập nhật phiên bản trong lựa chọn ưu tiên hoặc sổ đăng ký.

Để gỡ cài đặt tiện ích (ví dụ: nếu phần mềm của bạn đã bị gỡ cài đặt), hãy xoá tệp lựa chọn ưu tiên (aaaaaaaaaabbbbbbbbbbccccccc.json) hoặc siêu dữ liệu khỏi sổ đăng ký.

Câu hỏi thường gặp

Phần này giải đáp các câu hỏi thường gặp về các tiện ích bên ngoài.

Google Chrome có tiếp tục hỗ trợ phương pháp cho phép "cài đặt trước" từ M33 trở đi không?

Có, nhưng chỉ dưới dạng lượt cài đặt từ Cửa hàng Chrome trực tuyến update_URL, không phải từ đường dẫn tệp cục bộ.

Tôi có thể chỉ định một URL làm đường dẫn đến tiện ích bên ngoài không?

Có, hãy sử dụng tệp preferences JSON cho Mac OS X và Linux; registry cho Windows. Tiện ích này phải được lưu trữ như giải thích trong phần lưu trữ. Trong tệp lựa chọn ưu tiên, hãy sử dụng thuộc tính "external_update_url" để trỏ đến một tệp kê khai cập nhật có URL cho tiện ích của bạn. Trong sổ đăng ký Windows, hãy sử dụng thuộc tính "update_url".

Đâu là một số lỗi phổ biến khi cài đặt bằng tệp lựa chọn ưu tiên?

  • Không chỉ định mã/phiên bản giống với mã/phiên bản được nêu trong .crx
  • Tệp .json (aaaaaaaaaabbbbbbbbbbcccccccccc.json) nằm sai vị trí hoặc mã nhận dạng được chỉ định không khớp với mã tiện ích.
  • Lỗi cú pháp trong tệp JSON (quên các mục phân tách bằng dấu phẩy hoặc để lại dấu phẩy theo sau ở đâu đó)
  • Mục nhập tệp JSON trỏ đến đường dẫn không chính xác đến .crx (hoặc đường dẫn được chỉ định nhưng không có tên tệp)
  • Dấu gạch chéo ngược trong đường dẫn UNC không được thoát (ví dụ: "\\server\share\file" không đúng; phải là "\\\\server\\share\\extension")
  • Sự cố về quyền khi chia sẻ mạng

Một số lỗi phổ biến khi cài đặt bằng sổ đăng ký là gì?

  • Không chỉ định mã/phiên bản giống với mã/phiên bản được nêu trong Cửa hàng Chrome trực tuyến
  • Khoá được tạo không đúng vị trí trong sổ đăng ký
  • Mục truy cập sổ đăng ký trỏ đến đường dẫn không chính xác đến tệp .crx trong Cửa hàng Chrome trực tuyến
  • Sự cố về quyền khi chia sẻ mạng

Làm cách nào để cập nhật tệp nhị phân và tiện ích gốc của tôi theo từng bước?

Trước đây, khi hỗ trợ các tiện ích ngoài cửa hàng, có thể tệp nhị phân gốc và tiện ích được cập nhật ở bước khoá. Tuy nhiên, các tiện ích lưu trữ trên Cửa hàng Chrome trực tuyến được cập nhật thông qua cơ chế cập nhật của Chrome mà nhà phát triển không kiểm soát. Nhà phát triển tiện ích nên thận trọng khi cập nhật các tiện ích có phần phụ thuộc trên tệp nhị phân gốc (ví dụ: các tiện ích cũ sử dụng IBAN).

Nếu người dùng gỡ cài đặt tiện ích đó thì sao?

Nếu người dùng gỡ cài đặt tiện ích thông qua giao diện người dùng, thì tiện ích sẽ không còn được cài đặt hoặc cập nhật trong mỗi lần khởi động. Nói cách khác, tiện ích bên ngoài sẽ bị chặn trong danh sách chặn.

Làm cách nào để tôi ra khỏi danh sách chặn?

Nếu người dùng gỡ cài đặt tiện ích của bạn, thì bạn nên tôn trọng quyết định đó. Tuy nhiên, nếu bạn (nhà phát triển) vô tình gỡ cài đặt tiện ích của mình thông qua giao diện người dùng, thì bạn có thể xoá thẻ danh sách chặn bằng cách cài đặt tiện ích bình thường thông qua giao diện người dùng, sau đó gỡ cài đặt tiện ích đó.