Chrome 60'ta kullanımdan kaldırma ve kaldırma işlemleri

Ali Poşet
Ali Polat

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.

Chromium Hatası

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.

Chromium Hatası

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.