1 puan yazan GN⁺ 2024-09-01 | 1 yorum | WhatsApp'ta paylaş
  • 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 Audio IIRFilterNode, 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: HTMLDialogElement için temel show() desteği
    • 2024-07-29: HTMLFieldSetElement için type ö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ği
      • path(), polygon(), shape(), url() değerleri hariç

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, XRWebGLLayer ile ilgili güncellemeler yapıldı
    • makeXRCompatible() artık yalnızca WebGLRenderingContext üzerinde değil, WebGL2RenderingContext üzerinde de çağrılabiliyor
  • flexbox’a sık kullanılan layout özellikleri eklendi
    • gap özelliği
    • align-content: stretch
    • align-items ve align-self için start, end değerleri
    • flex-direction: column, column-reverse temel desteği
  • Flex item’ların yerleşimi ve boyut hesaplamaları da daha doğru hale getirildi
    • Flex item’larda position: relative destekleniyor
    • Flex item’ın z-index değeri her zaman stacking context oluşturuyor
    • Flex item ve flex container’a doğru intrinsic size uygulanıyor
  • Çift yönlü metin desteği üzerinde çalışmalar sürüyor
    • Fragment tree mimarisi değişiklikleri ve writing-mode arayüzü çalışmaları buna dahil
    • unicode-bidi özelliği ve dir özelliği kısmen destekleniyor
    • dir=auto değeri henüz desteklenmiyor

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
    • --output iç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

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.opener ayarlanırken çökme
    • Belgeden iframe kaldırılırken çökme
    • Desteklenmeyen seçeneklerle new AudioContext() çağrıldığında çökme
    • Servo kapanırken WRSceneBuilder iç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, cssparser gibi 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

 
GN⁺ 2024-09-01
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

    • Muhtemelen ortak malların trajedisi gibi bir durum var; kimse bunun desteklenmesi gereken bir iş olduğunu kendi sorumluluğu olarak görmüyor gibi.
      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
    • Sesini en çok çıkaranların önemli bir kısmının büyük parası olan kişiler olduğunu sanmıyorum. Böyle bir paraya sahip kuruluşlar da olmayabilir.
      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
    • Boş teneke çok ses çıkarır. Bir konu hakkında konuşmak ucuzdur, ama o dava için zaman ya da para ortaya koymak öyle değil
    • Biraz üzücü. Sadece HN bile ayda 5 dolar bağışlasa muhtemelen hedef tutara ulaşılabilirdi
      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

    • Bunu gerçekten destek ve bağışla göstermek harika olur. HN'deki tüm aktif kullanıcılar sadece 10'ar dolar bağışlasa bile muazzam bir ölçek oluşur
  • Servo'nun hâlâ yaşıyor olması ilginç. Destekliyorum

    • Katılıyorum. Diğer tarayıcılar ve motorlara gerçek bir alternatif olması için önünde hâlâ uzun bir yol var.
      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
    • Sadece desteklemeyelim, bağış da yapalım :)
  • 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?

    • Mozilla bıraktı ama Wikipedia'ya göre Linux Foundation devraldı