Khắc phục sự cố khi dùng thử theo nguyên gốc Chrome

Giải quyết các vấn đề thường gặp với mã thông báo dùng thử trong thẻ meta, tiêu đề và tập lệnh.

Danh sách kiểm tra

Để khắc phục sự cố trong quá trình thử nghiệm theo nguyên gốc, hãy giải quyết từng vấn đề bên dưới bằng các đường liên kết được cung cấp.




















Hãy dùng thử ngay!

Các bản minh hoạ dưới đây cho thấy từng cách cung cấp mã thông báo dùng thử theo nguyên gốc và truy cập vào một tính năng dùng thử:

Sử dụng Công cụ của Chrome cho nhà phát triển để kiểm tra mã thông báo

Kể từ Chrome 93, Công cụ cho nhà phát triển cung cấp thông tin về bản dùng thử theo nguyên gốc trong bảng điều khiển Ứng dụng cho khung đã chọn.

Thông tin về bản dùng thử theo nguyên gốc trong bảng điều khiển Ứng dụng của Công cụ của Chrome cho nhà phát triển.

Mở rộng khung trên cùng để kiểm tra mã thông báo dùng thử gốc có sẵn cho một khung con. Ví dụ: đối với trang minh hoạ tại ot-iframe.glitch.me, bạn có thể thấy rằng trang trong iframe cung cấp mã thông báo.

Bảng điều khiển Ứng dụng của Công cụ của Chrome cho nhà phát triển, hiển thị mã thông báo dùng thử theo nguyên gốc cho trang trong iframe.

  • Trạng thái mã thông báo: Liệu trang có mã thông báo hợp lệ hay không. Xin lưu ý rằng đối với một số thử nghiệm gốc, có thể có các yếu tố khác, chẳng hạn như các quy định hạn chế về địa lý, khiến bạn không thể sử dụng tính năng thử nghiệm gốc, mặc dù có mã thông báo hợp lệ. Mã trạng thái của Công cụ cho nhà phát triển Chrome giải thích ý nghĩa của từng mã cho các thử nghiệm theo nguyên gốc.
  • Nguồn gốc: Nguồn gốc web đã đăng ký cho mã thông báo.
  • Thời gian hết hạn: ngày/giờ hết hạn tối đa (mới nhất) có thể có của mã thông báo, thường sẽ khớp với thời điểm kết thúc bản dùng thử. Ngày này không giống với ngày Hiệu lực của mã thông báo hiển thị trong phần Lượt đăng ký của tôi. Ngày này cho biết khoảng thời gian mã thông báo hiện có hiệu lực và có thể được gia hạn.
  • Giới hạn sử dụng: Giới hạn sử dụng mà bạn có thể đặt cho một số bản dùng thử.
  • Bên thứ ba: Liệu tính năng so khớp bên thứ ba có được bật cho mã thông báo hay không. Bạn có thể sử dụng tính năng này cho một số thử nghiệm gốc, trong đó bạn cần truy cập vào một tính năng thử nghiệm trên nhiều trang web từ các tập lệnh của bên thứ ba.
  • So khớp miền phụ: Liệu tính năng so khớp miền con có được bật cho mã thông báo hay không. Điều này cho phép thử nghiệm một tính năng nguồn gốc trên nhiều miền con của một nguồn gốc mà không cần mã thông báo khác nhau cho mỗi miền con.

Công cụ của Chrome cho nhà phát triển sẽ hiển thị cảnh báo bên cạnh tên bản dùng thử nếu người dùng hiện tại không nhận được bản dùng thử, mã thông báo đã hết hạn hoặc nếu có các quy định hạn chế khác.

Thông tin về bản dùng thử theo nguyên gốc trong bảng điều khiển Ứng dụng của Chrome DevTools cho thấy mã thông báo đã hết hạn

Mã trạng thái của Công cụ của Chrome cho nhà phát triển

  • Đã hết hạn: Mã thông báo đã hết hạn. Bạn cần gia hạn mã thông báo để tạo mã thông báo mới có ngày hết hạn mới.
    Mã nguồn

  • FeatureDisabled: Bản dùng thử hiện không được phép sử dụng.
    Mã nguồn

  • FeatureDisabledForUser: Mã thông báo này đã được chỉ định là bị vô hiệu hoá đối với người dùng hiện tại thông qua một hạn chế sử dụng thay thế. Xem phần "Loại trừ tập hợp con người dùng" trong tài liệu thiết kế.
    Mã nguồn 1
    Mã nguồn 2

  • Không an toàn: Nguồn gốc của yêu cầu không an toàn và bản dùng thử sẽ không được bật đối với các nguồn gốc không an toàn. Như đã giải thích trong mã trình xác thực mã thông báo thử nghiệm theo nguyên gốc: "Đối với mã thông báo của bên thứ ba, cả nguồn gốc hiện tại và nguồn gốc tập lệnh đều phải an toàn. Do việc so khớp miền con, nên nguồn gốc của mã thông báo có thể không khớp chính xác với một trong các nguồn gốc của tập lệnh đã cung cấp và kết quả không cho biết nguồn gốc cụ thể nào được khớp. Điều này có nghĩa là bạn không cần tra cứu trực tiếp để tìm nguồn gốc thích hợp của tập lệnh. Để tránh phải thực hiện lại tất cả các phép so sánh nguồn gốc, có các phím tắt phụ thuộc vào số lượng nguồn gốc tập lệnh đã được cung cấp. Phải có ít nhất một mã, nếu không mã thông báo của bên thứ ba sẽ không được xác thực thành công.
    Mã nguồn

  • InvalidSignature: Mã thông báo có chữ ký không hợp lệ hoặc không đúng định dạng.
    Mã nguồn

  • Malformed (Không đúng định dạng): Mã thông báo không đúng định dạng và không phân tích được cú pháp.
    Mã nguồn

  • NotSupported: Bản dùng thử theo nguyên gốc được xác định bằng mã thông báo không được hỗ trợ trong "embedder" của Chromium: một trình duyệt như Chrome hoặc Edge, WebView hoặc một tác nhân người dùng khác.
    Mã nguồn

  • Thành công: Mã thông báo được định dạng đúng cách, chưa hết hạn, khớp với một tính năng thử nghiệm theo nguyên gốc và được yêu cầu từ một nguyên gốc dự kiến.
    Mã nguồn

  • TokenDisabled: Mã thông báo đã được đánh dấu là bị vô hiệu hoá và không thể sử dụng.
    Mã nguồn

  • TrialNotAllowed: Người dùng hiện tại không được dùng bản dùng thử nguồn gốc.
    Mã nguồn

  • UnknownTrial: Mã thông báo chỉ định tên tính năng không khớp với bất kỳ bản dùng thử nào đã biết.
    Mã nguồn

  • WrongOrigin: Nguồn gốc yêu cầu không khớp với nguồn gốc được chỉ định trong mã thông báo. Tên này có thể bao gồm giao thức, tên máy chủ hoặc cổng. Trạng thái này cũng sẽ xuất hiện nếu mã thông báo của bên thứ ba được cung cấp trong tiêu đề HTTP, thẻ meta hoặc tập lệnh nội tuyến, thay vì từ tệp JavaScript bên ngoài.
    Mã nguồn

  • WrongVersion: Phiên bản mã thông báo không chính xác: hiện chỉ hỗ trợ mã thông báo phiên bản 2 và 3.
    Mã nguồn


Không hoạt động! 🤔

Nếu bản dùng thử theo nguyên gốc không hoạt động như mong đợi, hãy đảm bảo bạn đáp ứng các điều kiện sau.

Bạn đang kiểm thử trong Chrome, chứ không phải Chromium hay một trình duyệt khác

Bản dùng thử theo nguồn gốc của Chrome được thiết kế để hoạt động cho người dùng Chrome. Đừng dựa vào mã thông báo dùng thử gốc của Chrome để bật các tính năng dùng thử trong các trình duyệt khác, bao gồm cả Chromium và các trình duyệt khác dựa trên Chromium. Lý do là các thử nghiệm về nguồn gốc của Chrome chỉ dành cho các tính năng được cung cấp trong Chrome để thử nghiệm.

Bản dùng thử theo nguyên gốc cũng có sẵn cho FirefoxMicrosoft Edge. Việc đăng ký bản dùng thử theo nguyên gốc trên Firefox hoặc Edge sẽ không bật một tính năng trong Chrome.

Bản dùng thử theo nguyên gốc được bật cho các phiên bản Chrome truy cập vào trang web của bạn

Chỉ có một số phiên bản Chrome cụ thể mới có quyền truy cập vào bản dùng thử. Trong một số trường hợp, điều này có thể có nghĩa là tính năng dùng thử chỉ có trên các kênh Chrome trước phiên bản chính thức: Canary, Dev và Beta.

Bạn có thể kiểm tra tình trạng cung cấp phiên bản trên trang đăng ký để dùng thử:

Trang Chrome Origin Trials (Thử nghiệm theo nguồn gốc trên Chrome) cho First-Party Sets (Nhóm bên thứ nhất) và SameParty (Cookie cùng bên) với trạng thái hỗ trợ của Chrome được làm nổi bật

Bạn có thể kiểm tra phiên bản Chrome mà bạn đang sử dụng tại chrome://version.

Chế độ dùng thử theo nguồn gốc không bị chế độ cài đặt của Chrome tắt

Nếu một người dùng cá nhân báo cáo rằng một tính năng không hoạt động, hãy kiểm tra để đảm bảo tính năng đó không bị tắt trong phần cài đặt Chrome của họ. Ví dụ: bạn có thể tắt các tính năng Hộp cát về quyền riêng tư trên trang chrome://settings/privacySandbox.

Từ khoá và cú pháp chính xác

Hãy nhớ sử dụng từ khoá và cú pháp thích hợp cho mã thông báo dùng thử theo nguyên gốc.

Để sử dụng bên thứ nhất, bạn có thể cung cấp mã thông báo trong thẻ meta origin-trial:

<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

Ngoài ra, bạn có thể cung cấp mã thông báo trong tiêu đề phản hồi Origin-Trial. Sau đây là ví dụ về cách sử dụng Express trong Node.js:

app.use(function(req, res, next) {
  res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
  next();
});

Mã thông báo cũng có thể được cung cấp bằng JavaScript:

function addTrialToken(tokenContents) {
  const tokenElement = document.createElement('meta');
  tokenElement.httpEquiv = 'origin-trial';
  tokenElement.content = tokenContents;
  document.head.appendChild(tokenElement);
}

Nguồn gốc của mã thông báo của bên thứ nhất khớp với nguồn gốc của trang

Đảm bảo giá trị Nguồn gốc web được chọn khi bạn đăng ký dùng thử khớp với nguồn gốc của trang có thẻ meta hoặc tiêu đề cung cấp mã thông báo.

Ví dụ: nếu bạn đã chọn https://example.com làm Nguồn gốc web:

Trang Bản dùng thử theo nguyên gốc của Chrome cho thấy https://example.com được chọn làm Nguyên gốc web.

Bạn có thể nhận được giá trị mã thông báo như sau:

Trang Chrome Origin Trials (Thử nghiệm theo nguyên gốc trên Chrome) cho thấy giá trị mã thông báo.

Kiểm tra để đảm bảo giá trị này khớp với mã thông báo được sử dụng trên trang mà bạn đang khắc phục sự cố.

Đối với mã thông báo được cung cấp trong thẻ meta, hãy kiểm tra HTML:

  <meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">

Đối với mã thông báo được cung cấp trong tiêu đề, bạn có thể kiểm tra giá trị mã thông báo trong bảng điều khiển Mạng của Chrome DevTools trong phần Tiêu đề phản hồi:

Bảng điều khiển Mạng trong Chrome DevTools hiển thị tiêu đề phản hồi của thử nghiệm theo nguyên gốc.

Mã thông báo của bên thứ nhất được phân phát từ nguồn gốc sử dụng mã thông báo đó

Để cho phép truy cập vào tính năng thử nghiệm theo nguồn gốc cho mã có trong trang được phân phát từ nguồn gốc của bạn, hãy cung cấp mã thông báo thử nghiệm trong thẻ meta, tiêu đề hoặc thông qua JavaScript từ cùng một nguồn gốc.

Nguồn gốc được đăng ký cho mã thông báo phải khớp với nguồn gốc phân phát mã thông báo đó.

Nguồn gốc mã thông báo của bên thứ ba khớp với nguồn gốc tập lệnh

Bạn có thể đăng ký tham gia thử nghiệm về nguồn gốc cho các tập lệnh được chèn vào các nguồn gốc khác.

Ví dụ: nếu muốn các tập lệnh được phân phát từ javascript-library.example tham gia vào thử nghiệm gốc, bạn cần đăng ký mã thông báo có tính năng so khớp bên thứ ba cho javascript-library.example.

Trang đăng ký thử nghiệm theo nguồn gốc của Chrome cho thấy lựa chọn so khớp bên thứ ba.

Giá trị gốc của mã thông báo bên thứ ba phải khớp với nguồn gốc của tập lệnh chèn mã thông báo đó.

Tập lệnh của bên thứ ba sử dụng mã thông báo của bên thứ ba

Bạn không thể cho phép tập lệnh của bên thứ ba tham gia thử nghiệm nguồn gốc trên trang web của mình chỉ bằng cách đăng ký mã thông báo cho nguồn gốc chứ không phải cho tập lệnh.

Tập lệnh của bên thứ ba cần sử dụng mã thông báo đã bật tính năng so khớp bên thứ ba, được chèn thông qua chính tập lệnh đó (không có trong thẻ meta hoặc tiêu đề trên trang web của bạn) bằng mã như sau:

function addTrialToken(tokenContents) {
  const tokenElement = document.createElement('meta');
  tokenElement.httpEquiv = 'origin-trial';
  tokenElement.content = tokenContents;
  document.head.appendChild(tokenElement);
}

Mã thông báo của bên thứ ba được cung cấp thông qua tập lệnh bên ngoài, chứ không phải thẻ meta, tiêu đề HTTP hoặc tập lệnh nội tuyến

Mã thông báo của bên thứ ba được xác thực dựa trên nguồn gốc của tập lệnh đã chèn mã đó, nhưng các tập lệnh cùng dòng và thẻ <meta> trong mã đánh dấu tĩnh không có nguồn gốc (tức là URL nguồn).

Điều này có nghĩa là bạn phải cung cấp mã thông báo của bên thứ ba thông qua tập lệnh bên ngoài, chứ không phải trong thẻ <meta> hoặc tập lệnh nội tuyến. Không quan trọng liệu tập lệnh bên ngoài chèn mã thông báo có đến từ cùng một nguồn với trang chứa hay một nguồn khác, miễn là nguồn của tập lệnh khớp với nguồn đã đăng ký cho bản dùng thử.

Bạn có thể xem bản minh hoạ về việc này tại ot-iframe-3p.glitch.me.

Quyền truy cập vào tính năng bản dùng thử theo nguyên gốc được hỗ trợ cho phương thức dùng để cung cấp mã thông báo dùng thử

Một số loại quyền truy cập vào các tính năng dùng thử theo nguyên gốc yêu cầu bạn cung cấp mã thông báo dùng thử theo một cách cụ thể. Ví dụ: cách duy nhất để cấp quyền truy cập vào bản dùng thử theo nguyên gốc cho trình chạy dịch vụ và trình thực thi dùng chung là cung cấp mã thông báo trong tiêu đề Origin-Trial.

Tính năng so khớp miền con được bật cho mã thông báo dùng trên miền con

Nếu tính năng dùng thử theo nguyên gốc có vẻ không hoạt động trên một số trang trên trang web của bạn, hãy kiểm tra để đảm bảo rằng bạn đã thiết lập mã thông báo đúng cách cho các miền con phân phát các mã thông báo đó.

Khi đăng ký dùng thử nguồn gốc, bạn có thể chọn so khớp tất cả miền con của nguồn gốc nếu muốn:

Trang đăng ký bản dùng thử theo nguyên gốc của Chrome cho thấy lựa chọn so khớp miền con

Bạn cũng có thể so khớp miền con cho mã thông báo của bên thứ ba:

Trang đăng ký thử nghiệm theo nguyên gốc của Chrome cho thấy chế độ so khớp bên thứ ba và so khớp miền con đã được chọn

Mã thông báo miền con sẽ không được phát hành cho các nguồn gốc trong Danh sách hậu tố công khai. Ví dụ: bạn không thể đăng ký một nguồn gốc như https://appspot.com hoặc https://github.io, mặc dù bạn có thể đăng ký các miền trong nguồn gốc đó, chẳng hạn như https://example.appspot.com hoặc https://example.github.io.

Mã thông báo vẫn hợp lệ

Mã thông báo có hiệu lực trong 6 tuần kể từ khi được tạo. Ngoài ra, bạn phải gửi ý kiến phản hồi để gia hạn ngày Hiệu lực. Hướng dẫn thử nghiệm nguồn gốc dành cho nhà phát triển web giải thích cách đảm bảo mã thông báo của bạn hợp lệ cho toàn bộ quá trình thử nghiệm nguồn gốc.

Bạn có thể kiểm tra xem có mã thông báo nào đang hoạt động hay không trên trang Gói đăng ký của tôi của Bản dùng thử theo nguyên gốc của Chrome:

Trang Đăng ký của tôi cho các bản dùng thử theo nguồn gốc của Chrome cho thấy ngày Hiệu lực

Công cụ của Chrome cho nhà phát triển sẽ hiển thị Trạng thái Success nếu mã thông báo vẫn hợp lệ:

Thông tin về thử nghiệm gốc trong bảng điều khiển Ứng dụng của Chrome DevTools, làm nổi bật trạng thái: Thành công.

Nếu mã thông báo của bạn đã hết hạn, DevTools sẽ hiển thị trạng thái Expiredtrang Đăng ký của tôi sẽ hiển thị phần Mã thông báo đã hết hạn.

Trang Đăng ký của tôi cho các bản dùng thử theo nguồn gốc của Chrome cho thấy mã thông báo đã hết hạn.

Bản dùng thử theo nguyên gốc chưa kết thúc

Bạn có thể kiểm tra ngày kết thúc của bản dùng thử theo nguyên gốc trên trang đăng ký của bản dùng thử theo nguyên gốc:

Trang Bản dùng thử theo nguyên gốc của Chrome dành cho First-Party Sets và SameParty, trong đó thông tin chi tiết về Bản dùng thử hiện có được làm nổi bật.

Đối với các bản dùng thử đã kết thúc, DevTools sẽ hiển thị như sau:

Thông tin về thử nghiệm nguồn gốc trong bảng điều khiển Ứng dụng của Chrome DevTools hiển thị ValidTokenNotProvided và Status Expired

Bạn sẽ nhận được email tự động khi cần phản hồi hoặc mã thông báo sắp hết hạn, nhưng không phải khi thời gian dùng thử kết thúc.

Người dùng hiện tại có thể dùng thử phiên bản gốc

Một số người dùng không thể sử dụng một số bản dùng thử theo nguyên gốc, ngay cả khi họ cung cấp mã thông báo hợp lệ.

Nếu người dùng hiện tại không có gói dùng thử, Công cụ của Chrome cho nhà phát triển sẽ hiển thị cảnh báo TrialNotAllowed:

Thông tin về bản dùng thử theo nguyên gốc trong bảng điều khiển Ứng dụng của Chrome DevTools cho thấy cảnh báo TrialNotAllowed.

Thông tin về các quy định hạn chế về việc sử dụng và phạm vi cung cấp sẽ được cung cấp cho từng bản dùng thử theo nguồn gốc.

Giống như mọi tính năng nền tảng web khác, bạn nên sử dụng tính năng phát hiện tính năng để xác nhận rằng tính năng thử nghiệm gốc được hỗ trợ trước khi sử dụng.

Chưa vượt quá các quy định hạn chế về việc sử dụng bản dùng thử theo nguyên gốc

Theo mặc định, tính năng dùng thử theo nguồn gốc sẽ được bật trên mọi trang có mã thông báo hợp lệ cho bản dùng thử.

Tuy nhiên, ngoại trừ một số ít trường hợp, việc sử dụng bản dùng thử theo nguyên gốc chỉ được giới hạn ở mức tối đa là 0,5% tổng số lượt tải trang trên Chrome. Tính năng dùng thử theo nguồn gốc sẽ bị tắt nếu tổng mức sử dụng của tất cả người dùng Chrome vượt quá số lượng đó. DevTools sẽ hiển thị trạng thái mã thông báo là bị vô hiệu hoá.

Không có giới hạn sử dụng nào cho các bản dùng thử ngừng sử dụng, vì các bản dùng thử này không giới thiệu các tính năng mới. Do đó, không có nguy cơ làm cho một tỷ lệ đáng kể web phụ thuộc vào tính năng dùng thử.

Một số bản dùng thử cũng cung cấp tuỳ chọn giới hạn mức sử dụng, tức là các tính năng dùng thử theo nguyên gốc sẽ bị tắt đối với một số người dùng. Bạn có thể chọn tuỳ chọn này trên trang đăng ký cho một phiên bản dùng thử nguồn cung cấp tuỳ chọn này:

Trang đăng ký bản dùng thử theo nguyên gốc của Chrome cho thấy các quy định hạn chế về việc sử dụng.

Nếu bạn nhận thấy số người dùng truy cập vào tính năng thử nghiệm theo nguyên gốc thấp hơn dự kiến, hãy đảm bảo bạn đã chọn "Giới hạn tiêu chuẩn".

Iframe cung cấp mã thông báo riêng

Để cho phép truy cập vào một tính năng dùng thử theo nguyên gốc, iframe phải cung cấp mã thông báo trong thẻ meta, tiêu đề HTTP hoặc theo phương thức lập trình. Iframe không kế thừa quyền truy cập vào các tính năng được bật cho các trang chứa iframe.

ot-iframe.glitch.me minh hoạ quyền truy cập vào một tính năng dùng thử theo nguyên gốc từ một iframe. ot-iframe-3p.glitch.me cung cấp nhiều ví dụ về iframe trên nhiều nguồn gốc.

Chính sách quyền được định cấu hình chính xác

Một số tính năng dùng thử theo nguyên gốc có thể chịu ảnh hưởng của tiêu đề Permissions-Policy (trước đây gọi là tiêu đề Feature-Policy). Bạn có thể kiểm tra thông tin này trong phần Ý định thử nghiệm cho tính năng dùng thử hoặc trong tài liệu dành cho nhà phát triển về tính năng này trên web.dev hoặc developer.chrome.com/blog.

Đảm bảo rằng tính năng bạn đang cố gắng truy cập không bị lệnh Permissions-Policy chặn. Bạn có thể kiểm tra tiêu đề phản hồi trong bảng điều khiển Mạng Công cụ của Chrome cho nhà phát triển và xem danh sách đầy đủ các tính năng được phép trong bảng điều khiển Ứng dụng.

Bảng điều khiển Ứng dụng của Công cụ dành cho nhà phát triển của Chrome, hiển thị Tính năng được phép theo chính sách về quyền.

Còn Worker thì sao?

Bạn có thể cung cấp các tính năng thử nghiệm theo nguyên gốc cho worker dịch vụ, worker dùng chung và worker chuyên dụng. Tuy nhiên, cách duy nhất để cấp quyền truy cập cho trình chạy dịch vụ và trình thực thi dùng chung là cung cấp mã thông báo trong tiêu đề Origin-Trial.

Worker chuyên dụng kế thừa quyền truy cập vào các tính năng do tài liệu mẹ bật.

Mã thông báo được cung cấp trước khi người dùng sử dụng tính năng

Đảm bảo rằng mã thông báo dùng thử gốc được cung cấp trước khi truy cập vào một tính năng dùng thử. Ví dụ: nếu một trang cung cấp mã thông báo thông qua JavaScript, hãy đảm bảo mã cung cấp mã thông báo được chạy trước mã cố gắng truy cập vào tính năng dùng thử.

Bản minh hoạ bản dùng thử theo nguyên gốc

Tìm hiểu thêm