Meta etiketler, başlıklar ve komut dosyalarındaki deneme jetonlarıyla ilgili yaygın sorunları ele alın.
Yapılacaklar listesi
Kaynak denemesiyle ilgili sorunları gidermek için, sağlanan bağlantıları kullanarak aşağıdaki sorunların her birini inceleyin.
Yenilikleri inceleyin.
Aşağıdaki demolarda kaynak deneme jetonu sağlama ve deneme özelliğine erişme yöntemlerinin her biri gösterilmektedir:
- ot-meta.glitch.me:
origin-trial
meta etiketindeki jeton - ot-header.glitch.me:
Origin-Trial
yanıt başlığındaki jeton - ot-3p.glitch.me: Üçüncü taraf bir komut dosyası tarafından yerleştirilen jeton
- ot-iframe.glitch.me: iframe'de erişilen kaynak denemesi özelliği
- ot-iframe-3p.glitch.me: kaynaklar arası iframe örnekleri
Jetonları kontrol etmek için Chrome Geliştirici Araçları'nı kullanma
Chrome 93'ten itibaren Geliştirici Araçları, seçilen çerçeve için Uygulama panelinde kaynak deneme bilgilerini sağlar.
Bir alt çerçevede kullanılabilen kaynak deneme jetonlarını incelemek için üst çerçeveyi genişletin. Örneğin, ot-iframe.glitch.me adresindeki demo sayfası için iframe'deki sayfanın bir jeton sağladığını görebilirsiniz.
- Jeton Durumu: Sayfanın geçerli bir jetonu olup olmadığını belirtir. Bazı kaynak denemelerinde, geçerli jetonun mevcut olmasına rağmen kaynak denemesi özelliğinin kullanılamayacağı anlamına gelen coğrafi kısıtlamalar gibi başka faktörler olabileceğini unutmayın. Chrome Geliştirici Araçları durum kodları, kaynak denemelerine ait kodların her birinin anlamını açıklar.
- Kaynak: Jeton için kaydedilen Web Kaynağı.
- Son Kullanma Zamanı: Jeton için mümkün olan maksimum (en son) son kullanma tarihi/saati. Normalde bu, deneme süresinin bitişiyle aynıdır. Kayıtlarım bölümünde gösterilen jeton için Geçerli Bitiş Tarihi ile aynı değildir. Bu tarih, jetonun şu anda ne kadar süreyle geçerli olduğunu ve sürdürülebilir.
- Kullanım Kısıtlaması: Bazı denemeler için belirlenebilen kullanım sınırlarıdır.
- Üçüncü Taraf: Jeton için üçüncü taraf eşleştirmenin etkin olup olmadığı. Bu özellik, üçüncü taraf komut dosyalarından deneme özelliğine birden fazla sitede erişilmesini gerektiren bazı kaynak denemelerinde kullanılabilir.
- Alt Alanlarla Eşleştirme: Jeton için alt alan eşleşmesinin etkin olup olmadığı. Böylece kaynak denemesi özelliği, her alt alan adı için farklı bir jeton gerekmeden bir kaynağın birden fazla alt alanında test edilebilir.
Chrome Geliştirici Araçları, deneme sürümü geçerli kullanıcı için kullanılamıyorsa, jetonun süresi dolduysa veya başka kısıtlamalar varsa deneme adının yanında bir uyarı görüntüler.
Chrome Geliştirici Araçları durum kodları
Süresi doldu: Jetonun son kullanma tarihi geçmiştir. Yeni geçerlilik bitiş tarihine sahip yeni bir jeton oluşturmak için jetonun yenilenmesi gerekir.
Kaynak koduFeatureDisabled: Deneme sürümünün kullanımı şu anda devre dışıdır.
Kaynak koduFeatureDisabledForUser: Bu jeton, alternatif bir kullanım kısıtlaması nedeniyle mevcut kullanıcı için devre dışı olarak tanımlanmış. Tasarım belgesinin "Kullanıcı Alt Kümesi İstisnaları" bölümünü inceleyin.
Kaynak kodu 1
Kaynak kodu 2Güvenli değil: İstek kaynağı güvenli değil ve deneme, güvenli olmayan kaynaklar için etkinleştirilmedi. Kaynak denemesi jetonu doğrulayıcı kodu bölümünde açıklandığı gibi: "Üçüncü taraf jetonlar için hem geçerli kaynak hem de komut dosyası kaynağı güvenli olmalıdır. Alt alan eşleşmesi nedeniyle, jeton kaynağı, sağlanan komut dosyası kaynaklarından biriyle tam eşleşme olmayabilir ve sonuç, hangi kaynağın eşleştiğini belirtmez. Bu, uygun komut dosyası kaynağını bulmanın doğrudan bir arama olmadığı anlamına gelir. Tüm kaynak karşılaştırmalarının yeniden yapılmasını önlemek için, kaç komut dosyası kaynağının sağlandığına bağlı olan kısayollar vardır. En az bir jeton olmalıdır, aksi takdirde üçüncü taraf jetonu başarıyla onaylanmaz."
Kaynak koduInvalidSignature (Geçersiz imza): Jetonun imzası geçersiz veya bozuk.
Kaynak koduYanlış biçimlendirilmiş: Jeton hatalı biçimlendirilmiş ve ayrıştırılamadı.
Kaynak kodu
NotSupported: Jeton tarafından tanımlanan kaynak denemesi, Chromium "yerleştirme aracında" desteklenmez: Chrome veya Edge gibi bir tarayıcı, Web Görünümü ya da başka bir kullanıcı aracısı.
Kaynak koduBaşarılı: Jeton iyi biçimlendirilmiş, süresi dolmamış, bir kaynak denemesi özelliğiyle eşleşiyor ve beklenen bir kaynaktan isteniyor.
Kaynak koduTokenDisabled: Jeton devre dışı olarak işaretlenmiştir ve kullanılamaz.
Kaynak koduTrialNotAllowed: Kaynak denemesi geçerli kullanıcı tarafından kullanılamaz.
Kaynak koduUnknownTrial: Jeton, bilinen herhangi bir denemeyle eşleşmeyen bir özellik adı belirtir.
Kaynak koduWrongOrigin: İstek kaynağı, jetonda belirtilen kaynakla eşleşmiyor. Buna şema, ana makine adı veya bağlantı noktası dahildir. Harici bir JavaScript dosyası yerine bir HTTP üst bilgisi, meta etiket veya satır içi komut dosyası içinde bir üçüncü taraf jetonu sağlandığında da bu durum gösterilir.
Kaynak koduWrongVersion: Yanlış jeton sürümü: Şu anda yalnızca jeton sürümü 2 ve 3 desteklenmektedir.
Kaynak kodu
Çalışmıyor! 🤔
Kaynak denemeniz beklendiği gibi çalışmıyorsa aşağıdaki koşulları karşıladığınızdan emin olun.
Chromium veya başka bir tarayıcıda değil, Chrome'da test ediyorsunuz
Chrome kaynak denemeleri, Chrome kullanıcıları için çalışacak şekilde tasarlanmıştır. Chromium ve diğer Chromium tabanlı tarayıcılarda, deneme özelliklerini etkinleştirmek için Chrome kaynak deneme jetonlarını kullanmayın. Bunun nedeni, Chrome kaynak denemelerinin, Chrome'da deneme için kullanıma sunulan özelliklere özgü olmasıdır.
Kaynak denemeleri ayrıca Firefox ve Microsoft Edge için de mevcuttur. Firefox veya Edge kaynak deneme sürümüne kaydolduğunuzda Chrome'da bir özellik etkinleştirilmez.
Kaynak denemesi, sitenize erişen Chrome sürümleri için etkinleştirildi
Deneme sürümlerine erişim Chrome'un belirli sürümleriyle sınırlıdır. Bazı durumlarda bu, deneme özelliğinin yalnızca Kararlı sürüm öncesi Chrome kanalları (Canary, Yeni geliştirilenler ve Beta) tarafından kullanılabildiği anlamına gelebilir.
Deneme sürümü için sürümün kullanılabilirliğini kayıt sayfasından kontrol edebilirsiniz:
Kullandığınız Chrome sürümünü chrome://version adresinden kontrol edebilirsiniz.
Kaynak denemesi Chrome ayarları tarafından devre dışı bırakılmadı
Tek bir kullanıcı bir özelliğin kendisinde çalışmadığını bildirirse kullanıcının Chrome ayarlarından özelliğin devre dışı bırakılıp bırakılmadığını kontrol edin. Örneğin, Özel Korumalı Alan özellikleri chrome://settings/privacySandbox
sayfasından devre dışı bırakılabilir.
Anahtar kelimeler ve söz dizimi doğru
Kaynak deneme jetonları için uygun anahtar kelimeler ve söz dizimi kullandığınızdan emin olun.
Birinci taraf kullanımı için origin-trial
meta etiketinde bir jeton sağlanabilir:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Alternatif olarak, Origin-Trial
yanıt başlığında bir jeton da sağlanabilir. Aşağıda, Node.js'de Express'i kullanan bir örnek verilmiştir:
app.use(function(req, res, next) {
res.setHeader('Origin-Trial', 'Aj4DysCv3VjknU3...')
next();
});
Jetonlar JavaScript kullanılarak da sağlanabilir:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
Birinci taraf jeton kaynağı, sayfa kaynağıyla eşleşir
Denemeye kaydolurken Web Origin değerinin, jetonu sağlayan meta etiketi veya başlığı içeren sayfanın kaynağıyla eşleştiğinden emin olun.
Örneğin, Web Kaynağı olarak https://example.com
'i seçtiyseniz:
Şöyle bir jeton değeri alabilirsiniz:
Bu değerin, sorun giderdiğiniz sayfada kullanılan jetonla eşleştiğinden emin olun.
Meta etikette sağlanan bir jeton olup olmadığını kontrol etmek için HTML'yi kontrol edin:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Başlıkta sağlanan bir jeton için jeton değerini Chrome DevTools Network (Ağ) panelinde Yanıt Başlıkları altından kontrol edebilirsiniz:
Birinci taraf jetonu, jetonu kullanan kaynaktan sunulur
Kaynağınızdan sunulan bir sayfada yer alan kod için kaynak deneme özelliğine erişimi etkinleştirmek isterseniz meta etikette, başlıkta veya aynı kaynaktan JavaScript aracılığıyla bir deneme jetonu sağlayın.
Jeton için kaydedilen kaynak, jetonu sunan kaynakla eşleşmelidir.
Üçüncü taraf jeton kaynağı, komut dosyası kaynağıyla eşleşir
Diğer kaynaklara yerleştirilen komut dosyaları için kaynak denemesine katılmak üzere kaydolabilirsiniz.
Örneğin, javascript-library.example
kaynağından yayınlanan komut dosyalarının bir kaynak denemesinde yer almasını istiyorsanız javascript-library.example
için üçüncü taraf eşleşmesi ile bir jeton kaydetmeniz gerekir.
Üçüncü taraf jetonu için kaynak değeri, jetonu yerleştiren komut dosyasının kaynağıyla eşleşmelidir.
Üçüncü taraf komut dosyası, üçüncü taraf jetonu kullanıyor
Üçüncü taraf bir komut dosyasını, komut dosyası için değil, kaynağınız için bir jeton kaydederek sitenizdeki kaynak denemesine katılacak şekilde etkinleştiremezsiniz.
Üçüncü taraf komut dosyalarının, üçüncü taraf eşleştirmenin etkin olduğu jetonları kullanması gerekir. Bu jetonlar, aşağıdaki gibi bir kod kullanılarak komut dosyasının kendisi aracılığıyla yerleştirilir (sitenizdeki meta etikete veya başlığa dahil edilmez):
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
Üçüncü taraf jeton bir meta etiket, HTTP üst bilgisi veya satır içi komut dosyası aracılığıyla değil, harici bir komut dosyası aracılığıyla sağlanır
Üçüncü taraf jetonları, bunları yerleştiren komut dosyasının kaynağına göre doğrulanır ancak statik işaretlemedeki satır içi komut dosyalarının ve <meta>
etiketlerinin bir kaynağı (ör. kaynak URL'si) yoktur.
Diğer bir deyişle, üçüncü taraf jetonunun bir <meta>
etiketi veya satır içi komut dosyası içinde değil, harici bir komut dosyası aracılığıyla sağlanması gerekir. Jetonu yerleştiren harici komut dosyasının, kapsayıcı sayfayla aynı kaynaktan veya farklı bir kaynaktan gelmesi, komut dosyasının kaynağı deneme için kayıtlı bir kaynakla eşleştiği sürece önemli değildir.
Bunun bir demosunu ot-iframe-3p.glitch.me adresinde görebilirsiniz.
Kaynak deneme özelliğine erişim, deneme jetonu sağlamak için kullanılan yöntemde desteklenir
Kaynak deneme özelliklerine erişebilmek için belirli bir yöntemle deneme jetonu sağlamanız gerekir.
Örneğin, hizmet çalışanları ve paylaşılan çalışanlar için kaynak denemesi erişimini etkinleştirmenin tek yolu, Origin-Trial
başlığında bir jeton sağlamaktır.
Alt alan adında kullanılan bir jeton için alt alan eşleşmesi etkinleştirildi
Kaynak denemesi özelliği sitenizdeki bazı sayfalarda çalışmıyorsa jetonların, bunları sunan alt alanlar için doğru şekilde ayarlandığından emin olun.
Kaynak denemesine kaydolduğunuzda, isteğe bağlı olarak kaynağın tüm alt alan adlarını eşleştirmeyi seçebilirsiniz:
Alt alan adlarını üçüncü taraf jetonları için de eşleştirebilirsiniz:
Genel Son Ek Listesi'ndeki kaynaklar için alt alan adı jetonları verilmez. Örneğin, https://appspot.com veya https://github.io gibi bir kaynağı kaydedemezsiniz ancak bu kaynaktaki https://example.appspot.com veya https://example.github.io gibi alan adlarına kaydolabilirsiniz.
Jeton hâlâ geçerli
Jetonlar, oluşturulduktan sonra altı hafta boyunca geçerlidir. Bunun dışında, Geçerlilik tarihini uzatmak için geri bildirim göndermeniz gerekir. Web Geliştiricileri İçin Kaynak Denemeleri Kılavuzu'nda, jetonunuzun tüm kaynak denemesi için geçerli olduğundan nasıl emin olacağınız açıklanmaktadır.
Chrome Kaynak Denemelerinin Kayıtlarım sayfasında etkin jetonları kontrol edebilirsiniz:
Chrome Geliştirici Araçları, jeton hâlâ geçerliyse Success
Durumu'nu gösterir:
Jetonunuzun süresi dolduysa Geliştirici Araçları Expired
durumunu ve Kayıtlarım sayfasında Süresi Bitmiş Jetonlar bölümünü gösterir.
Kaynak denemesi sona ermedi
Kaynak denemesinin bitiş tarihini kayıt sayfasından kontrol edebilirsiniz:
Sona eren denemeler için Geliştirici Araçları şuna benzer bir görüntü gösterir:
Geri bildirim gerektiğinde veya jetonun süresi dolmak üzereyken otomatik e-postalar gönderilir. Bununla birlikte, deneme süresi sona erdiğinde otomatik olarak e-posta gönderilmez.
Kaynak denemesi geçerli kullanıcı tarafından kullanılabilir
Geçerli bir jeton sağlansa bile bazı kaynak denemeleri belirli kullanıcılar tarafından kullanılamaz.
Geçerli kullanıcı için deneme sürümü mevcut değilse Chrome Geliştirici Araçları, TrialNotAllowed
uyarısı gösterir:
Her kaynak denemesi için kullanım kısıtlamaları ve kullanılabilirlik hakkında bilgi sağlanır.
Tüm web platformu özelliklerinde olduğu gibi, kaynak denemesi özelliğini kullanmadan önce desteklendiğini onaylamak için özellik algılamayı kullanmanız gerekir.
Kaynak denemesinin kullanım kısıtlamaları aşılmadı
Varsayılan olarak kaynak denemesi özelliği, deneme için geçerli bir jetonu olan her sayfada etkinleştirilir.
Ancak nadir durumlar dışında kaynak denemesi kullanımı tüm Chrome sayfa yüklemelerinin en fazla% 0,5'i ile sınırlıdır. Tüm Chrome kullanıcılarının toplam kullanımı bu miktarı aşarsa kaynak denemesi özelliği devre dışı bırakılır. Geliştirici Araçları, jeton durumunu devre dışı olarak gösterir.
Kullanımdan kaldırma denemelerinde yeni özellikler kullanılmadığı ve dolayısıyla web'in önemli bir bölümünü deneme özelliğine bağımlı hale getirme riski taşımadığı için bu denemelerde kullanım sınırı yoktur.
Bazı denemeler ayrıca kullanımı sınırlama seçeneği sunar. Bu durumda, kaynak denemesi özellikleri bazı kullanıcılar için devre dışı bırakılır. Bu seçenek, şu olanağı sunan kaynak denemesinin kayıt sayfasından sunulur:
Kullanıcılarınızın bir kaynak deneme özelliğine erişiminin beklenenden daha düşük olduğunu fark ederseniz "Standart Sınır"ın seçili olduğundan emin olun.
iFrame'ler kendi jetonlarını sağlar
Bir kaynak denemesi özelliğine erişim izni vermek için iframe'in meta etikette, HTTP üst bilgisinde veya programatik olarak bir jeton sağlaması gerekir. iFrame'ler, bunları içeren sayfalar için etkinleştirilen özelliklere erişimi devralmaz.
ot-iframe.glitch.me, bir iframe'den kaynak denemesi özelliğine erişimi gösterir. ot-iframe-3p.glitch.me, birden fazla kaynak arası iframe örneği sağlar.
İzin politikaları doğru şekilde yapılandırıldı
Bazı kaynak denemesi özellikleri, bir Permissions-Policy
üst bilgisinden (eski adıyla Feature-Policy
başlığı) etkilenebilir. Deneme özelliği için Deneme Amacı bölümünden ya da web.dev ya da developer.chrome.com/blog adreslerinde bu özelliğe ait geliştirici dokümanlarından kontrol edebilirsiniz.
Erişmeye çalıştığınız özelliğin bir Permissions-Policy
yönergesi tarafından engellenmediğinden emin olun. Chrome DevTools Network (Ağ) panelinde yanıt başlıklarını kontrol edebilir ve Uygulama panelinde izin verilen özelliklerin tam listesini görüntüleyebilirsiniz.
Peki çalışanlar ne olacak?
Kaynak denemeleri özellikleri hizmet çalışanları, paylaşılan ve özel çalışanlara sunulabilir. Ancak hizmet çalışanları ve paylaşılan çalışanlar için erişimi etkinleştirmenin tek yolu, Origin-Trial
üstbilgisinde bir jeton sağlamaktır.
Özel çalışanlar, üst dokümanları tarafından etkinleştirilen özelliklere erişimi devralır.
Jeton, özelliğe erişilmeden önce sağlanır
Deneme özelliğine erişilmeden önce kaynak deneme jetonunun sağlandığından emin olun. Örneğin, bir sayfa JavaScript üzerinden jeton sağlıyorsa jetonu sağlayan kodun, deneme özelliğine erişmeye çalışan koddan önce çalıştırıldığından emin olun.
Kaynak denemesi demoları
- Meta etiketteki jeton
- Başlıktaki jeton
- iframe'de erişilen özellik
- Üçüncü taraf komut dosyası tarafından yerleştirilen jeton
- ot-iframe-3p.glitch.me: kaynaklar arası iframe örnekleri
Daha fazla bilgi
- Chrome'un kaynak denemelerini kullanmaya başlama
- Üçüncü taraf kaynak denemeleri
- Web geliştiricileri için kaynak deneme kılavuzu
- Kaynak denemesi açıklayıcısı
- Kaynak denemesi çalıştırma
- Chromium'da yeni özelliklerin kullanıma sunulması süreci
- Açıklama: Blink gönderim süreciyle ilgili gerçek bilgiler
- Microsoft Edge'de Kaynak Denemelerini kullanma
- Firefox için kaynak denemeleri