1 poin oleh GN⁺ 2024-09-01 | 1 komentar | Bagikan ke WhatsApp
  • Update Servo Agustus 2024 mencakup banyak hal, mulai dari fitur web engine hingga browser servoshell, kualitas Windows, developer tools, dan stabilitas CI
  • Build Nightly menambahkan HTMLDialogElement.show(), rendering input <textarea>, border-image, structuredClone(), crypto.randomUUID(), pemutaran WAV, Web Audio IIRFilterNode, navigasi cross-origin redirect, dan lainnya
  • Komponen inti naik ke SpiderMonkey 128, WebRender 0.65, wgpu 22.0, dan Rust 1.80.1; WebXR dan flexbox kini aktif secara default
  • servoshell mendapatkan penjelajahan bertab serta toolbar dan halaman tab baru; di Windows, navigasi keyboard, output PNG, serta masalah terkait font dan GPU diperbaiki
  • Dengan CI runner baru, waktu build khusus Windows berkurang 70%, dan beberapa crash di situs web nyata serta BorrowError terkait GC SpiderMonkey juga diperbaiki

Penambahan fitur platform web

  • Beberapa web API dan fitur CSS masuk secara bertahap ke build nightly Servo
    • 2024-07-27: dukungan dasar show() pada HTMLDialogElement
    • 2024-07-29: atribut type pada HTMLFieldSetElement
    • 2024-07-31: rendering teks yang dimasukkan ke <textarea>
    • 2024-07-31: properti CSS border-image
    • 2024-08-02: source CSP unsafe-eval, wasm-unsafe-eval
    • 2024-08-04: pemutaran file audio WAV
    • 2024-08-09: API structuredClone()
    • 2024-08-12: IIRFilterNode di Web Audio
    • 2024-08-13: navigasi cross-origin redirect
    • 2024-08-23: API crypto.randomUUID()
    • 2024-08-29: properti CSS clip-path
      • Nilai path(), polygon(), shape(), url() dikecualikan

Perubahan komponen engine dan perilaku default

  • Servo meningkatkan komponen dependensi utama ke versi terbaru
    • SpiderMonkey 128

    • WebRender 0.65

    • wgpu 22.0

      • Rust 1.80.1
      • WebXR dan flexbox aktif secara default
      • Web API yang mengembalikan Promise kini melakukan reject Promise dengan benar saat gagal, alih-alih melempar exception

Peningkatan WebXR dan flexbox

  • WebXR API merombak beberapa interface dan fitur input seiring aktivasi default
    • Dukungan Gamepad ditambahkan
    • Ada update terkait hand input, XRBoundedReferenceSpace, XRFrame, XRInputSource, XRPose, XRSession, XRTargetRayMode, XRView, XRWebGLLayer
    • makeXRCompatible() kini dapat dipanggil tidak hanya dari WebGLRenderingContext, tetapi juga dari WebGL2RenderingContext
  • flexbox diperkuat dengan fitur layout yang sering digunakan
    • Properti gap
    • align-content: stretch
    • Nilai start dan end untuk align-items, align-self
    • Dukungan dasar untuk flex-direction: column, column-reverse
  • Penempatan dan perhitungan ukuran flex item juga menjadi lebih akurat
    • position: relative didukung pada flex item
    • z-index pada flex item selalu membuat stacking context
    • intrinsic size yang benar diterapkan pada flex item dan flex container
  • Pekerjaan dukungan teks dua arah sedang berlangsung
    • Mencakup perubahan arsitektur fragment tree dan pekerjaan pada interface writing-mode
    • Properti unicode-bidi dan atribut dir didukung sebagian
    • Nilai dir=auto belum didukung

Browser servoshell dan kualitas Windows

  • Servo-the-browser menambahkan toolbar baru dan penjelajahan bertab
  • Halaman tab baru menggunakan API baru yang memungkinkan embedder Servo mendaftarkan custom protocol handler
  • Kualitas eksekusi di Windows juga ditingkatkan di beberapa area
    • Navigasi keyboard diperbaiki
    • Perilaku output PNG dari --output diperbaiki
    • Bug terkait font dan GPU diperbaiki
  • Perbaikan terkait Windows berhubungan dengan masalah glyph yang salah sejajar dan warna yang salah di servo.org dan duckduckgo.com, serta masalah gambar rusak di wikipedia.org

Developer tools dan workflow developer

  • Dukungan devtools bertambah setelah pekerjaan bulan terakhir proyek magang
    • Servo mendukung HTML tree
    • Panel Styles dan Computed didukung
  • Di macOS, proses menjalankan servoshell tepat setelah build menjadi beberapa detik lebih cepat
  • Di CI, clippy dijalankan dalam job linting khusus yang terpisah dari tidy check yang sudah ada
  • Dengan donasi, CI runner baru untuk build Windows ditambahkan, dan waktu build khusus Windows berkurang 70%
  • Runner baru untuk build Linux juga akan segera ditambahkan, dan WPT try build diperkirakan akan menjadi lebih cepat
  • Triage meeting untuk menyelidiki GitHub issue sedang berlangsung, dan Servo issue triage meeting berikutnya akan diadakan pada 2 September pukul 10:00 UTC

Peningkatan stabilitas engine

  • Pada Agustus, banyak bug crash yang terjadi di situs web nyata diperbaiki
  • Contoh perbaikan utama mencakup rendering, reflow, dan perilaku HTML parser
    • Crash saat rendering float di dekat table dalam HTML spec
    • Crash di w3schools.com akibat explicit reflow yang tidak perlu
    • Membuat HTML parser re-entrant untuk memperbaiki crash di beberapa situs seperti kilonova.ro dan tweakers.net
  • Selain itu, crash di jalur platform, API, dan parsing juga berkurang
    • Crash saat mengubah ukuran jendela ketika menggunakan WebGL di macOS
    • Crash saat rendering teks dengan grapheme cluster yang sangat panjang
    • Crash saat rendering karakter tab dari font tertentu
    • Crash parser setelah pemanggilan window.stop()
    • Crash saat meneruskan nilai tertentu ke console.log()
    • Crash saat parsing beberapa nilai <img srcset>
    • Crash saat parsing beberapa nilai HTTP header
    • Crash saat mengatur window.opener dalam situasi tertentu
    • Crash saat menghapus iframe dari dokumen
    • Crash saat memanggil new AudioContext() dengan opsi yang tidak didukung
    • Crash intermiten di WRSceneBuilder saat Servo ditutup
  • Beberapa crash BorrowError yang terjadi di GC SpiderMonkey diperbaiki
  • Pekerjaan untuk mencegah bug jenis ini melalui analisis statis sedang berlangsung
  • Objek DOM Window tidak lagi leak saat navigasi
  • Di Unix, servoshell keluar secara abnormal saat panic, sehingga web test dapat mencatat hasil sebagai “CRASH” dengan benar

Status donasi

  • Servo saat ini menerima 3.077 dolar AS per bulan dari donasi berulang, naik 4,1% dibandingkan Juli
  • Ini mencakup donasi dari 12 orang melalui LFX, tetapi Servo akan segera berhenti menerima donasi LFX
  • Donasi berulang perlu dipindahkan ke GitHub Sponsors atau Open Collective
  • Servo juga terdaftar di thanks.dev, dan 3 organisasi GitHub yang bergantung pada Servo sudah menjadi sponsor
  • Jika menggunakan library Servo seperti url, html5ever, selectors, cssparser, Anda dapat berkontribusi kepada komunitas melalui thanks.dev
  • Penggunaan dana diputuskan secara transparan oleh Technical Steering Committee, dan detailnya ada di Sponsorship page

1 komentar

 
GN⁺ 2024-09-01
Komentar Hacker News
  • Terkejut karena jumlah sponsor yang diterima terlalu kecil. Penasaran apakah yang dihitung hanya sponsor individu pihak ketiga, tidak termasuk organisasi besar
    Melihat banyak orang lantang mengatakan bahwa browser web telah dikuasai Google lewat chrom(ium)e, kupikir lebih banyak individu atau perusahaan akan tertarik membantu agar pesaing bisa muncul lebih cepat

    • Mungkin ada semacam tragedi milik bersama, jadi tidak ada yang merasa dirinya harus mendanai hal seperti ini
      Mungkin juga ada anggapan bahwa membuat browser yang benar-benar baru dengan mesin baru dari nol itu tidak realistis, jadi muncul suasana “buat apa didanai.” Untungnya, mungkin Ladybird telah mengubah bagian ini
    • Kurasa cukup banyak dari orang-orang yang bersuara keras itu bukan orang yang punya banyak uang. Mungkin juga bukan organisasi yang punya dana sebesar itu
      Dan sebagian organisasi yang memang punya uang seperti itu sudah menyerah. Microsoft, yang beberapa tahun lalu mengubah Edge menjadi Chromium, adalah contohnya. Selain itu, banyak orang mungkin lebih memilih berdonasi ke Firefox, yang merupakan alternatif mapan terhadap Chromium, tetapi sebenarnya cukup sulit untuk berdonasi secara khusus untuk pengembangan Firefox
    • Tong kosong nyaring bunyinya. Bersuara tentang suatu topik itu murah, tetapi menyumbangkan waktu atau uang untuk perjuangan itu tidak
    • Agak sedih. Bahkan di HN saja, kalau orang-orang berdonasi 5 dolar per bulan, targetnya mungkin bisa tercapai
      Sepertinya kebanyakan orang di sini hanya mengeluhkan buruknya keadaan web dan sebenarnya tidak melakukan apa-apa
  • Ayo tunjukkan angka yang kuat
    Kalau komunitas HN bergerak, melewati 100 ribu dolar dalam sehari pasti mudah. Sekarang ada browser baru yang benar-benar layak dinantikan, jadi ayo wujudkan

    • Akan bagus kalau dukungan itu benar-benar ditunjukkan lewat donasi. Kalau semua pengguna aktif HN masing-masing menyumbang 10 dolar saja, skalanya akan sangat besar
  • Menarik melihat Servo masih tetap hidup. Semangat

    • Setuju. Masih panjang jalan yang harus ditempuh untuk benar-benar menjadi alternatif nyata bagi browser dan mesin lain
      Meski begitu, menurutku tetap bagus ada upaya serius untuk mengembangkan browser dan mesin alternatif. Browser Ladybird masih jauh lebih lama lagi menuju produk yang matang, tetapi sebagai proyek, keberadaannya sendiri juga menyenangkan untuk dilihat
    • Jangan cuma menyemangati, donasi juga :)
  • Setelah menarik perubahan terbaru dan membuka tab baru, aku kaget melihat dukungan RTL sudah ada. Beberapa minggu lalu ini belum didukung
    PR yang digabung ada di sini: https://github.com/servo/servo/pull/33148

  • Bukankah Servo sudah ditinggalkan?

    • Mozilla memang meninggalkannya, tetapi menurut Wikipedia, proyek ini diambil alih oleh Linux Foundation