Update Servo Bulan Ini: Penjelajahan Bertab, Peningkatan Windows, Developer Tools, dan Lainnya
(servo.org)- 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 AudioIIRFilterNode, 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()padaHTMLDialogElement - 2024-07-29: atribut
typepadaHTMLFieldSetElement - 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:
IIRFilterNodedi 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
- Nilai
- 2024-07-27: dukungan dasar
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 dariWebGLRenderingContext, tetapi juga dariWebGL2RenderingContext
- flexbox diperkuat dengan fitur layout yang sering digunakan
- Properti
gap align-content: stretch- Nilai
startdanenduntukalign-items,align-self - Dukungan dasar untuk
flex-direction: column,column-reverse
- Properti
- Penempatan dan perhitungan ukuran flex item juga menjadi lebih akurat
position: relativedidukung pada flex itemz-indexpada 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-bididan atributdirdidukung sebagian - Nilai
dir=autobelum didukung
- Mencakup perubahan arsitektur fragment tree dan pekerjaan pada interface
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
--outputdiperbaiki - 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
- Detailnya ada di project#99
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.openerdalam situasi tertentu - Crash saat menghapus iframe dari dokumen
- Crash saat memanggil
new AudioContext()dengan opsi yang tidak didukung - Crash intermiten di
WRSceneBuildersaat 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
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 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
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
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
Menarik melihat Servo masih tetap hidup. Semangat
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
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?