Bu Ay Servo Güncellemesi: Sekmeli Gezinme, Windows İyileştirmeleri, Geliştirici Araçları ve Daha Fazlası
(servo.org)- Servo’nun Ağustos 2024 güncellemesi, web motoru özelliklerinden servoshell tarayıcısına, Windows kalitesine, geliştirici araçlarına ve CI kararlılığına kadar geniş bir alanı kapsıyor
- Nightly derlemelerine
HTMLDialogElement.show(),<textarea>girdi render etme,border-image,structuredClone(),crypto.randomUUID(), WAV oynatma, Web AudioIIRFilterNode, cross-origin redirect gezinmesi gibi özellikler eklendi - Temel bileşenler SpiderMonkey 128, WebRender 0.65, wgpu 22.0 ve Rust 1.80.1’e yükseltildi; WebXR ve flexbox varsayılan olarak etkinleştirildi
- servoshell, sekmeli gezinme ile yeni bir araç çubuğu ve yeni sekme sayfası kazandı; Windows’ta klavye gezintisi, PNG çıktısı, font ve GPU ile ilgili sorunlar iyileştirildi
- Yeni CI runner’ı, Windows’a özel derleme süresini %70 kısalttı; gerçek web sitelerinde görülen çeşitli çökmeler ve SpiderMonkey GC ile ilgili BorrowError sorunları da düzeltildi
Web platformu özellikleri eklendi
- Servo nightly derlemelerine çeşitli web API’leri ve CSS özellikleri kademeli olarak eklendi
- 2024-07-27:
HTMLDialogElementiçin temelshow()desteği - 2024-07-29:
HTMLFieldSetElementiçintypeözelliği - 2024-07-31:
<textarea>içine girilen metnin render edilmesi - 2024-07-31: CSS
border-imageözelliği - 2024-08-02: CSP kaynakları
unsafe-eval,wasm-unsafe-eval - 2024-08-04: WAV ses dosyası oynatma
- 2024-08-09:
structuredClone()API’si - 2024-08-12: Web Audio
IIRFilterNode - 2024-08-13: cross-origin redirect gezinmesi
- 2024-08-23:
crypto.randomUUID()API’si - 2024-08-29: CSS
clip-pathözelliğipath(),polygon(),shape(),url()değerleri hariç
- 2024-07-27:
Motor bileşenleri ve varsayılan davranış değişiklikleri
- Servo, başlıca bağımlı bileşenleri en yeni sürümlere yükseltti
-
SpiderMonkey 128
-
WebRender 0.65
-
wgpu 22.0
- Rust 1.80.1
- WebXR ve flexbox varsayılan olarak etkinleştirildi
- Promise döndüren web API’leri, başarısızlık durumunda istisna fırlatmak yerine Promise’i doğru şekilde reject ediyor
-
WebXR ve flexbox iyileştirmeleri
- WebXR API’sinde, varsayılan etkinleştirmeye uygun olarak çeşitli arayüzler ve giriş özellikleri yeniden düzenlendi
- Gamepad desteği eklendi
- hand input,
XRBoundedReferenceSpace,XRFrame,XRInputSource,XRPose,XRSession,XRTargetRayMode,XRView,XRWebGLLayerile ilgili güncellemeler yapıldı makeXRCompatible()artık yalnızcaWebGLRenderingContextüzerinde değil,WebGL2RenderingContextüzerinde de çağrılabiliyor
- flexbox’a sık kullanılan layout özellikleri eklendi
gapözelliğialign-content: stretchalign-itemsvealign-selfiçinstart,enddeğerleriflex-direction: column,column-reversetemel desteği
- Flex item’ların yerleşimi ve boyut hesaplamaları da daha doğru hale getirildi
- Flex item’larda
position: relativedestekleniyor - Flex item’ın
z-indexdeğeri her zaman stacking context oluşturuyor - Flex item ve flex container’a doğru intrinsic size uygulanıyor
- Flex item’larda
- Çift yönlü metin desteği üzerinde çalışmalar sürüyor
- Fragment tree mimarisi değişiklikleri ve
writing-modearayüzü çalışmaları buna dahil unicode-bidiözelliği vedirözelliği kısmen destekleniyordir=autodeğeri henüz desteklenmiyor
- Fragment tree mimarisi değişiklikleri ve
servoshell tarayıcısı ve Windows kalitesi
- Servo-the-browser içine yeni bir araç çubuğu ve sekmeli gezinme eklendi
- Yeni sekme sayfası, Servo embedder’larının custom protocol handler kaydedebilmesini sağlayan yeni bir API kullanıyor
- Windows’ta çalışma kalitesi de birden fazla alanda iyileştirildi
- Klavye gezintisi düzeltildi
--outputiçin PNG çıktısı davranışı düzeltildi- Font ve GPU ile ilgili hatalar giderildi
- Windows ile ilgili düzeltmeler; servo.org ve duckduckgo.com’da gliflerin yanlış hizalanması ve renklerin hatalı görünmesi, wikipedia.org’da görsellerin bozulması sorunlarıyla bağlantılı
Geliştirici araçları ve geliştirici iş akışı
- devtools desteği, staj projesinin son ayındaki çalışmaların ardından genişletildi
- Servo HTML tree desteği kazandı
- Styles ve Computed panellerini destekliyor
- macOS’ta derlemenin hemen ardından servoshell’i çalıştırma süreci birkaç saniye daha hızlandı
- CI’da mevcut tidy check’ten ayrı olarak özel bir linting job içinde clippy çalıştırılıyor
- Bağışlar sayesinde Windows derlemeleri için yeni bir CI runner’ı eklendi ve Windows-only build time %70 azaldı
- Linux derlemeleri için yeni bir runner da yakında eklenecek; WPT try build’lerinin daha hızlı olması bekleniyor
- GitHub issue incelemesi için triage meeting’ler devam ediyor; bir sonraki Servo issue triage meeting’i 2 Eylül 10:00 UTC tarihinde yapılacak
- Ayrıntılar project#99 içinde yer alıyor
Motor kararlılığı iyileştirmeleri
- Ağustos ayında gerçek web sitelerinde ortaya çıkan çok sayıda çökme hatası düzeltildi
- Başlıca düzeltmeler render etme, reflow ve HTML parser davranışlarını kapsıyor
- HTML spec üzerinde table yakınında float render edilirken oluşan çökme
- w3schools.com’da gereksiz açık reflow nedeniyle oluşan çökme
- HTML parser’ın re-entrant hale getirilmesiyle kilonova.ro, tweakers.net gibi çeşitli sitelerdeki çökmelerin düzeltilmesi
- Bunun dışında platform, API ve parse yollarında oluşan çökmeler azaltıldı
- macOS’ta WebGL kullanırken pencere boyutu değiştirildiğinde çökme
- Çok uzun grapheme cluster metin render edilirken çökme
- Belirli bir fontta tab karakteri render edilirken çökme
window.stop()çağrısından sonra parser çökmesi- Bazı değerler
console.log()içine geçirildiğinde çökme - Bazı
<img srcset>değerleri parse edilirken çökme - Bazı HTTP header değerleri parse edilirken çökme
- Belirli durumlarda
window.openerayarlanırken çökme - Belgeden iframe kaldırılırken çökme
- Desteklenmeyen seçeneklerle
new AudioContext()çağrıldığında çökme - Servo kapanırken
WRSceneBuilderiçinde ara sıra oluşan çökme
- SpiderMonkey GC’de oluşan çeşitli BorrowError çökmeleri düzeltildi
- Bu tür hataları statik analizle önlemek için çalışmalar sürüyor
- Gezinme sırasında DOM Window nesneleri artık leak olmuyor
- Unix’te servoshell, panic durumunda anormal şekilde sonlanıyor; böylece web test’i sonucu doğru biçimde “CRASH” olarak kaydedebiliyor
Bağış durumu
- Servo, tekrarlayan bağışlardan şu anda aylık 3.077 dolar alıyor; bu, Temmuz’a göre %4,1 artış anlamına geliyor
- Buna LFX üzerinden yapılan 12 bağış dahil, ancak Servo yakında LFX bağışlarını kabul etmeyi durduracak
- Tekrarlayan bağışların GitHub Sponsors veya Open Collective üzerine taşınması gerekiyor
- Servo ayrıca thanks.dev üzerinde de kayıtlı; Servo’ya bağımlı 3 GitHub organizasyonu halihazırda sponsor oluyor
url,html5ever,selectors,cssparsergibi Servo kütüphanelerini kullanıyorsanız thanks.dev üzerinden topluluğa katkıda bulunabilirsiniz- Fonların kullanımı Technical Steering Committee tarafından şeffaf biçimde kararlaştırılıyor; ayrıntılar Sponsorship page içinde yer alıyor
1 yorum
Hacker News yorumları
Aldığı destek miktarının çok düşük olmasına şaşırdım. Acaba yalnızca büyük kuruluşlar dışındaki üçüncü taraf bireysel destekler mi sayıldı?
Web tarayıcısının chrom(ium)e üzerinden Google'ın hakimiyetine girdiğini yüksek sesle söyleyen bu kadar çok insan varken, daha fazla birey ya da şirketin bir rakibin daha hızlı ortaya çıkmasına ilgi göstereceğini sanırdım
Sıfırdan yeni bir motorla tamamen yeni bir tarayıcı yapmanın gerçekçi olmadığına dair bir algı da var, bu yüzden "neden destekleyeyim ki" havası oluşmuş olabilir. Neyse ki Ladybird bunu değiştirmiş olabilir
Ve böyle parası olan bazı kuruluşlar çoktan vazgeçti. Birkaç yıl önce Edge'i Chromium'a geçiren Microsoft gibi. Ayrıca birçok kişi, Chromium'a yerleşik alternatif olan Firefox'a bağış yapmayı daha çok tercih edebilir; ama pratikte Firefox geliştirmesine özel bağış yapmak da epey zor
Buradaki insanların çoğu web'in berbat halinden şikayet ediyor ama pratikte hiçbir şey yapmıyor gibi görünüyor
Hadi güçlü rakamlar gösterelim
HN topluluğuysa bunu bir gün içinde rahatlıkla 100 bin doların üzerine çıkarabilir. Gerçekten umut vadeden yeni bir tarayıcı ortaya çıktı, hadi yapalım
Servo'nun hâlâ yaşıyor olması ilginç. Destekliyorum
Yine de alternatif tarayıcılar ve motorlar geliştirmeye yönelik ciddi çabaların olması bence çok iyi. Ladybird tarayıcısı olgun bir ürüne çok daha uzak, ama varlığı bile sevindirici bir proje
Son değişiklikleri çekip yeni sekmelere bakarken RTL desteğinin gelmiş olduğunu görünce şaşırdım. Birkaç hafta önce yoktu
Birleştirilen PR burada: https://github.com/servo/servo/pull/33148
Servo terk edilmemiş miydi?