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ơ chế được mô tả bên dưới. 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 vi phạm chính sách tiện ích của Chrome và có thể dẫn đến tiện ích và/hoặc phần mềm phân phối phần mềm đó để 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 các tiện ích từ Cửa hàng Chrome trực tuyến, nhưng đôi khi bạn có thể muốn có một được cài đặt qua các phương tiện khác. Dưới đây là hai trường hợp điển hình:

  • Tiện ích liên kết với một số phần mềm khác, nên bạn 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 bộ 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. Dành cho nhà phát triển muốn phân phối một tiện ích trong quá trình cài đặt cho các ứng dụng phần mềm hoặc quản trị viên mạng muốn phân phối tiện ích trong toàn bộ tổ chức của họ, Google Chrome hỗ trợ các phương thức cài đặt tiện ích sau:

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

Cả hai cách đều hỗ trợ 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 phải lưu trữ tiện ích.

Tệp lựa chọn ưu tiên trên Linux có thể trỏ đến máy chủ của riêng bạn nơi bạn đang lưu trữ tiện ích. Tệp JSON chứa lựa chọn ưu tiên cũng hỗ trợ cài đặt một tiện ích từ tệp mở rộng .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 xuất bản tiện ích đó trong Cửa hàng Chrome trực tuyến hoặc đóng gói một tệp .crx rồi tạo đảm bảo ứng dụng cài đặt thành công.

Nếu cài đặt qua một URL cập nhật, hãy đảm bảo 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 chứa tiện ích đó đã phân phát
  • 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 gói tiện ích)

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 có đuôi .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 mạng chia sẻ, ví dụ: \\server\share\extension.crx hoặc /home/share/extension.crx.)
  2. Tạo một tệp có tên sau đây vào 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ệp) tương ứng với mã tiện ích của bạn. Vị trí phụ thuộc vào hệ điều hành.

    Mac OS X:

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

    Tệp tiện ích mở rộng bên ngoài dành cho tất cả người dùng sẽ chỉ được đọc nếu mọi thư mục trong đường dẫn đều thuộc sở hữu bởi người dùng root, có nhóm admin hoặc wheel và không thể ghi được. Đường dẫn phải cũng không có liên kết tượng trưng. Những hạn chế này ngăn người dùng thông thường gây ra các tiện ích mở rộng được cài đặt cho tất cả người dùng. Hãy xem phần khắc phục sự cố để biết 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 aaaaaaaaaabbbbbbbbbbcccccccccc.json có thể đọc được.

  3. Chỉ dành cho Linux: Nếu bạn đang cài đặt từ một tệp, hãy chỉ định vị trí và phiên bản của tiện ích bằng trường có tên "external_crx" và "external_version" trong tệp được 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 thông qua một URL cập nhật, hãy chỉ định URL cập nhật của tiện ích kèm theo 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ê ngôn ngữ trong tên trường "supported_locale". Ngôn ngữ có thể chỉ định ngôn ngữ gốc như "en" trong trong trường hợp tiện ích mở rộng sẽ được cài đặt cho tất cả ngôn ngữ tiếng Anh như "en-US", "en-GB", v.v. Nếu một ngôn ngữ trình duyệt khác được chọn không được tiện ích hỗ trợ, ngôn ngữ bên ngoài các tiện ích mở rộng sẽ bị gỡ cài đặt. Nếu là "supported_locales" thiếu danh sách, phần mở rộng sẽ là cho bất kỳ ngôn ngữ nào.
    • 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. Khởi chạy Google Chrome rồi truy cập chrome://extensions; bạn sẽ thấy tiện ích được liệt kê.

Khắc phục các vấn đề về quyền trên Mac OS

Trên Mac OS, tệp tiện ích bên ngoài dành cho tất cả người dùng chỉ được đọc nếu có quyền hệ thống tệp ngăn người dùng không có đặc quyền thay đổi nó. Nếu bạn không thấy tiện ích bên ngoài được cài đặt khi Chrome đã được phát hành. Có thể có vấn đề về quyền với các lựa chọn ưu tiên về tiện ích bên ngoài tệp. Để xem đây có phải là vấn đề hay 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 ứng dụng này trong /Ứng dụng/Tiện ích/Bảng điều khiển.
  2. Nếu biểu tượng ở ngoài cùng bên trái trong Bảng điều khiển hiển thị "Hiển thị danh sách nhật ký", hãy nhấp vào biểu tượng đó. Cột thứ hai xuất hiện ở bên trái.
  3. Nhấp vào "console" (Thông báo trên Play Console) trong ngăn bên trái.
  4. Tìm chuỗi Không thể đọc tiện ích bên ngoài. Nếu có sự cố khi đọc tệp tiện ích bên ngoài, bạn sẽ thấy thông báo lỗi. Tìm thông báo lỗi khác ngay phía trên để giải thích vấn đề. Ví dụ: nếu bạn thấy lỗi sau: "Path /Library/Application Support/Google/Chrome do sai nhóm sở hữu", bạn cần sử dụng chgrp hoặc hộp thoại Tải 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 tiện ích bên ngoài đã được cài đặt. Nó có thể là do 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 trên Play Console.

Sử dụng sổ đă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 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 đó thành giá trị: "https://clients2.google.com/service/update2/crx" (đoạn mã này trỏ đến tệp 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. Chạy trình duyệt rồi truy cập chrome://extensions; bạn sẽ thấy tiện ích được liệt kê.

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 lần trình duyệt khởi động và thực hiện mọi thay đổi cần thiết đối với tiện ích bên ngoài đã cài đặt.

Để cập nhật tiện ích lên một 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 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á lựa chọn ưu tiên hoặc siêu dữ liệu từ sổ đăng ký.

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

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

Phương pháp để cho phép "cài đặt trước" có phải vẫn được Google Chrome hỗ trợ từ M33 trở đi?

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, chứ 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; cơ quan quản lý dành cho Windows. Chiến lược phát hành đĩa đơn 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 "external_update_url" để trỏ đến một tệp kê khai cập nhật có URL cho tiện ích. Trong sổ đăng ký Windows, hãy sử dụng "update_url" thuộc tính này.

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

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

Một số lỗi thường gặp khi cài đặt bằng sổ đăng ký là gì?

  • Không chỉ định cùng một id/phiên bản với ID/phiên bản được liệt kê trong Cửa hàng Chrome trực tuyến
  • Khoá được tạo sai vị trí trong sổ đăng ký
  • Mục nhập sổ đăng ký trỏ đến đường dẫn không chính xác tới 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ừng tệp nhị phân và tiện ích gốc?

Trước đây, khi tiện ích ngoài cửa hàng được hỗ trợ, bạn có thể có tệp nhị phân gốc và tiện ích sẽ được cập nhật trong bước khoá. Tuy nhiên, những tiện ích được lưu trữ trên Cửa hàng Chrome trực tuyến lại đượ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 hãy cẩn thận khi cập nhật các tiện ích có phần phụ thuộc vào tệp nhị phân gốc (ví dụ: tiện ích cũ sử dụng NPAPI).

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 này thông qua giao diện người dùng, thì tiện ích này sẽ không còn được cài đặt hoặc cập nhật trên mỗi lần khởi động. Nói cách khác, tiện ích bên ngoài sẽ bị đưa vào danh sách chặn.

Làm cách nào để thoát 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 bạn thông qua giao diện người dùng, thì bạn có thể xóa thẻ danh sách chặn bằng cách cài đặt tiện ích một cách bình thường thông qua giao diện người dùng, sau đó gỡ cài đặt tiện ích đó.