解決中繼標記、標頭和指令碼中試用憑證的常見問題。
檢查清單
如要排解原始試用問題,請按照下列連結中的步驟解決各項問題。
快來體驗看看吧!
下列示範內容說明如何提供來源試用憑證,以及如何存取試用功能:
- ot-meta.glitch.me:
origin-trial
中繼標記中的符記 - ot-header.glitch.me:
Origin-Trial
回應標頭中的符記 - ot-3p.glitch.me:第三方指令碼插入的符記
- ot-iframe.glitch.me:在 iframe 中存取來源試用功能
- ot-iframe-3p.glitch.me:跨來源 iframe 範例
使用 Chrome 開發人員工具檢查權杖
從 Chrome 93 開始,開發人員工具會在「應用程式」面板中,針對所選影格提供來源試用資訊。
展開頂端框架,檢查可用於子框架的原點試用權杖。舉例來說,如果您前往 ot-iframe.glitch.me 的示範頁面,可以看到 iframe 中的頁面會提供權杖。
- 符記狀態:網頁是否有有效的符記。請注意,在部分來源試用中,可能會有其他因素 (例如地理區域限制),這表示即使取得有效的權杖,也無法使用來源試用功能。請參閱Chrome 開發人員工具狀態碼,瞭解原點測試的每個代碼代表的意義。
- Origin:為權杖註冊的網頁來源。
- 到期時間:代碼的最大 (最新) 到期日期/時間,通常會與試用期結束時間一致。這與「我的註冊」中顯示的符記有效期限不同,後者會顯示符記目前的有效期限,且可延長。
- 使用限制:針對某些試用設定的用量限制。
- 第三方:表示權杖是否已啟用第三方比對功能。這項功能適用於部分來源試用版,因為試用版功能需要透過第三方指令碼在多個網站上存取。
- 比對子網域:是否為權杖啟用子網域比對功能。這樣就能在來源的多個子網域中測試來源試用功能,而不需要為每個子網域分別取得不同的權杖。
如果試用方案不適用於目前使用者、權杖已過期,或有其他限制,Chrome 開發人員工具會在試用名稱旁顯示警告。
Chrome 開發人員工具狀態碼
已過期:權杖已過期。您必須更新權杖,由新權杖產生設有新的到期日的新權杖。
原始碼FeatureDisabled:試用目前已停用。
原始碼FeatureDisabledForUser:這個憑證已透過其他使用限制,針對目前的使用者指定為停用狀態。請參閱設計文件中的「User Subset Exclusions」(使用者子集排除項目) 一節。
原始碼 1
原始碼 2不安全:要求來源並不安全,而且未針對不安全的來源啟用試用。 如來源試用權杖驗證程式碼所述:「對於第三方權杖,目前來源和指令碼來源都必須安全。由於子網域比對,符記來源可能與提供的其中一個指令碼來源不完全相符,且結果不會指出系統比對了哪個特定來源。也就是說,這不是直接查詢,無法找出適當的指令碼來源。為避免重複執行所有來源比較,快速鍵會因提供的指令碼來源數量而異。您必須至少提供一個,否則第三方權杖無法成功驗證。」
原始碼InvalidSignature:權杖的簽名無效或格式錯誤。
原始碼格式錯誤:符記格式錯誤,無法剖析。
原始碼
NotSupported:Chromium 的「embedder」瀏覽器不支援權杖定義的來源試用:Chrome 或 Edge、WebView 或其他使用者代理程式。
原始碼成功:符記格式正確、未過期、符合原始試用功能,且要求來自預期來源。
原始碼TokenDisabled:權杖已標示為已停用,無法使用。
原始碼TrialNotAllowed:來源試用方案不適用於目前的使用者。
原始碼UnknownTrial:此符記會指定不符合任何已知測試的功能名稱。
原始碼WrongOrigin:要求來源與權杖中指定的來源不符。可包括配置、主機名稱或通訊埠。如果第三方權杖是在 HTTP 標頭、中繼標記或內嵌指令碼中提供,而非來自外部 JavaScript 檔案,系統也會顯示這項狀態。
原始碼WrongVersion:錯誤的符記版本:目前僅支援符記版本 2 和 3。
原始碼
無法運作!🤔
如果來源試用的結果不如預期,請確定您是否符合下列條件。
你是在 Chrome 中進行測試,而非 Chromium 或其他瀏覽器
Chrome 來源試用是專為 Chrome 使用者設計。請勿仰賴 Chrome 來源試用權杖在其他瀏覽器 (包括 Chromium 和其他以 Chromium 為基礎的瀏覽器) 中啟用試用功能。這是因為 Chrome 來源試用功能僅適用於 Chrome 中提供的實驗功能。
Firefox 和 Microsoft Edge 也提供來源試用功能。註冊 Firefox 或 Edge 原始版本測試計畫不會在 Chrome 中啟用功能。
針對存取您網站的 Chrome 版本啟用來源試用版
只有特定版本的 Chrome 可試用。在某些情況下,這可能表示使用者必須試用預先穩定版的 Chrome 版本:Canary 版、開發人員版和 Beta 版。
如要查看試用版的版本適用範圍,請前往註冊頁面:
你可以前往 chrome://version 查看目前使用的 Chrome 版本。
Chrome 設定未停用來源試用功能
如果個別使用者回報某項功能無法正常運作,請確認該功能在 Chrome 設定中是否已停用。舉例來說,您可以透過 chrome://settings/privacySandbox
頁面停用 Privacy Sandbox 功能。
關鍵字和語法正確無誤
請務必使用適當的關鍵字和語法來設定來源試用權杖。
如要用於第一方用途,您可以在 origin-trial
中繼標記中提供符記:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
或者,您也可以在 Origin-Trial
回應標頭中提供權杖。以下是 Node.js 中使用 Express 的範例:
app.use(function(req, res, next) {
res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
next();
});
您也可以使用 JavaScript提供符記:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
第一方權杖來源與網頁來源相符
您在註冊試用時,確認所選的「Web Origin」值與包含提供權杖的中繼標記或標頭的網頁來源相符。
舉例來說,如果您選取 https://example.com
做為 網頁來源:
您可能會收到類似以下的權杖值:
請確認這個值與您要排解問題的網頁上使用的符記相符。
如要檢查中繼標記中提供的符記,請查看 HTML:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
如果是標頭中提供的權杖,您可以前往「回應標頭」下方的 Chrome 開發人員工具網路面板,查看權杖值:
第一方權杖是從使用該權杖的來源提供
如果要為從來源提供的網頁中提供的程式碼取得來源試用功能,請在中繼標記、標頭或相同來源的 JavaScript 中提供試用權杖。
代碼註冊的來源必須與提供代碼的來源相符。
第三方符記來源與指令碼來源相符
如果將指令碼插入其他來源,可以註冊參加來源試用。
舉例來說,如果您希望從 javascript-library.example
提供的腳本能參與來源試用,就必須為 javascript-library.example
註冊具有第三方比對功能的符記。
第三方符記的原點值必須與插入符記的腳本原點相符。
第三方指令碼使用第三方權杖
您無法只透過註冊來源 (而非指令碼) 的方式,在網站上參與來源試用。
第三方指令碼必須使用啟用第三方比對的符記,透過指令碼本身 (不包含在網站的結構描述標記或標頭中) 注入,使用類似以下的程式碼:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
第三方權杖是透過外部指令碼提供,而非中繼標記、HTTP 標頭或內嵌指令碼
第三方符記會根據插入符記的指令碼來源進行驗證,但靜態標記中的內嵌指令碼和 <meta>
標記沒有來源 (即來源網址)。
也就是說,第三方符記必須透過外部指令碼提供,而非在 <meta>
標記或內嵌指令碼中提供。無論注入符記的外部指令碼是否來自與包含頁面相同的來源,或是不同的來源,只要指令碼的來源與試驗註冊的來源相符即可。
您可以前往 ot-iframe-3p.glitch.me 查看示範。
使用提供試用權杖的方法時,系統會支援來源試用功能存取權
您必須以特定方式提供試用權杖,才能存取某些來源試用功能。舉例來說,如要啟用服務 worker 和共用 worker 的來源測試存取權,唯一的方法就是在 Origin-Trial
標頭中提供符記。
為子網域中使用的符記啟用子網域比對功能
如果原點試用功能似乎無法在網站上的部分網頁上運作,請檢查子網域是否已正確設定權杖。
註冊來源試用時,可以選擇比對來源的所有子網域:
您也可以為第三方符記比對子網域:
公開尾碼清單中的來源不會核發子網域權杖。舉例來說,您無法註冊 https://appspot.com 或 https://github.io 等來源,但可以註冊該來源中的網域,例如 https://example.appspot.com 或 https://example.github.io。
權杖仍有效
權杖的有效期限為 6 週。除此之外,您必須提交意見回饋,才能延長有效期限。網頁開發人員的來源測試指南說明如何確保您的權杖在整個來源測試期間都有效。
您可以在 Chrome 原始試用方案的「我的註冊」頁面中查看有效的權杖:
如果權杖仍然有效,Chrome 開發人員工具就會顯示狀態 Success
:
如果憑證已過期,開發人員工具會顯示狀態 Expired
,而「我的註冊」頁面則會顯示「已過期的憑證」部分。
來源試用期尚未結束
您可以前往註冊頁面查看原始試用方案的結束日期:
如果試用已結束,開發人員工具會顯示類似下方的內容:
當需要意見回饋或權杖即將到期時,你會收到系統自動發送的電子郵件 (試用期結束時除外)。
目前的使用者可以試用來源試用
即使提供有效的權杖,部分使用者仍無法使用某些原始試用版。
如果目前使用者無法試用,Chrome DevTools 會顯示 TrialNotAllowed
警告:
每個來源試用版都會提供使用限制和可用性資訊。
與任何網路平台功能一樣,您應使用功能偵測確認來源試用功能,再使用。
未超過 Origin 試用方案的用量限制
根據預設,凡是含有有效試用版權杖的網頁,都會啟用原點試用功能。
不過在極少數情況下,在所有 Chrome 網頁載入中,來源試用的使用量最多只有 0.5%。 如果所有 Chrome 使用者的總用量超過這個數量,系統就會停用原點試用功能。開發人員工具會將權杖狀態顯示為已停用。
淘汰試用功能本身不會推出新功能,因此不會有用量限制,因此不必仰賴試用功能,就不太可能為網路帶來大量的使用者體驗。
有些試用方案也提供限制用量的選項,這代表部分使用者會停用來源試用功能。這個選項會顯示在提供此選項的原始試用版的註冊頁面中:
如果您發現使用者對原始試用功能的存取權低於預期,請確認已選取「標準限制」。
iFrame 提供專屬的符記
如要允許存取來源試用功能,iframe 必須在中繼標記、HTTP 標頭或程式碼中提供權杖。IFrame 不會繼承針對包含 IFrame 的網頁啟用的功能存取權。
ot-iframe.glitch.me 示範從 iframe 存取來源試用功能。ot-iframe-3p.glitch.me 提供多個跨來源 iframe 範例。
權限政策已正確設定
部分來源測試功能可能會受到 Permissions-Policy
標頭 (舊稱 Feature-Policy
標頭) 的影響。如要確認這項功能是否已推出,您可以前往Intent to Experiment 查看試用功能,或是前往 web.dev 或 developer.chrome.com/blog 查看該功能的開發人員說明文件。
請確認您的功能不會遭到 Permissions-Policy
指令封鎖。您可以在 Chrome 開發人員工具的「Network」面板中檢查回應標頭,並在「Application」面板中查看允許功能的完整清單。
那麼工作站呢?
您可以為服務工作站、共用工作站和專屬工作站提供原點測試功能。不過,要讓服務工作程和共用工作程存取,唯一的方法是在 Origin-Trial
標頭中提供符記。
專用 worker 會繼承父項文件啟用的功能存取權。
在存取功能前提供權杖
請務必在存取試用功能前,提供來源試用權杖。舉例來說,如果網頁透過 JavaScript 提供權杖,請務必先執行提供權杖的程式碼,再執行嘗試存取試用功能的程式碼。
來源試用示範
- 中繼標記中的符記
- 標頭中的權杖
- 在 iframe 中存取的功能
- 由第三方指令碼插入的符記
- ot-iframe-3p.glitch.me:跨來源 iframe 範例