1 puan yazan GN⁺ 2023-11-11 | 1 yorum | WhatsApp'ta paylaş
  • Servo, Temmuz 2023'te aldığı NLnet hibesi ile, web teknolojilerini uygulamalara gömmek için hafif ve yüksek performanslı bir alternatif olarak temel yerleşim özelliklerini güçlendiriyor
  • İyileştirme kapsamı CSS float desteğinin tamamlanması, satır içi yerleşimde çok dilli desteğin genişletilmesi ve başlangıç düzeyinde <table> desteği eklenmesine odaklanıyor
  • CSS float çalışmaları 2023 ortasından beri sürüyor; ilgili WPT testlerinde ortalama geçme oranını %80'in üzerine çıkarmak hedefleniyor
  • Satır içi yerleşimde Latin dışı karakterlerin render edilmesi için gereken yazı tipi seçimi, sağdan sola yazılan karakterler ve mantıksal özellikler desteği eksik
  • Yeni yerleşim motorunda table desteğinin olmaması birçok web sayfasının görüntülenmesini bozduğu için, ilk pratik hedef Wikipedia table'larını render etmek oldu

NLnet hibesiyle güçlendirilen Servo alanları

  • Servo, Temmuz 2023'te aldığı NLnet hibesi ile yerleşimle ilgili çeşitli özellikleri iyileştiriyor
  • Ana hedefler üç başlıkta özetleniyor
    • Servo'nun float desteğini tamamlama
    • Satır içi yerleşimde daha fazla dili destekleme
    • Başlangıç düzeyinde <table> desteği ekleme

Yerleşim özelliklerine göre hedefler ve ilerleme durumu

  • Floats

    • Servo'nun float desteği 2023 ortasından beri geliştiriliyor
    • CSS float'ı tam uyumlu biçimde uyguladığını söylemek için hâlâ çözülmesi gereken sorunlar var
    • /css/CSS2/floats/ ve /css/CSS2/floats-clear/ için ortalama %80'in üzerinde WPT geçme oranı hedefleniyor
    • Sonuçlar WPT dashboard üzerinden takip edilebilir
    • Geçen hafta /css/CSS2/floats/ testleri %82,2 geçme oranıyla hedefi aştı
    • /css/CSS2/floats-clear/ şu anda %73,3 geçme oranıyla hedefe yaklaşıyor
  • Satır içi yerleşimde daha fazla dil

    • Servo'nun yerleşim motorunda, Latin alfabesi kullanmayan dilleri render etmek için gereken temel özellikler eksik
    • Güçlendirilecek alanlar arasında doğru yazı tipi seçimi, sağdan sola yazılan karakter desteği ve mantıksal özellikler bulunuyor
    • Hedef, Servo'nun daha çeşitli içerikleri gösterebilmesi için satır içi yerleşimin destek kapsamını genişletmek
  • Başlangıç düzeyinde <table> desteği

    • HTML table önemli ve yaygın kullanılan bir web özelliğidir
    • Servo'nun yeni yerleşim motoru henüz table desteklemediği için birçok web sayfası yerleşimi doğru görüntülenmiyor
    • Başlangıç düzeyindeki table desteğinin ilk hedefi, Wikipedia'da kullanılan table'ları render edebilmek
    • Her bir kilometre taşı ilerledikçe ve tamamlandıkça, sonraki blog yazılarında daha ayrıntılı ele alınacak

1 yorum

 
GN⁺ 2023-11-11
Hacker News yorumları
  • Servo için çok heyecanlıyım ve Mozilla’nın buna ilgi göstermemiş olmasına inanmak zor
    Güvenliği ve performansı yüksek bir motor fikri güzel, ama özellikle web motorunun bir bileşen olarak kullanılabilmesi hoşuma gidiyor
    Windows 9x döneminde IE’de ActiveX denetimleri vardı; bu sayede web motorunu her yere gömebiliyordunuz, KHTML de benzerdi, ama bugün ne Firefox ne de Chrome böyle bir kullanım alanıyla ilgileniyor gibi görünüyor
    Neyse ki Qt WebEngine var, ancak anladığım kadarıyla Chrome tarafı bu tür kullanım senaryolarını önemsemediği için ilişki biraz sorunlu
    Ayrıca Chrome, Google’ın ürünü ve deneyimime göre Google ürünlerinin kendine özgü bir dünyası var; derlemek ve entegre etmek zahmetli oluyor
    Bu yüzden güvenlik kaygılarını çözerken entegrasyon sancısını da azaltacak, kodun içine koyulabilecek pratik bir alternatifi gerçekten bekliyorum

    • “Mozilla’nın Servo’ya ilgi göstermemesi” ifadesi çok doğru görünmüyor
      Mozilla buna bir araştırma projesi olarak fon sağladı ve bunu tam anlamıyla piyasaya çıkaracak bir ürün haline getirmenin çok daha fazla para ve zaman gerektirdiğini fark edip maliyeti kısmaya karar vermesine daha yakın bir durum var
      Yine de o parayı, savundukları ahlak anlayışıyla bağdaşmayan biçimde yöneticilere vb. dağıtmış olmaları ayrı bir sorun
      Blog yazılarına bakılırsa Mozilla, Servo’dan alabileceği şeyleri Firefox’a entegre etti; yani projeden belli ölçüde değer elde etmiş oldular
      Birisi Mozilla’ya bol para ve sınırsız takvim verseydi Servo’yu tamamlayacaklarını düşünüyorum
    • CEF, WebKit ve WebView2 kullandım; bunlar içinde kolay gömülebilen çapraz platform seçeneği yalnızca CEF’ti
      Ama CEF popüler olur olmaz Google, CEF ve diğer gömülü tarayıcılarda Google oturum açmayı engellemek için ciddi kaynak harcadı[0]
      Bu yüzden CEF tabanlı tarayıcıyı bırakmak zorunda kaldım; bu tür iş uygulamalarından nefret ediyorum ama yapabileceğim bir şey yoktu
      Tarayıcım Google ürünlerinde oturum açamıyorsa yaygın kullanılması zor ve Google’ın tespit yöntemleriyle kedi-fare oyunu oynayacak zamanım da yok
      Gömülü tarayıcı bileşenlerinin herkesin tarayıcı yapabileceği kadar ana akım hale gelmesi için, büyük şirketlerin popüler olmaya başlayan gömülü tarayıcıları engellemesi sorunu önce ele alınmalı
      İdeal olarak Android olmayan, gömülebilir bir Gecko çıksa iyi olurdu; çünkü Firefox engellenemeyecek kadar büyük
      Daha önce de bununla ilgili çok konuşuldu ve pencere tanıtıcısını ele geçirerek çalışan bir kavram kanıtı da yaptım[1], ama para kazandırmıyor
      0 - https://developers.googleblog.com/2016/08/modernizing-oauth-...
      1 - https://github.com/cretz/ffembedpoc
    • Mozilla’nın Servo’ya ilgisi vardı
      Ne demek istediğini bilmiyorum ama WebRender ve Stylo dahil birkaç bileşeni Gecko’ya aktardılar
    • ActiveX meselesi çok anı canlandırdı
      Masaüstü arka planı başarısız olduğunda, masaüstünde tıklanabilir bağlantılar içeren bir ActiveX hata sayfası göründüğünü hatırlıyorum; gerçekten çok kafa karıştırıcıydı
    • WebKit hâlâ gömmek için iyi, ama Windows’ta derlemek dağınık ve uğraştırıcı
      macOS ve Linux’ta çok iyi çalışıyor
      Yine de daha fazla gömülebilir web motoruna ihtiyacımız var
      Gecko iyi, ancak XULRunner ile kalıcı biçimde tek vücut gibi bağlı olması ayak bağı oluyor
  • Igalia devraldıktan sonra Servo çalışmalarının sürmesini görmek güzel
    Yıllarca yalnızca asgari bakım yapıldığı için oluşan teknik borç çoktu, ama gerçekten ilerleme var gibi görünüyor
    Kişisel olarak modülerliğin güçlü biçimde öne itilmesini isterim
    Gömülebilirliğe odaklanan açık kaynak bir tarayıcı motorunun doldurabileceği bir boşluk var gibi duruyor ve insanların Lego blokları gibi karıştırıp yeni motorlar yapabileceği “kendin yap tarayıcı” kütüphanelerinin ortaya çıkması, web platformunun uzun vadeli sağlığına da büyük katkı sağlayabilir

    • Kesinlikle
      Servo gömülü bir Electron ya da Electron benzeri bir şey çıkarsa iyi sonuç verebilir
      Tauri bu boşluğu bir ölçüde zaten dolduruyor, ama bir şeyi gömmekten çok işletim sisteminin sunduğunu kullanıyor
      İkisinin ortasında bir seçenek olsa güzel olurdu
    • Gömülü motorlar, pratik kullanım senaryolarına giden çok daha hızlı bir yol da sunuyor
      Örneğin Sciter [1], DOM API’sinin yalnızca makul bir alt kümesini uygulamasına rağmen bir ölçüde başarılı oldu
      Genel internet gezintisi için çok uygun değil, ama bir UI kütüphanesi olarak kullanırsanız çalışmayan kısımlardan kaçınabilirsiniz
      1: https://sciter.com/
    • Tamamen tahmin ama, iPhone’un web motorlarını açmaya zorlanmasıyla birlikte mobil cihazlarda genel olarak kendi motorunu gömmek isteyen uygulamalar ortaya çıkabilir
    • Zaten bu yönde güçlü biçimde tasarlanmış durumda
      Bileşen modeli ve gömme katmanı bu yapının parçası
  • Bu hibenin kaynağının bir kısmı European Commission tarafından, NGI programı üzerinden sağlanıyor

  • Servo için gerçekten çok iyi haber
    NLNet Foundation son dönemde birçok harika projeyi destekliyor ve adını sık sık görüyorum

    • Benim projem https://www.oilshell.org/ de 2022’den beri NLnet desteği alıyor ve çok yardımcı oldu
      İlerletmek istediğim bazı meselelerde desteğe ihtiyacım vardı ve gerçekten de bunu sağladılar
      Biz ağırlıklı olarak Kuzey Amerika’dayız, ama fonun AB’den gelmesi çok ileri görüşlü bir destek örneği
  • Sıfırdan yapılan bir başka tarayıcı olarak Ladybird de bakmaya değer
    Daha da derme çatma bir indie grup tarafından geliştiriliyor: https://ladybird.dev/
    Açıkçası gerçekten gözü kara bir proje

    • Açıkçası Ladybird için beklentim Servo'dan daha yüksek
      Hâlâ çok genç bir proje olduğu düşünülürse şimdiden oldukça etkileyici
      Sadece ekran görüntülerine bakınca bile Servo'nun renderer'ı çok temel, yavaş ve hatalarla dolu görünüyor
    • Ladybird şaşırtıcı
      Hızlı ve her şeyi açık şekilde geliştiriyorlar; Ladybird ekibinin yaptığı iş gerçekten etkileyici
    • Ladybird gerçekten Serenity OS dışında da kullanılabilir mi?
    • C++ ile yazılmış bir başka tarayıcı motoruna neden ihtiyaç var?
  • Nedense Servo'nun zaten Firefox'a entegre edildiğini sanıyordum
    Rust'ta tüm tarayıcıyı ayağa kaldırmadan HTML'i görüntüye render etmenin bir yolu var mı?
    Çok fazla HTML ya da CSS desteğine gerek yok

    • CSS stil sistemi Stylo, Servo'da başladı ve şimdi Firefox'ta yer alıyor, ama benim anladığım kadarıyla ikisi epey ayrışmış durumda
      https://blog.nightly.mozilla.org/2017/07/25/stylo-is-ready-f...
    • WebRender ve Stylo, Servo'dan çıkıp Quantum Render ve Quantum CSS olarak entegre edildi
      Muhtemelen başka şeyler de vardır
    • Şu anda en yakın şey muhtemelen https://github.com/trimental/inlyne
      Ama iki fark var: rastgele HTML yerine yalnızca Markdown destekliyor ve görüntü yerine ekrana render ediyor
      Yine de iyi bir başlangıç noktası
      Bence şu anda Rust'ta web rendering'in önündeki temel darboğaz, daha iyi metin yerleşimi, özellikle de display: inline-block gibi metin içine metin dışı içerik yerleştirme desteği
      Bu uygulanırsa temel web sayfası rendering'i oldukça iyi yapılabilir gibi görünüyor
    • Tam motorun kendisi değil ama WebRender ve Stylo birkaç yıldır Firefox'ta bulunuyor
      Bunlar sırasıyla GPU tabanlı compositor ve CSS motoru
  • Servo, Rust ile yazılmış bir web rendering motoru ve WebGL ile WebGPU'yu destekliyor; masaüstü, mobil ve gömülü uygulamalara uyarlanabiliyor
    Gömülebilir, bağımsız; bellek güvenliği, modülerlik ve paralellik sunan bir web rendering motoru

  • Karşılaştırma için kullanılan Legacy Layout nedir?
    Servo'nun önceki iterasyonu mu?
    Bazı kodların hâlâ iki tarafta da kullanıldığı görülüyor ve eğriler bazen birlikte yükselip düşüyor, ama bu her zaman olmuyor

    • Legacy Layout, başlangıçtaki sistem olan Layout 2013'ü ifade ediyor
      Daha sonra CSS spesifikasyonunun bazı kısımlarını uygularken Layout 2013 mimarisine temiz biçimde uymayan sorunları çözmek için ikinci sistem olan Layout 2020 başlatıldı
      Bu yıl Servo vikisinde, Igalia ekibinin yazdığı; iki sistem arasındaki farkları ve neden Layout 2020'ye geçmeye karar verildiğini özetleyen iyi bir rapor var
      https://github.com/servo/servo/wiki/Servo-Layout-Engines-Rep...