Chrome'un neredeyse her sürümünde, ürün, performans ve web platformunun özelliklerinde çok sayıda güncelleme ve iyileştirme görüyoruz.
Chrome 50'de (Tahmini beta tarihi: 10-17 Mart) Chrome'da bir dizi değişiklik yapıldı. Bu liste herhangi bir zamanda değişebilir.
AppCache desteği güvenli olmayan bağlamlarda sonlandırıldı
Özet: Siteler arası komut dosyası çalıştırmayı engellemek için güvenli olmayan kaynaklarda AppCache desteğini sonlandırıyoruz. Chrome 52'de bu özelliğin yalnızca HTTPS üzerinden içerik sunan kaynaklarda çalışmasını bekliyoruz.
Intent to Remove | Chromestatus Tracker | Chromium Hatası
AppCache, bir kaynağa çevrimdışı ve kalıcı erişim sağlayan bir özelliktir. Bu özellik, siteler arası komut dosyası çalıştırma saldırısı için güçlü bir ayrıcalık artırma görevi görür. Güvenli olmayan kaynaklardaki güçlü özellikleri kaldırma için daha kapsamlı bir çalışmanın parçası olarak
Chrome, bu saldırı vektörünü yalnızca HTTPS üzerinden izin vererek kaldırır. Chrome 50'de HTTP desteğini sonlandırıyoruz ve Chrome 52'de bu desteği tamamen kaldırmayı planlıyoruz.
Document.defaultCharset kaldırıldı
Özet: document.defaultCharset
, spesifikasyonlara uygunluğu iyileştirmek için kaldırıldı.
Kaldırma Niyeti | Chromestatus İzleyici | CRBug Issue
Chrome 49'da desteği sonlandırılan document.defaultCharset
, kullanıcının sisteminin bölgesel ayarlarına göre varsayılan karakter kodlamasını döndüren salt okunur bir mülktür. Tarayıcıların, HTTP yanıtındaki veya sayfaya yerleştirilmiş meta etiketindeki karakter kodlama bilgilerini kullanma şekli nedeniyle bu değerin korunmasının yararlı olmadığı tespit edilmiştir.
Bunun yerine, HTTP başlığında belirtilen ilk değeri almak için document.characterSet
değerini kullanın. Bu mevcut değilse <meta>
öğesinin charset
özelliğinde belirtilen değeri alırsınız (örneğin, <meta
charset="utf-8">
). Son olarak, bunlardan hiçbiri mevcut değilse document.characterSet
kullanıcının sistem ayarı olur.
Bu konuda ayrıntılı bilgi vermeme nedenini bu GitHub sorununda bulabilirsiniz.
Alt öğe özelliği, bağlantı öğesinden kaldırıldı
Özet: HTMLLinkElement
öğesinin rel
özelliği için subresource
değerinin desteğini kaldırın.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
<link> öğesindeki subresource
özelliğinin amacı, tarayıcı boştayken bir kaynağı önceden yüklemekti. Bir tarayıcı, bir sayfayı indirdikten sonra diğer sayfalar gibi kaynakları önceden indirebilir. Böylece, kullanıcılar tarafından istendiğinde bu kaynaklar tarayıcı önbelleğinden kolayca alınabilir.
subresource
özelliğinde birkaç sorun yaşanıyordu. Öncelikle, bu özellik hiç amaçlanan şekilde çalışmadı. Referans verilen kaynaklar düşük öncelikli olarak indirildi. Bu özellik, Chrome dışındaki hiçbir tarayıcıda uygulanmamıştır. Chrome uygulamasında, kaynakların iki kez indirilmesine neden olan bir hata vardı.
İçerikleri önceden yükleyerek kullanıcı deneyimini iyileştirmek isteyen geliştiricilerin kullanabileceği çeşitli seçenekler vardır. Bu seçeneklerden en özelleştirilebilir olanı, önbelleğe alma ve Önbellekler API'sinden yararlanmak için bir hizmet işleyici oluşturmaktır. Diğer çözümler arasında preconnect
, prefetch
, preload
, prerender
gibi rel
özelliğinin diğer değerleri yer alır. Bu seçeneklerden bazıları deneyseldir ve yaygın olarak desteklenmeyebilir.
Güvenli olmayan TLS sürümü yedeğini kaldırma
TL;DR: Sunucuları TLS'nin daha az güvenli veya güvenli olmayan sürümlerini kullanarak verileri döndürmeye zorlayan mekanizmayı kaldırın.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Taşıma katmanı güvenliği (TLS), sürümler için pazarlık mekanizmasını destekler. Bu sayede, uyumluluğu bozmadan yeni TLS sürümlerinin kullanıma sunulmasına olanak tanır. Bazı sunucular bunu, tarayıcıların yedek olarak güvenli olmayan uç noktaları kullanmasının zorunlu olduğu şekilde uyguladı. Bu nedenle saldırganlar, yalnızca yanlış yapılandırılmış web sitelerini değil, herhangi bir web sitesini TLS'nin daha zayıf sürümleri için pazarlık yapmaya zorlayabilir.
Etkilenen siteler ERR_SSL_FALLBACK_BEYOND_MINIMUM_VERSION
ile bağlantı kuramaz. Yöneticiler, sunucu yazılımlarının güncel olduğundan emin olmalıdır. Sorun çözülmediyse sunucu yazılımı tedarikçisiyle iletişime geçerek bir düzeltme olup olmadığını öğrenin.
KeyboardEvent.prototype.keyLocation özelliğini kaldırın.
TL;DR: Keyboard.prototype.location
özelliği için gereksiz bir takma adı kaldırın.
Intent to Remove | Chromestatus Tracker | Chromium Hatası
Bu özellik, Keyboard.prototype.location
özelliğinin yalnızca bir takma adıdır. Bu özellik, klavyede birden fazla yerde bulunan tuşlar arasında anlam karışıklığını önlemeye olanak tanır. Örneğin, her iki özellik de geliştiricilerin genişletilmiş bir klavyedeki iki Enter
tuşunu ayırt etmesine olanak tanır.
RTCPeerConnection yöntemlerinde gerekli hata ve başarı işleyiciler
Özet: WebRTC RTCPeerConnection yöntemleri createOffer()
ve createAnswer()
artık başarı işleyicinin yanı sıra hata işleyici de gerektiriyor. Daha önce bu yöntemleri yalnızca bir başarı işleyiciyle çağırmak mümkündü. Bu kullanım kullanımdan kaldırılmıştır.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Chrome 49'da, hata işleyici sağlamadan setLocalDescription()
veya setRemoteDescription()
numarasını aradığınızda bir uyarı ekledik. Hata işleyici bağımsız değişkeni, Chrome 50'den itibaren zorunludur.
Bu, WebRTC spesifikasyonu uyarınca bu yöntemlerle ilgili taahhütler sunmanın önünü açmak için yapılan çalışmaların bir parçasıdır.
Aşağıda WebRTC RTCPeerConnection demos'undan bir örnek verilmiştir (main.js, satır 126):
function onCreateOfferSuccess(desc) {
pc1.setLocalDescription(desc, function() {
onSetLocalSuccess(pc1);
}, onSetSessionDescriptionError);
pc2.setRemoteDescription(desc, function() {
onSetRemoteSuccess(pc2);
}, onSetSessionDescriptionError);
pc2.createAnswer(onCreateAnswerSuccess, onCreateSessionDescriptionError);
}
Hem setLocalDescription()
hem de setRemoteDescription()
'un bir hata işleyicisi olduğunu unutmayın. Yalnızca bir başarı işleyici bekleyen eski tarayıcılar, varsa hata işleyici bağımsız değişkenini yoksayar. Bu kodu eski bir tarayıcıda çağırmak istisna oluşturmaz.
Genel olarak, üretim amaçlı WebRTC uygulamaları için uygulamaları spesifikasyon değişikliklerine ve ön ek farklılıklarına karşı korumak amacıyla WebRTC projesi tarafından yönetilen bir dolgu olan adapter.js
'i kullanmanızı öneririz.
XMLHttpRequestProgressEvent artık desteklenmiyor
Özet: XMLHttpRequestProgressEvent
arayüzü, position
ve totalSize
özellikleriyle birlikte kaldırılacak.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Bu etkinlik, Gecko uyumluluk özellikleri position
ve totalSize
'ü desteklemek için mevcuttu. Mozilla 22'de bunların üçü için de destek kaldırılmış ve bu işlevlerin yerini uzun süredir ProgressEvent
almıştır.
var progressBar = document.getElementById("p"),
client = new XMLHttpRequest()
client.open("GET", "magical-unicorns")
client.onprogress = function(pe) {
if(pe.lengthComputable) {
progressBar.max = pe.total
progressBar.value = pe.loaded
}
}
Ön ekli Şifrelenmiş Medya Uzantılarını kaldır
Özet: Önek eklenmiş şifrelenmiş medya uzantıları, spesifikasyona dayalı, önek eklenmemiş bir değişimle değiştirildi.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Chrome 42'de, şifrelenmiş medya uzantılarının spesifikasyona dayalı ve öneksiz bir sürümünü gönderdik. Bu API, HTMLMediaElement
ile kullanılmak üzere Dijital Hak Yönetimi sistemlerini keşfetmek, seçmek ve bu sistemlerle etkileşim kurmak için kullanılır.
Bu yaklaşık bir yıl önceydi. Ayrıca, ön ek içermeyen sürüm ön ek içeren sürüme kıyasla daha fazla özelliğe sahip olduğundan API'nin ön ek içeren sürümünü kaldırmanın zamanı geldi.
SVGElement.offset mülkleri için destek kaldırıldı
Özet: SVGElement için ofset özellikleri, HTMLElement
'de daha yaygın olarak desteklenen özellikler lehine kaldırıldı.
Kaldırma Niyeti | Chromestatus İzleyici | Chromium Hatası
Ofset özellikleri uzun süredir hem HTMLElement
hem de SVGElement
tarafından desteklenmektedir. Ancak Gecko ve Edge bu özellikleri yalnızca HTMLElement
'te destekler. Tarayıcılar arasındaki tutarlılığı iyileştirmek için bu özelliklerin desteği Chrome 48'de sonlandırıldı ve artık kaldırılıyor.
Eşdeğer özellikler HTMLElement
'ün bir parçası olsa da alternatif arayan geliştiriciler getBoundingClientRect()
özelliğini de kullanabilir.