Meta etiketler, başlıklar ve komut dosyalarındaki deneme jetonlarıyla ilgili yaygın sorunları giderin.
Yapılacaklar listesi
Kaynak denemesinde sorun gidermek için sağlanan bağlantıları kullanarak aşağıdaki sorunları birer birer çözün.
Yenilikleri inceleyin.
Aşağıdaki demolarda, kaynak deneme jetonu sağlamanın ve deneme özelliğine erişmenin her yolu 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 komut dosyası tarafından yerleştirilen jeton
- ot-iframe.glitch.me: Bir iframe'de erişilen kaynak deneme özelliği
- ot-iframe-3p.glitch.me: kaynak farklı iframe örnekleri
Jetonları kontrol etmek için Chrome Geliştirici Araçları'nı kullanma
Chrome 93'ten itibaren Geliştirici Araçları, seçili çerçeve için Uygulama panelinde kaynak deneme bilgilerini sağlar.
Alt çerçeve için kullanılabilen kaynak deneme jetonlarını incelemek üzere üst çerçeveyi genişletin. Örneğin, ot-iframe.glitch.me adresindeki demo sayfasında, iFrame'deki sayfanın bir jeton sağladığını görebilirsiniz.
- Jeton Durumu: Sayfanın geçerli bir jetonu olup olmadığı. Bazı kaynak denemelerinde, geçerli bir jeton bulunmasına rağmen kaynak deneme özelliğinin kullanılamamasına neden olan coğrafi kısıtlamalar gibi başka faktörler olabileceğini unutmayın. Chrome Geliştirici Araçları durum kodları, kaynak denemeleriyle ilgili kodların her birinin anlamını açıklar.
- Kaynak: Jeton için kayıtlı Web Kaynağı.
- Sona erme zamanı: Jeton için mümkün olan en uzun (en son) geçerlilik bitiş tarihi/saati. Bu tarih normalde deneme süresinin sonuyla aynıdır. Bu, Kayıtlarım bölümünde gösterilen jetonun Geçerlilik Bitiş Tarihi ile aynı değildir. Geçerlilik Bitiş Tarihi, jetonun şu anda ne kadar süreyle geçerli olduğunu gösterir ve uzatılabilir.
- Kullanım Kısıtlaması: Bazı denemeler için ayarlanabilen kullanım sınırları.
- Üçüncü Taraf: Jeton için üçüncü taraf eşleştirmenin etkinleştirilip etkinleştirilmediği. Bu özellik, deneme özelliğine üçüncü taraf komut dosyalarından birden fazla sitede erişilmesi gereken bazı kaynak denemelerinde kullanılabilir.
- Alt Alanları Eşleştir: Jeton için alt alan adı eşleştirmenin etkinleştirilip etkinleştirilmediği. Bu sayede, her alt alan adı için farklı bir jeton gerekmeden bir kaynak deneme özelliğinin bir kaynağın birden fazla alt alan adında test edilmesi sağlanır.
Deneme mevcut kullanıcı için kullanılamıyorsa, jetonun süresi dolduysa veya başka kısıtlamalar varsa Chrome DevTools, deneme adının yanında bir uyarı gösterir.
Chrome Geliştirici Araçları durum kodları
Süresi doldu: Jetonun son kullanma tarihi geçti. Yeni bir son kullanma tarihine sahip yeni bir jeton oluşturmak için jetonun yenilenmesi gerekir.
Kaynak kodFeatureDisabled: Deneme sürümü şu anda kullanılamıyor.
Kaynak kodFeatureDisabledForUser: Bu jeton, alternatif bir kullanım kısıtlaması aracılığıyla mevcut kullanıcı için devre dışı olarak belirlenmiştir. Tasarım dokümanındaki "Kullanıcı Alt Kümesi Hariç Tutmaları" bölümüne bakın.
Kaynak kod 1
Kaynak kod 2Güvenli değil: İstek kaynağı güvenli değil ve güvenli olmayan kaynaklar için deneme etkin değil. Kaynak deneme jetonu doğrulayıcı kodunda açıklandığı gibi: "Üçüncü taraf jetonları için hem mevcut kaynak hem de komut dosyası kaynağı güvenli olmalıdır. Alt alan adı eşleşmesi nedeniyle, jeton kaynağı, sağlanan komut dosyası kaynaklarından biriyle tam olarak eşleşmeyebilir ve sonuç, hangi belirli kaynağın eşleştiğini belirtmez. Bu, uygun komut dosyası kaynağını bulmak için doğrudan bir arama olmadığı anlamına gelir. Tüm kaynak karşılaştırmalarını yeniden yapmaktan kaçınmak için, kaç komut dosyası kaynağının sağlandığına bağlı kısayollar vardır. En az bir tane olmalıdır, aksi takdirde üçüncü taraf jetonu başarıyla doğrulanamaz."
Kaynak kodInvalidSignature: Jetonun geçersiz veya hatalı bir imzası var.
Kaynak kodBozuk: Jeton bozuk ve ayrıştırılamadı.
Kaynak kodu
NotSupported: Jeton tarafından tanımlanan kaynak denemesi Chromium "embedder" öğesinde desteklenmez: Chrome veya Edge gibi bir tarayıcı, WebView ya da başka bir kullanıcı aracısı.
Kaynak kodBaşarı: Jeton düzgün biçimlendirilmiş, süresi dolmamış, bir kaynak deneme özelliğiyle eşleşiyor ve beklenen bir kaynaktan isteniyor.
Kaynak kodTokenDisabled: Jeton devre dışı olarak işaretlendi ve kullanılamaz.
Kaynak kodTrialNotAllowed: Kaynak deneme sürümü mevcut kullanıcı tarafından kullanılamıyor.
Kaynak koduUnknownTrial: Jeton, bilinen herhangi bir denemeyle eşleşmeyen bir özellik adı belirtir.
Kaynak kodWrongOrigin: İstek kaynağı, jetonda belirtilen kaynakla eşleşmiyor. Bu, şemayı, ana makine adını veya bağlantı noktasını içerebilir. Bu durum, harici bir JavaScript dosyasından değil de HTTP üst bilgisi, meta etiketi veya satır içi komut dosyasında bir üçüncü taraf jetonu sağlanırsa da gösterilir.
Kaynak kodWrongVersion: Yanlış jeton sürümü: Şu anda yalnızca 2 ve 3 numaralı jeton sürümleri desteklenmektedir.
Kaynak kod
Çalışmıyor. 🤔
Kaynak deneme sürümünüz 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ına güvenmeyin. Bunun nedeni, Chrome kaynak denemelerinin Chrome'da deneme amaçlı olarak sunulan özelliklere özgü olmasıdır.
Kaynak denemeleri Firefox ve Microsoft Edge için de kullanılabilir. Firefox veya Edge kaynak deneme sürümüne kaydolma, Chrome'da bir özelliği etkinleştirmez.
Kaynak denemesi, sitenize erişen Chrome sürümleri için etkindir.
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ında (Canary, Geliştirici ve Beta) kullanılabileceği anlamına gelebilir.
Deneme sürümünün kullanılabilirliğini deneme sürümünün 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ılmamışsa
Bir kullanıcı, bir özelliğin kendisi için çalışmadığını bildirirse özelliğin Chrome ayarlarında devre dışı bırakılmadığından emin olun. Ö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 kelimeleri ve söz dizimini kullandığınızdan emin olun.
Birinci taraf kullanımı için origin-trial
meta etiketinde jeton sağlanabilir:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Alternatif olarak, Origin-Trial
yanıt başlığında bir jeton sağlanabilir. Node.js'de Express kullanan bir örneği aşağıda bulabilirsiniz:
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 jetonu kaynağı, sayfa kaynağıyla eşleşiyor
Deneme için kaydolurken seçilen Web Kaynağı 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
'ü seçtiyseniz:
Şuna benzer 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 için HTML'yi kontrol edin:
<meta http-equiv="origin-trial" content="Aj4DysCv3VjknU3...">
Bir başlıkta sağlanan jetonun değerini, Yanıt Başlıkları altındaki Chrome Geliştirici Araçları Ağ panelinden kontrol edebilirsiniz:
Birinci taraf jeton, bunu kullanan kaynaktan sunulur
Kaynaktan yayınlanan bir sayfaya dahil edilen kod için kaynak deneme özelliğine erişimi etkinleştirmek istiyorsanız meta etiket, üstbilgi veya aynı kaynaktan JavaScript aracılığıyla bir deneme jetonu sağlayın.
Bir jeton için kayıtlı kaynak, jetonu sunan kaynakla eşleşmelidir.
Üçüncü taraf jeton kaynağı, komut dosyası kaynağıyla eşleşiyor
Diğer kaynaklara yerleştirilen komut dosyaları için bir kaynak denemesine katılmak üzere kaydolabilirsiniz.
Örneğin, javascript-library.example
adresinden yayınlanan komut dosyalarının bir kaynak denemesine katılmasını istiyorsanız javascript-library.example
için üçüncü taraf eşleştirmeye bir jeton kaydettirmeniz gerekir.
Üçüncü taraf jetonunun kaynak değeri, jetonu ekleyen komut dosyasının kaynağıyla eşleşmelidir.
Üçüncü taraf komut dosyası, bir üçüncü taraf jetonu kullanıyor
Bir üçüncü taraf komut dosyasının, komut dosyası için değil, sadece kaynağınız için bir jeton kaydederek sitenizdeki kaynak denemesinde yer almasını sağlayamazsınız.
Üçü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ı aracılığıyla (sitenizdeki bir meta etikete veya başlığa dahil edilmez) enjekte edilir:
function addTrialToken(tokenContents) {
const tokenElement = document.createElement('meta');
tokenElement.httpEquiv = 'origin-trial';
tokenElement.content = tokenContents;
document.head.appendChild(tokenElement);
}
Üçüncü taraf jetonu, meta etiket, HTTP üst bilgisi veya satır içi komut dosyası yerine 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ğı (kaynak URL'si) yoktur.
Bu, üçüncü taraf jetonunun <meta>
etiketinde veya satır içi komut dosyasında değil, harici bir komut dosyası aracılığıyla sağlanması gerektiği anlamına gelir. Komut dosyasının kaynağı deneme için kayıtlı bir kaynakla eşleştiği sürece, jetonu yerleştiren harici komut dosyasının kapsayıcı sayfayla aynı kaynaktan veya farklı bir kaynaktan gelmesi ö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öntem için desteklenir
Kaynak deneme özelliklerine erişim için bazı türlerde, deneme jetonunu belirli bir şekilde sağlamanız gerekir.
Örneğin, hizmet çalışanları ve paylaşılan çalışanlar için kaynak deneme 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 adı eşleştirme etkinleştirilir.
Bir kaynak deneme özelliği, sitenizdeki bazı sayfalarda çalışmıyorsa jetonların, bu sayfaları sunan alt alan adları için doğru şekilde ayarlandığından emin olun.
Bir kaynak denemesine kaydolurken isteğe bağlı olarak kaynağın tüm alt alan adlarını eşleştirmeyi seçebilirsiniz:
Üçüncü taraf jetonları için alt alanları da eşleştirebilirsiniz:
Herkese Açık Son Ek Listesi'ndeki kaynaklar için alt alan adı jetonları dağıtılmaz. Örneğin, https://appspot.com veya https://github.io gibi bir kaynağı kaydedemezsiniz ancak bu kaynak içindeki https://example.appspot.com veya https://example.github.io gibi alanlar için kaydolabilirsiniz.
Jeton hâlâ geçerliyse
Jetonlar, oluşturulduktan altı hafta sonra geçerliliğini yitirir. Ayrıca, Geçerlilik Bitiş Tarihi'ni uzatmak için geri bildirim göndermeniz gerekir. Web Geliştiricileri İçin Kaynak Deneme Kılavuzu'nda, jetonunuzun bir kaynak denemesinin tamamı için geçerli olduğundan nasıl emin olabileceğiniz açıklanmaktadır.
Chrome Kaynak Denemelerinizde etkin jeton olup olmadığını Kayıtlarım sayfasında kontrol edebilirsiniz:
Jeton hâlâ geçerliyse Chrome Geliştirici Araçları Durum Success
değerini gösterir:
Jetonunuzun süresi dolmuşsa DevTools'ta Expired
durumu, Kayıtlarım sayfanızda ise Süresi Dolmuş Jetonlar bölümü gösterilir.
Kaynak denemesi sona ermedi
Bir kaynak denemenin bitiş tarihini kayıt sayfasından kontrol edebilirsiniz:
Sona eren denemeler için Geliştirici Araçları şuna benzer bir sayfa gösterir:
Geri bildirim gerektiğinde veya bir jetonun süresi dolmak üzereyken otomatik e-postalar gönderilir (deneme süresi sona erdiğinde gönderilmez).
Kaynak denemesi mevcut kullanıcı tarafından kullanılabilir
Geçerli bir jeton sağlansa bile bazı kaynak denemeleri belirli kullanıcılar tarafından kullanılamaz.
Mevcut kullanıcı için deneme sürümü kullanılamıyorsa 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.
Herhangi bir web platformu özelliğinde olduğu gibi, bir kaynak deneme özelliğini kullanmadan önce özelliğin desteklendiğini onaylamak için özellik algılama özelliğini kullanmanız gerekir.
Kaynak deneme kullanım kısıtlamaları aşılmış olmamalıdır.
Deneme için geçerli bir jetonu olan tüm sayfalarda varsayılan olarak bir kaynak deneme özelliği etkinleştirilir.
Ancak, nadir durumlar dışında, kaynak deneme sürümü 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 tutarı aşarsa kaynak deneme özelliği devre dışı bırakılır. DevTools, jeton durumunu devre dışı olarak gösterir.
Desteği sonlandırılan deneme sürümleri yeni özellikler sunmadığı ve bu nedenle web'in önemli bir bölümünü deneme sürümüne bağımlı hale getirme riski taşımadığı için bu sürümler için kullanım sınırı yoktur.
Bazı deneme sürümlerinde, kullanımı sınırlama seçeneği de sunulur. Bu durumda, kaynak deneme sürümünün özellikleri bazı kullanıcılar için devre dışı bırakılır. Bu seçenek, bunu sunan bir kaynak deneme sürümünün kayıt sayfasından kullanılabilir:
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çildiğinden emin olun.
Iframes kendi jetonlarını sağlar
Kaynak deneme özelliğine erişime izin vermek için bir iframe'in meta etiketinde, HTTP üst bilgisinde veya programlı olarak jeton sağlaması gerekir. Iframe'ler, kendilerini içeren sayfalarda etkinleştirilen özelliklere erişimi devralmaz.
ot-iframe.glitch.me, bir iframe'den kaynak deneme ö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ılmış
Bazı kaynak deneme özellikleri, bir Permissions-Policy
üst bilgisinden (eski adıyla Feature-Policy
başlığı) etkilenebilir. Bunu deneme özelliği için Deneme Amacı'nda veya web.dev ya da developer.chrome.com/blog adresindeki özellikle ilgili geliştirici dokümanlarında kontrol edebilirsiniz.
Erişmeye çalıştığınız özelliğin bir Permissions-Policy
yönergesiyle engellenmediğinden emin olun. Yanıt başlıklarını Chrome Geliştirici Araçları Ağ panelinde kontrol edebilir ve izin verilen özelliklerin tam listesini Uygulama panelinde görüntüleyebilirsiniz.
Peki ya işçiler?
Kaynak deneme özellikleri, hizmet işçileri, paylaşılan işçiler ve özel işçiler tarafından kullanılabilir. Ancak hizmet işçileri ve paylaşılan işçiler için erişimi etkinleştirmenin tek yolu, Origin-Trial
başlığında 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
Bir deneme özelliğine erişilmeden önce kaynak deneme jetonunun sağlandığından emin olun. Örneğin, bir sayfa JavaScript aracılığıyla jeton sağlıyorsa jetonu sağlayacak kodun, deneme sürümüne erişmeye çalışan koddan önce çalıştırıldığından emin olun.
Kaynak deneme demoları
- Meta etiketteki jeton
- Başlıkta jeton
- iframe'de erişilen özelliğe
- Üçü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
- Origin deneme sürümü hakkında
- Kaynak denemesi çalıştırma
- Chromium'da yeni özellikleri kullanıma sunma süreci
- Açıklama amacı: Blink gönderim sürecinin perde arkasını aralıyoruz
- Microsoft Edge'de kaynak denemelerini kullanma
- Firefox için kaynak denemeleri