Chrome'un hemen hemen her sürümünde üründe, performansında ve Web Platformu'nun özelliklerinde çok sayıda güncelleme ve iyileştirme görüyoruz. Bu makalede, 8 Haziran itibarıyla beta sürümünde olan Chrome 60'taki desteği sonlandırma ve kaldırma işlemleri açıklanmaktadır. Bu liste herhangi bir zamanda değiştirilebilir.
Güvenlik
şifreleme.subtle için artık güvenli bir kaynak gerekiyor
Chrome 37'den bu yana desteklenen Web Crypto API, her zaman güvenli olmayan kaynaklarda çalışmaktadır. Chrome'un uzun süredir devam eden güçlü özellikler için güvenli kaynakları tercih etme politikası nedeniyle, crypto.subtle
yalnızca güvenli kaynaklarda görünmez.
Kaldırma Amacı | Chromium Hatası
Veri URL'lerine içerik tarafından başlatılan üst çerçeve gezinmelerini kaldırma
Teknik bilgi sahibi olmayan tarayıcı kullanıcılarına aşina olmadıklarından, data:
şemasının adres sahteciliği ve kimlik avı saldırılarında gittikçe daha fazla kullanıldığını görüyoruz. Bunu önlemek için web sayfalarının data:
URL'lerini üst çerçeveye yüklemesini engelliyoruz. Bu durum <a>
etiketleri, window.open
, window.location
ve benzer mekanizmalar için geçerlidir. data:
şeması, bir sayfa tarafından yüklenen kaynaklar için çalışmaya devam eder.
Bu özellik Chrome 58'de kullanımdan kaldırılmış olup kaldırılmıştır.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
Bazı blob'lar için navigator.sendBeacon() işlevini geçici olarak devre dışı bırakın
navigator.sendBeacon()
işlevi, Chrome 39'dan beri kullanılmaktadır.
Başlangıçta uygulandığında işlevin data
bağımsız değişkeni, türü CORS güvenli listede olmayan rastgele blob içerebilir. Henüz kimse bundan yararlanmayı denemese de bunun potansiyel bir güvenlik tehdidi olduğuna inanıyoruz. Bunun için makul bir hızlı düzeltme BULUNMADIĞIMIZdan, geçici olarak sendBeacon()
türü CORS güvenli listede olmayan blob'larda artık çağrılamaz.
Bu değişiklik Chrome 60 için uygulanmış olsa da Chrome 59 ile tekrar birleştirilmiştir.
CSS
Gölge uçlayan alt birleştiricinin alt bileşen gibi davranmasını sağlayın
CSS Kapsam Oluşturma Modülü Düzey 1'in bir parçası olan gölge veren alt öğe birleştirici (>>>
), belirli bir üst öğenin alt öğelerini gölge ağacında göründüklerinde bile eşleştirmek için tasarlanmıştır. Bu yöntemde bazı sınırlamalar vardı.
İlk olarak, bu spesifikasyona göre yalnızca querySelector()
gibi JavaScript çağrılarında kullanılabiliyordu ve stil sayfalarında çalışmıyordu. Daha da önemlisi, tarayıcı satıcıları bunun Gölge DOM'nin bir düzeyinin ötesinde çalışmasını sağlayamadı.
Bunun sonucunda alt öğe birleştirici, Gölge DOM v1 dahil olmak üzere ilgili spesifikasyonlardan kaldırıldı. Bu seçiciyi Chromium'dan kaldırarak web sayfalarını bölmek yerine, gölge delici alt öğe birleştiriciyi alt öğe birleştiriciyle takma adı olarak kullanmayı tercih ettik. Orijinal davranış Chrome 45'te kullanımdan kaldırılmıştır. Yeni davranış Chrome 61'de uygulanmıştır.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
JavaScript
RTCPeerConnection.getStreamById() işlevini kullanımdan kaldırın ve kaldırın
getStreamById()
, yaklaşık iki yıl önce WebRTC spesifikasyonundan kaldırıldı. Diğer tarayıcıların çoğu bunu uygulamalarından şimdiden kaldırmıştır. Bu işlevin çok az kullanıldığı düşünülse de, getStreamById()
'in hâlâ desteklendiği durumlarda Edge ve WebKit tabanlı tarayıcılarda Safari dışında küçük bir birlikte çalışabilirlik riski olduğu düşünülmektedir. Alternatif bir uygulamaya ihtiyaç duyan geliştiriciler, örnek kodu aşağıdaki Kaldırma Amacı bölümünde bulabilirler.
Kaldırma işlemi Chrome 62 sürümündedir.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
SVGPathElement.getPathSegAtLength değerini kullanımdan kaldır
İki yıldan uzun bir süre önce, getPathSegAtLength()
SVG spesifikasyonundan kaldırıldı.
Bu yöntem httpArchive'da çok az isabet aldığından, Chrome 60'ta kullanımdan kaldırılmıştır. Ekim ayının başlarında veya ortalarında gönderilecek olan Chrome 62'de kaldırma işlemi yapılması beklenmektedir.
Kullanımdan Kaldırma Amacı | Chromestatus Tracker | Chromium Bug
getContextAttributes() öğesini bir işaretin arkasına taşıma
getContextAttributes()
işlevi, 2013 yılından beri CanvasRenderingContext2D
üzerinde desteklenmektedir. Ancak bu özellik hiçbir standardın parçası
değildi ve o zamandan beri bir standardın parçası olmadı. Bu özelliğin --enable-experimental-canvas-features
komut satırı işaretinin arkasında uygulanması gerekiyordu, ancak yanlışlıkla uygulanmadı. Chrome 60'ta bu hata düzeltilmiştir. Kimsenin bu yöntemi kullandığını gösteren veri olmadığı için bu değişikliğin güvenli olduğuna inanılıyor.
Headers.prototype.getAll() öğesini kaldırma
Headers.prototype.getAll()
işlevi, Getirme spesifikasyonunun en son sürümüne göre kaldırılıyor.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
IndexDB.webkitGetDatabaseNames() işlevini kaldır
Bu özelliği, Dizine Eklenen DB'nin Chrome'da nispeten yeni olduğu ve önek eklemenin çok yaygın olduğu bir zamanda ekledik. API, eşzamansız olarak bir kaynaktaki mevcut veritabanı adlarının listesini döndürür ve bu liste yeterince mantıklıdır.
Ne yazık ki tasarım hatalıdır. Sonuçlar döndürülür döndürülmez geçerliliğini yitirebilir. Bu da gerçekten ciddi bir uygulama mantığı değil, yalnızca günlük kaydı için kullanılabilir. GitHub sorunu, farklı bir yaklaşım gerektiren alternatiflerle ilgili önceki tartışmaları takip ediyor/bağlantı veriyor. Geliştiricilerin bu konudaki ilgisini açıp kapatsa da, tarayıcılar arası ilerlemenin eksik olması nedeniyle kütüphane yazarları sorunu çözmüştür.
Bu işleve ihtiyaç duyan geliştiricilerin kendi çözümlerini geliştirmeleri gerekir. Örneğin Dexie.js gibi kitaplıklar, veritabanlarının adlarını izlemek için başka bir veritabanı olan global tabloyu kullanır.
Bu özellik Chrome 58'de kullanımdan kaldırılmış olup kaldırılmıştır.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
WEBKIT_KEYFRAMES_RULE ve WEBKIT_KEYFRAME_RULE yardımcılarını kaldır
Standart olmayan WEBKIT_KEYFRAMES_RULE
ve WEBKIT_KEYFRAME_RULE
sabitleri CSS Kuralından kaldırılır.
Geliştiriciler bunun yerine KEYFRAMES_RULE
ve KEYFRAME_RULE
kullanmalıdır.
Kaldırma Amacı | Chromestatus İzleyici | Chromium Hatası
Kullanıcı Arayüzü
beforeunload iletişim kutuları için kullanıcı hareketini zorunlu kıl
Chrome 60'tan itibaren beforeunload
iletişim kutusu, yalnızca görüntülemeye çalışan çerçeve bir kullanıcı hareketi veya kullanıcı etkileşimi aldığında (ya da yerleştirilmiş herhangi bir çerçeve böyle bir hareket aldığında) görünür. Açıkça belirtmek gerekirse bu, beforeunload
etkinliğinin dağıtımıyla ilgili bir değişiklik değildir. Bu yalnızca iletişim kutusunun
gösterilip gösterilmeyeceğine ilişkin bir değişikliktir.
beforeunload
iletişim kutusu, uygulama kalıcı iletişim kutusudur. Bu nedenle, doğası gereği kullanıcıya zararlıdır, yani kullanıcı gezinmesine kullanıcının kararını sorgulayarak yanıt verir. Bu özelliğin olumlu kullanımları vardır. Örneğin, genellikle kullanıcıları gezinerek verilerini kaybedecekleri zaman uyarmak için kullanılır.
Bir sayfanın beforeunload
iletişim kutusu için metin sağlama özelliği bir süre önce kaldırılmış olsa da beforeunload
iletişim kutuları kötüye kullanım vektörü olmaya devam ediyor. beforeunload
diyalogları özellikle dolandırıcılık amaçlı web sitelerinin bir bileşenidir. Burada otomatik oynatılan sesler ve tehdit metinleri, Chromium'un "bu sayfadan ayrılmak istediğinizden emin misiniz?" mesajının endişe verici hale geldiği bir bağlam sağlar.
İğneye iplik geçirmek ve beforeunload
iletişim kutusunun yalnızca doğru kullanımına izin vermek istiyoruz. İletişimin, kullanıcının kaybolabileceğini söylediği yerlerdir. Kullanıcı sayfayla hiç etkileşimde bulunmazsa kullanıcı, kaybolabilecek herhangi bir duruma sahip olamaz. Bu nedenle, bu durumda iletişim kutusunu engelleyerek kullanıcı verilerinin kaybı riskini almayız.