Chrome'un hemen hemen her sürümünde üründe, performansında ve Web Platformu'nun yeteneklerinde çok sayıda güncelleme ve iyileştirme görüyoruz. Bu makalede, 15 Eylül itibarıyla beta sürümünde olan Chrome 54'teki desteği sonlandırma ve kaldırma işlemleri açıklanmaktadır. Bu liste herhangi bir zamanda değiştirilebilir.
Kaldırma işleyicide gezinmeleri devre dışı bırak
TL;DR: Chrome'un HTML spesifikasyonunun yanı sıra Firefox ve Safari ile uyumlu olması için window.onunload
etkinlik işleyicilerde hiçbir kaynak arası gezinmeye izin verilmeyecektir.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
Chrome'un önceki sürümleri, kaynaklar arası gezinmenin window.onunload
içinde kesintiye uğramasına izin veriyordu. window.location.href = '#fragment'
ayarlayarak. HTML spesifikasyonuna göre, kaldırma işleyicilerinde yalnızca sayfa içi gezinmelere izin verilir ve Chrome'un önceki sürümlerinde spesifikasyonların gerektirdiği diğer gezinme yöntemleri engellenmiştir. Chrome 54'ten itibaren, Firefox ve Safari'nin yanı sıra spesifikasyonlara uygun hale getirmek için bu tür gezinmelerin yapılmasına izin verilmeyecektir.
HTTP/0.9 desteği sonlandırıldı
TL;DR: HTTP/0.9 kullanımdan kaldırılmıştır. Geliştiriciler daha yeni bir sürüme, tercihen HTTP/2'ye geçmelidir.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
HTTP/0.9, HTTP/1.x'in öncüsüdür. Onun haleflerinin pek çok özelliği eksik. Modern web'in en büyük endişelerinden biri yanıt başlıklarının olmamasıdır. Bunlar olmadan HTTP/0.9 yanıtının gerçekten bir HTTP/0.9 yanıtı olduğunu doğrulamanın yolu yoktur. Bu durum, çeşitli sorunlara yol açabilir. Diğer sorunların yanı sıra şunlara örnek olarak verilebilir:
- Belirli hata yanıtlarını geçerli HTTP/0.9 yanıtları olarak işleyen istemciler.
- İstek yuvasını kapatamayan sunucular, istemcilerin yanıtları, kalıcı olarak ya da kullanıcı istekte bulunan sayfadan ayrılana kadar askıda kalan GET olarak değerlendirmesini sağlar.
- Tarayıcıya bir isteğin başarısız olduğunu belirtemeyen ve bu durum, önbelleğe alma buluşsal yöntemleriyle ilgili sorunlara neden olabilir.
HTTP/0.9 ile ilgili sorunları düzeltmenin tek hatasız yolu, desteği tamamen kaldırmaktır. Bu nedenle HTTP/0.9 desteği Chrome 54'te kaldırılmıştır.
initTouchEvent
kullanımı kaldırıldı
TL;DR:
initTouchEvent
, spesifikasyon uyumluluğunu iyileştirmek amacıyla kullanımdan kaldırılan TouchEvent
constructor
sürümü yerine Chrome 54'te tamamen kaldırılacaktır.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
Geliştiriciler uzun bir süredir initTouchEvent
API'yi kullanarak Chrome'da sentetik dokunma etkinlikleri oluşturabiliyorlar. Bunlar, sitenizdeki bazı kullanıcı arayüzlerini test etmek veya otomatikleştirmek amacıyla Dokunma Etkinlikleri'ni simüle etmek için sıkça kullanılır. Kullanımdan kaldırılan bu API, Chrome 49 sürümünden beri aşağıdaki uyarıyı göstermiştir .
Dokunma Etkinlikleri spesifikasyonunda yer almamakla birlikte, bu değişikliğin iyi olmasının çeşitli nedenleri vardır.
initTouchEvent
Chrome uygulaması Safari'nin initTouchEvent
API'si ile hiç uyumlu değildi ve Android'deki Firefox'unkinden farklıydı. Son olarak, TouchEvent
oluşturucunun kullanımı çok daha kolaydır.
Bu nedenlerle, belirtilmemiş veya diğer tek uygulamayla uyumlu olmayan bir API kullanmak yerine spesifikasyona uymaya karar verdik.
Alternatife ihtiyaç duyan geliştiriciler TouchEvent
oluşturucuyu kullanmalıdır.
initTouchEvent
API'sinin iOS ve Android/Chrome uygulamaları son derece farklı olduğundan siteler çoğu zaman aynı şekilde koda sahiptir (sıklıkla Firefox'u unutur).
var event = document.createEvent('TouchEvent');
if(ua === 'Android') {
event.initTouchEvent(touchItem, touchItem, touchItem, "touchstart", window,
300, 300, 200, 200, false, false, false, false);
} else {
event.initTouchEvent("touchstart", false, false, window, 0, 300, 300, 200,
200, false, false, false, false, touches, targetTouches, changedTouches, 0, 0);
}
document.body.dispatchEvent(touchEvent);
Kullanıcı Aracısı'nda "Android"i arar ve Android'deki Chrome eşleşecek ve bu şekilde kullanımdan kaldırılacaktır. Çünkü bu durum kötüdür. Android'de bir süre başka WebKit ve eski Blink tabanlı tarayıcılar olacağı için eski API'yi desteklemeniz gerekecek. Bu nedenle henüz kaldırılamaz.
Web'de TouchEvent
öğelerini doğru şekilde işlemek için kodunuzu Firefox, IE Edge ve Chrome'u destekleyecek şekilde değiştirmelisiniz. Bunun için window
nesnesinde TouchEvent
olup olmadığını ve pozitif bir "length" değeri varsa (bağımsız değişken alan bir kurucu olduğunu belirtir) bunu kullanmanız gerekir.
if('TouchEvent' in window && TouchEvent.length > 0) {
var touch = new Touch({
identifier: 42,
target: document.body,
clientX: 200,
clientY: 200,
screenX: 300,
screenY: 300,
pageX: 200,
pageY: 200,
radiusX: 5,
radiusY: 5
});
event = new TouchEvent("touchstart", {
cancelable: true,
bubbles: true,
touches: [touch],
targetTouches: [touch],
changedTouches: [touch]
});
}
else {
event = document.createEvent('TouchEvent');
if(ua === 'Android') {
event.initTouchEvent(touchItem, touchItem, touchItem, "touchstart", window,
300, 300, 200, 200, false, false, false, false);
} else {
event.initTouchEvent("touchstart", false, false, window, 0, 300, 300, 200,
200, false, false, false, false, touches, targetTouches,
changedTouches, 0, 0);
}
}
document.body.dispatchEvent(touchEvent);
KlavyeEvent.keyIdentifier özelliği kaldırıldı
TL;DR: Az desteklenen keyboardEvent.keyIdentifier
özelliği kaldırılarak standartlara dayalı KeyboardEvent.key
mülkü kullanılıyor.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
keyboardEvent.keyIdentifier
özelliği kısaca 2009 ve 2010'da bir W3C spesifikasyonunun parçasıydı. Ancak bu özellik bugüne kadar yalnızca WebKit'te uygulanmıştır.
Bu özelliği değiştirmesi gereken geliştiriciler, standartlara dayalı KeyboardEvent.key
özelliğini veya KeyboardEvent.code
özelliğini (geçen ilkbaharda yaptığımız bir makalede açıklandığı gibi) kullanabilir. Birincisi, Safari hariç tüm önde gelen masaüstü tarayıcılarda desteklenen en geniş uygulama tabanına sahiptir. Daha sonraki sürümler şu anda Chrome, Firefox ve Opera'da desteklenmektedir. Bu özelliğin kaldırılması, KeyboardEvent.key
mülkünün benimsenmesini artırmayı amaçlamaktadır. Apple'dan bunun desteklenip desteklenmeyeceğiyle ilgili bir kelime yok. Ancak desteği sonlandırılmış (ancak henüz Chrome'dan kaldırılmamıştır) KeyboardEvent.keyCode
ve KeyboardEvent.charCode
özellikleri Safari'de hâlâ kullanılabilir.
MediaStream sona eren etkinlik ile özelliği ve onended özelliğini kaldır
TL;DR: ended
etkinliği ve özelliği ile onended
etkinlik işleyicisi, Medya Yakalama ve Akışlar spesifikasyonundan kaldırıldıklarından kaldırılıyor.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
ended
etkinliği veya onended
etkinlik işleyicisi, yaklaşık üç yıldır WebRTC spesifikasyonunun bir parçası değildir. Etkinlikleri izlemek isteyen geliştiriciler MediaStreams
yerine MediaStreamTracks
kullanmalıdır.
SVGSVGElement.viewPort'u kullanımdan kaldır
Bu uygulama, 2012'den beri Chrome'da çalışmamaktadır. Bu özellik diğer tarayıcılarda hiç mevcut değildir ve spesifikasyondan kaldırılmıştır. Bu nedenlerden dolayı mülk kullanımdan kaldırılıyor. Chrome 55'te kaldırılması beklenmektedir.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
SVGViewElement.viewTarget öğesini kullanımdan kaldır
SVGViewElement.viewTarget
özelliği, SVG2.0 spesifikasyonunun bir parçası değildir ve kullanımı azdır veya yoktur. Bu özellik Chrome 54'te kullanımdan kaldırılmıştır. Chrome 56'da kaldırılması beklenmektedir.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
SVGZoomEvent'i kaldır
SVGZoomEvent
, SVG2.0 spesifikasyonunun bir parçası değildir ve Chromium'da çalışmaz. Özellik hâlâ algılanabilir olmasına rağmen geliştiricilerde kafa karışıklığı yaratabilir. Kaldırılacak.