解決中繼標記、標頭和指令碼中試用憑證的常見問題。
檢查清單
如要排解來源試用問題,請使用我們提供的連結逐一嘗試以下各個問題。
快來體驗看看吧!
下列示範內容說明如何提供來源試用憑證,以及如何存取試用功能:
- 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 開發人員工具狀態碼,瞭解原點測試的每個代碼代表的意義。
- 來源:為權杖註冊的網路來源。
- 到期時間:代碼的最大 (最新) 到期日期/時間,通常會與試用期結束時間一致。這與「我的註冊」中顯示的符記有效期限不同,後者會顯示符記目前的有效期限,且可延長。
- 使用限制:使用限制,可為部分試用版設定。
- 第三方:是否為這個權杖啟用第三方比對。這項功能適用於部分來源試用版,因為試用版功能需要透過第三方指令碼在多個網站上存取。
- 與子網域相符:是否為金鑰啟用子網域比對功能。這可讓原點試用功能在原點的多個子網域上進行測試,而不需要為每個子網域使用不同的權杖。
如果試用方案不適用於目前使用者、權杖已過期,或有其他限制,Chrome 開發人員工具會在試用名稱旁顯示警告。
Chrome 開發人員工具狀態碼
已過期:權杖已過期。您必須續訂權杖,才能產生具有新到期日期的新權杖。
原始碼FeatureDisabled:目前已停用試用功能。
原始碼FeatureDisabledForUser:這個憑證已透過其他使用限制,針對目前的使用者指定為停用狀態。請參閱設計文件中的「User Subset Exclusions」(使用者子集排除項目) 一節。
原始碼 1
原始碼 2不安全:要求來源不安全,且不安全的來源無法啟用試用版。如來源試用權杖驗證程式碼所述:「對於第三方權杖,目前來源和指令碼來源都必須安全。由於子網域比對,符記來源可能與提供的其中一個指令碼來源不完全相符,且結果不會指出系統比對了哪個特定來源。也就是說,這不是直接查詢,無法找出適當的指令碼來源。為避免重做所有來源比較,系統會提供取決於提供的指令碼來源數量的快捷方式。您必須至少提供一個,否則第三方權杖無法成功驗證。」
原始碼InvalidSignature:權杖的簽名無效或格式錯誤。
原始碼格式錯誤:符記格式錯誤,無法剖析。
原始碼
NotSupported:Chromium「嵌入器」不支援憑證定義的來源試用: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 值與提供權杖的網頁中含有 Meta 標記或標頭的來源相符。
舉例來說,如果您選取 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。
權杖仍然有效
權杖在建立後的六週內有效。除此之外,您必須提交意見回饋,才能延長有效期限。網頁開發人員的來源測試指南說明如何確保您的權杖在整個來源測試期間都有效。
您可以在 Chrome 原始試用方案的「我的註冊」頁面中查看有效的權杖:
如果權杖仍然有效,Chrome 開發人員工具就會顯示狀態 Success
:
如果憑證已過期,開發人員工具會顯示狀態 Expired
,而「我的註冊」頁面則會顯示「已過期的憑證」部分。
來源試用期尚未結束
您可以前往註冊頁面查看原始試用方案的結束日期:
如果是已結束的試用方案,DevTools 會顯示類似下方的畫面:
系統會在需要意見回饋或權杖即將到期時自動傳送電子郵件給您,但不會在試用期結束時傳送。
目前的使用者可以試用來源試用
部分使用者無法試用部分來源試用,即使已提供有效的權杖也一樣。
如果目前使用者無法試用,Chrome DevTools 會顯示 TrialNotAllowed
警告:
每個來源試用版都會提供使用限制和可用性資訊。
與任何網路平台功能一樣,您應使用功能偵測確認來源試用功能,再使用。
已超過來源試用用量限制
根據預設,凡是含有有效試用版權杖的網頁,都會啟用原點試用功能。
不過,除了少數情況外,來源試用功能的使用率 最多只占所有 Chrome 網頁載入量的 0.5%。如果所有 Chrome 使用者的總用量超過這個數量,系統就會停用原點試用功能。開發人員工具會顯示權杖狀態為停用。
淘汰測試沒有使用量限制,因為這類測試不會引入新功能,因此不會導致網站的大量內容依賴測試功能。
部分試用方案也提供限制使用選項,也就是說,部分使用者的原始試用版功能會遭到停用。這個選項會顯示在提供此選項的原始試用版的註冊頁面中:
如果您發現使用者對原始試用功能的存取權低於預期,請確認已選取「標準限制」。
iframe 會提供自己的權杖
如要允許存取來源試用功能,iframe 必須在中繼標記、HTTP 標頭或程式碼中提供權杖。IFrame 不會繼承針對包含 IFrame 的網頁啟用的功能存取權。
ot-iframe.glitch.me 示範如何從 iframe 存取來源測試功能。ot-iframe-3p.glitch.me 提供多個跨來源 iframe 範例。
權限政策已正確設定
部分來源測試功能可能會受到 Permissions-Policy
標頭 (舊稱 Feature-Policy
標頭) 的影響。如需這項功能,請參閱「意圖進行實驗」一文,或前往 web.dev 或 developer.chrome.com/blog 的開發人員說明文件查看這項功能。
請確認您嘗試存取的功能並未遭到 Permissions-Policy
指令封鎖。您可以在 Chrome 開發人員工具的「Network」面板中檢查回應標頭,並在「Application」面板中查看允許功能的完整清單。
那麼工作站呢?
您可以為服務工作站、共用工作站和專屬工作站提供原點測試功能。不過,要讓服務工作程和共用工作程存取,唯一的方法是在 Origin-Trial
標頭中提供符記。
專用 worker 會繼承父項文件啟用的功能存取權。
系統會在存取功能前提供權杖
請務必在存取試用功能前,提供來源試用權杖。舉例來說,如果網頁透過 JavaScript 提供權杖,請務必先執行提供權杖的程式碼,再執行嘗試存取試用功能的程式碼。
來源試用示範
- 中繼標記中的符記
- 標頭中的符記
- 在 iframe 中存取的功能
- 由第三方指令碼插入的符記
- ot-iframe-3p.glitch.me:跨來源 iframe 範例