Krom Ve Firefox birkaç ay içinde sürüm 100’e ulaşacak. Bu, iş mantığını gerçekleştirmek için tarayıcı sürümünü belirlemeye dayanan sitelerde bozulmaya neden olma potansiyeline sahiptir. Bu gönderi, olayların zaman çizelgesini, Chrome ve Firefox’un etkiyi azaltmak için uyguladığı stratejileri ve nasıl yardımcı olabileceğinizi kapsar.
Kullanıcı Aracısı dizesi #
User-Agent (UA), sunucuların tarayıcıyı tanımlayabilmesi için tarayıcıların HTTP başlıklarında gönderdiği bir dizedir. Dize ayrıca JavaScript aracılığıyla da erişilebilir. navigator.userAgent
. Genellikle şu şekilde biçimlendirilir:
<browser_name>/<major_version>.<minor_version>
Örneğin, bu yayının yayınlandığı sırada tarayıcıların en son yayınlanan sürümleri şunlardır:
- Krom:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
- Firefox:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
- Safari:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15
Ana sürüm 100—üç basamaklı sürüm numarası #
Ana sürüm 100, hem Chrome hem de Firefox için büyük bir kilometre taşıdır. Ayrıca, iki basamaklı bir rakamdan bir rakama geçtiğimizde web sitelerinde kırılmaya neden olma potansiyeline de sahiptir. üç haneli sürüm numarası. Web geliştiricileri, bu dizeleri ayrıştırmak için, özel koddan User-Agent ayrıştırma kitaplıklarını kullanmaya kadar her türlü tekniği kullanır ve bunlar daha sonra karşılık gelen işleme mantığını belirlemek için kullanılabilir. User-Agent ve diğer sürüm raporlama mekanizmaları yakında üç basamaklı bir sürüm numarası bildirecektir.
Sürüm 100 zaman çizelgeleri #
Sürüm 100 tarayıcılar önce deneysel sürümlerde (Chrome Canary, Firefox Nightly), ardından beta sürümlerde ve son olarak kararlı kanalda yayınlanacak.
Üç basamaklı bir sürüm numarası neden sorunlu olabilir? #
Tarayıcılar 12 yıldan biraz daha uzun bir süre önce sürüm 10’a ilk ulaştığında, birçok sorun keşfedildi ana sürüm numarası bir haneden ikiye çıktığı için User-Agent ayrıştırma kitaplıklarıyla.
İzlenecek tek bir spesifikasyon olmadan, farklı tarayıcıların farklı biçimleri vardır User-Agent dizesi ve siteye özgü User-Agent ayrıştırması için. Bazı ayrıştırma kitaplıklarının, üç basamaklı ana sürüm numaralarını hesaba katmayan sabit kodlanmış varsayımları veya hataları olabilir. Pek çok kitaplık, tarayıcılar iki basamaklı sürüm numaralarına geçtiğinde ayrıştırma mantığını iyileştirdi, bu nedenle üç basamaklı aşamaya ulaşmanın daha az soruna yol açması bekleniyor. mike taylorChrome ekibinden bir mühendis olan , herhangi bir sorunu ortaya çıkarmayan yaygın UA ayrıştırma kitaplıklarıyla ilgili bir anket yaptı. Sahada Chrome denemeleri yapmak, üzerinde çalışılan bazı sorunları ortaya çıkardı.
Tarayıcılar bu konuda ne yapıyor? #
Hem Firefox hem de Chrome, olası web sitesi bozulmalarını tespit etmek için tarayıcının mevcut sürümlerinin ana sürüm 100’de olduğunu bildirdiği deneyler yürütüyor. Bu birkaç neden oldu bildirilen sorunlarbazıları zaten sabit. Bu deneyler, sürüm 100’ün yayınlanmasına kadar çalışmaya devam edecek.
Kararlı kanallara sürüm 100 sürümünün web sitelerine beklenenden daha fazla zarar vermesi durumunda, yedekleme azaltma stratejileri de mevcuttur.
Chrome azaltma #
Chrome’da yedekleme planı, ana sürümü 99’da dondurmak için bir işaret kullanmak ve gerçek ana sürüm numarasını User-Agent dizesinin alt sürüm bölümünde bildirmektir (kod zaten indi).
User-Agent dizesinde bildirildiği şekliyle Chrome sürümü, kalıbı izler <major_version>.<minor_version>.<build_number>.<patch_number>
.
Yedekleme planı kullanılırsa, User-Agent dizesi şöyle görünür:
99.101.4988.0
Chrome ayrıca, Chrome User-Agent dizesindeki alt sürüm çok uzun bir süredir 0 bildirdiğinden, dizenin alt sürüm kısmında üç basamaklı bir değerin bildirilmesinin bozulmayla sonuçlanmamasını sağlamak için deneyler yürütmektedir. Chrome ekibi, bildirilen sorunların sayısına ve önem derecesine göre yedekleme seçeneğine başvurup başvurmamaya karar verecektir.
Firefox hafifletme #
Firefox’ta strateji, kırılmanın ne kadar önemli olduğuna bağlı olacaktır. Firefox’ta bir site müdahale mekanizması. Mozilla webcompat ekibi, bu mekanizmayı kullanarak Firefox’ta bozuk web sitelerini düzeltebilir. yazarsan about:compat
Firefox URL çubuğunda, şu anda neyin düzeltildiğini görebilirsiniz. Belirli bir etki alanında ana sürüm 100 olan bir site bozulursa, bunun yerine sürüm 99’u göndererek düzeltmek mümkündür.
Kırılma yaygınsa, ana sürüm numarasının dondurulması mümkündür. O zaman her biri artıları ve eksileri olan farklı olası stratejiler vardır. Mozilla, gerçek sürüm numarasını alt sürüm numarası olarak gönderebilir, dizeyi tamamen olduğu gibi dondurabilir veya gerçek sürüm numarasını diğer parametreler aracılığıyla gönderebilir.
User-Agent dizisine karmaşıklık katan her stratejinin ekosistem üzerinde güçlü bir etkisi vardır. Başka bir tuhaf davranıştan kaçınmak için birlikte çalışalım.
Yardım etmek için ne yapabilirsin? #
Chrome ve Firefox Nightly’de, tarayıcıyı şu anda sürümü 100 olarak bildirecek ve karşılaştığınız sorunları bildirecek şekilde yapılandırabilirsiniz.
Ana sürümü 100 olarak bildirmek için Chrome’u yapılandırın #
- git
chrome://flags/#force-major-version-to-100
. - Seçeneği şu şekilde ayarlayın:
Enabled
.
Ana sürümü 100 olarak bildirmek için Firefox Nightly’yi yapılandırın #
- Firefox Nightly’nin Ayarlar menüsünü açın.
- “Firefox 100” için arama yapın ve ardından “Firefox 100 User-Agent String” seçeneğini işaretleyin.
Test edin ve raporları dosyalayın #
- Bir web sitesi bakımcısıysanız, web sitenizi Chrome ve Firefox 100 ile test edin. User-Agent ayrıştırma kodunuzu ve kitaplıklarınızı gözden geçirin ve üç basamaklı sürüm numaralarını işleyebileceklerinden emin olun. bazılarını derledik şu anda kırılmakta olan kalıplar.
- Bir User-Agent ayrıştırma kitaplığı geliştirirseniz, 100’den büyük ve 100’e eşit sürümleri ayrıştırmak için testler ekleyin. İlk testlerimiz, kitaplıkların son sürümlerinin bunu doğru bir şekilde işleyebildiğini gösteriyor. Bununla birlikte, web’in uzun bir mirası vardır, bu nedenle, kitaplıkları ayrıştırmanın eski sürümlerine sahipseniz, sorunları kontrol etme ve sonunda yükseltme zamanı.
- Web’de geziniyorsanız ve ana sürüm 100 ile ilgili sorunları fark edin, webcompat.com’da bir rapor oluşturun.