- Servo 0.3.0 मई में merge किए गए 391 commits के साथ आया release है, जिसमें web platform, embedding API, performance, stability और security fixes एक साथ शामिल हैं
- web platform में
font-variant-*, fast start के बिना mp4 `` playback, form encoding, और DOM API additions से real sites compatibility बढ़ी है - security के लिहाज से JS runtime को SpiderMonkey 140.10.1 पर upgrade कर memory safety bugs ठीक किए गए हैं, और ये CVE-2026-7322·CVE-2026-7323·MFSA 2026-36 से जुड़े हैं
- users और developers servoshell के
--host-file=,--userscripts=options और Firefox DevTools Debugger के “Ignore source” blackboxing का उपयोग कर सकते हैं - embedders को Rust 1.88.0 या उससे ऊपर की requirement और SiteDataManager·Preferences·DiagnosticsLogging के breaking changes को अपनाना होगा; performance improvements layout traversal घटाने और thread pool consolidation पर केंद्रित हैं
Servo 0.3.0 में शामिल मई के बदलाव
- Servo 0.3.0 में मई में merge हुए बदलाव शामिल हैं, और कुल 391 commits हैं
- नए web platform features fonts, media, forms और layout compatibility में जोड़े गए हैं
- CSS font features:
font-kerning: none,font-variant-east-asian,font-variant-ligatures,font-variant-numeric,font-variant-position - Media और forms: fast start के बिना mp4 files के
support,, `` - Layout: `` layout
- CSS font features:
- DOM API भी कई standard areas में बढ़ा है
onslotchangeproperty ShadowRoot में जोड़ी गईscreenLeft,screenTopWindow में जोड़े गएnew Blob()में{endings: "native"}support करता हैnew PerformanceMark()जोड़ा गयाparseHTML()Document में जोड़ा गयाreadAsBinaryString()FileReader में जोड़ा गयाperformance.measure()redirectStart,redirectEnd,secureConnectionStart,responseEndmark values support करता है
- Windows, FreeBSD, NixOS या Nix-based environments की build issues भी ठीक की गई हैं
Security: SpiderMonkey memory safety fixes
- Servo के JS runtime SpiderMonkey 140.10.0 में कई memory safety bugs थे
- Servo 0.3.0 ने SpiderMonkey 140.10.1 update के जरिए इन issues को ठीक किया
- details CVE-2026-7322, CVE-2026-7323, MFSA 2026-36 में देखी जा सकती हैं
जारी web features
document.execCommand()implementation rich text editing support के लिए जारी है, और--pref dom_exec_command_enabledके तहत चलता है- इस release में
backColor,foreColor,createLink,unlink,superscript,subscript,removeFormatcommands support किए गए हैं insertParagraphcommand आंशिक रूप से support है
- इस release में
- Sanitizer API पर काम
--pref dom_sanitizer_enabledके तहत जारी है- servoshell के experimental mode में enabled है
SanitizerकेsetComments(),setDataAttributes(),allowProcessingInstruction(),removeProcessingInstruction(),removeUnsafe()जोड़े गए हैं
- IndexedDB
--pref dom_indexeddb_enabledके तहत बेहतर हो रहा है, औरIDBTransaction.abort()की standards conformance बढ़ी है - ऊपर के features servoshell के experimental mode में enabled हैं
- accessibility support में name from contents algorithm और accessibility tree को incrementally build करने वाले changes शामिल हैं
- incremental accessibility tree building real web content performance के लिए महत्वपूर्ण है
- worker-related implementation भी शुरू हुआ है
SharedWorker--pref dom_sharedworker_enabledके तहतnew SharedWorker()support करता हैServiceWorkerमें--pref dom_serviceworker_enabledके तहत API के कुछ हिस्से जोड़े गए हैं
Embedding API changes और migration points
- Servo का minimum supported Rust version यानी MSRV 1.86.0 से बढ़कर 1.88.0 या उससे ऊपर हो गया है
- MSRV पर compile tests किए जाते हैं, लेकिन ज्यादातर tests Rust 1.95.0 से किए जाते हैं
- SiteDataManager के cookie methods में breaking changes हैं
clear_cookies,clear_session_cookies,set_cookie_for_urlअब अतिरिक्तcallbackargument लेते हैं, जिससे async calls संभव होती हैं- sync calls बनाए रखने के लिए
callbackमेंNonepass करें set_cookie_for_url_asyncहटाया गया है, और इसेset_cookie_for_url(Some(Box::new(callback)))रूप में बदलना होगा
- Preferences API में thread pool setting names साफ किए गए हैं
threadpools_image_cache_workers_max,threadpools_indexeddb_workers_max,threadpools_webstorage_workers_maxको unifiedthread_pool_workers_maxसे replace किया गया हैthreadpools_fallback_worker_numका नाम बदलकरthread_pool_fallback_workersकिया गया हैthreadpools_async_runtime_workers_maxका नाम बदलकरthread_pool_async_runtime_workers_maxकिया गया हैthreadpools_webrender_workers_maxका नाम बदलकरthread_pool_webrender_workers_maxकिया गया है
- DiagnosticsLogging API भी reworked हुई है
toggle_optionसे options set करें औरis_enabledसे enabled status check करें- हर option नए type
DiagnosticsLoggingOptionका variant है DiagnosticsLoggingके option-specificpubfields हटाए गए हैं, और field write/read को क्रमशःtoggle_option,is_enabledसे बदलना होगाextend_from_stringअबhelpoption नहीं लेता, और उसका implementation servoshell में move किया गया है
User और developer features
- servoshell में 2 नए options जोड़े गए हैं
--host-file=hosts file path set करता है, औरHOST_FILEenvironment variable का alternative है--userscripts=सभी documents में चलाने के लिए user scripts directory specify करता है
- Firefox DevTools Debugger tab में script blackboxing संभव हो गया है
- “Ignore source” click करने पर उस script के अंदर breakpoints hit नहीं होंगे
- debugger में execution step-by-step आगे बढ़ाने पर भी उस script के अंदर नहीं रुकना चाहिए
- Scopes panel की accuracy भी improved हुई है
- Servo के अपने developers project policy के अनुसार large language models या generative AI tools के output को contributions में इस्तेमाल नहीं कर सकते
- इसे enforce करने के लिए AI agent को coauthor के रूप में शामिल करने वाली contributions reject करने वाला CI check जोड़ा गया है
--features vellobuild issue भी ठीक किया गया है
Web platform की detailed improvements
- कई HTML elements की default display बेहतर की गई है
- targets हैं
,,,,,,,,,,,, ``
- targets हैं
- CryptoKey serializable हो गया है, इसलिए उसे
structuredClone()औरpostMessage()में इस्तेमाल किया जा सकता है - DOM के कई हिस्सों में JS error messages बेहतर किए गए हैं
- standards conformance improvements में ये areas शामिल हैं
- form submission, tab navigation,
javascript:URL navigation Refreshheader और ``line-break: anywhere,Location.assign()crypto.subtle.deriveBits(),getComputedStyle(),performance.measure()FileReader.readAsDataURL(),Blob.stream()SubtleCryptoका ML-KEM
- form submission, tab navigation,
- WebGPU side पर
GPUSupportedLimits,GPUTexture,GPUDevice.createBindGroup()और अन्य WebGPU features बेहतर किए गए हैं - bug fixes में `` और
Content-Security-Policy,:active,:hover,align-items,border-image-outset,overflow: scrollकीpadding,pointerupevent,slotchangeevent, dynamicimport(),CanvasRenderingContext2D.clip()आदि शामिल हैं
Performance improvements: layout traversal में कमी और lazy processing
about:memoryimprovement के लिए untracked allocations ढूंढने वाला tool बनाया गया- image cache, web storage और IndexedDB के thread pools consolidate किए गए, जिससे प्रति CPU जरूरी OS threads की संख्या घटी
- layout optimization fragment tree traversal और caching cost घटाने पर केंद्रित है
- fragment tree ज्यादातर immutable हो गया है, जिससे कई accesses में
AtomicRefCellborrow की runtime cost खत्म हुई - containing block calculation और stacking context tree construction ज्यादातर cases में single fragment tree traversal में combine हो गए
- scrollable overflow calculation lazy·incremental तरीके में बदल गया, जिससे पूरे fragment tree traversal को effectively हटाया गया
- reflow के बीच fragments, shaping results और अन्य layout results की caching बेहतर हुई
- incremental fragment layout की precision बढ़ी
- text shaping की memory usage घटी
- fragment tree ज्यादातर immutable हो गया है, जिससे कई accesses में
- DOM attributes processing भी efficient हुआ है
- script जब attribute values लिखता है, तब दोबारा read होने तक serialization avoid करता है, और inline style की frequent writes अधिकतम 25% तेज हुईं
- HTML parsing या internal attribute read के समय script को वास्तव में जरूरत पड़ने तक
Attrnode creation से बचता है, जिससे memory usage और garbage collection की संभावना घटती है
tree से attach होते ही पूरे DOM tree को traverse करने वाला behavior हटाया गया, जिसका असर बहुत सारेtags वाले document parsing में महसूस होता है- stylesheet lock
parking_lot::RwLockसे अधिक efficient AtomicRefCell इस्तेमाल करता है - OpenHarmony में real refresh driver जोड़ा गया, जिससे idle CPU usage घटी, और font list को disk पर cache करके startup speed बढ़ी
- build time improvement के लिए विशाल script crate से और code अलग किया गया, और dependency tree size भी घटाया गया
Stability fixes और type system का उपयोग
- कई crashes और hangs ठीक किए गए
content,MediaStream,Element.attributes.item(),CSSKeyframesRule.appendRule(),FocusEvent.initEvent(),Window.stop()document.execCommand("delete")--debug-mozjsbuild- DevTools में paused state के दौरान script evaluation
- DevTools में कुछ JS values का preview
- layout में zero-width space shaping
- servoshell के experimental mode को runtime पर toggle करने की स्थिति
- Rust type system का उपयोग करके कुछ dynamic borrow failures को असंभव बनाने वाला long-term work जारी है
Contributors और sponsorship status
- 9 लोगों ने Servo में अपना पहला patch merge किया
- AbdAlRahman Gad, Onyeka Obi, Steve Sharon Sam, avis137, Xabier Rodríguez, June, Matt Van Horn, nicole, panxt8
- नए contributors के लिए उपयुक्त issues की list curated list के रूप में उपलब्ध है
- recurring sponsorship 7659 dollars per month है, जो April की तुलना में 4.2% बढ़ी है
- sponsorship funds CI·benchmarking servers, Outreachy interns और maintainer work support में इस्तेमाल होते हैं
- thanks.dev पर Servo पर depend करने वाले 35 GitHub users sponsorship दे रहे हैं, April से 2 ज्यादा
- sponsorship fund usage Technical Steering Committee की public funding request process के जरिए तय होता है, और active proposals servo/project#187 में tracked हैं
1 टिप्पणियां
Lobste.rs की राय
जो चीज़ें नज़र आईं, वे बस इतनी हैं कि bold links bold नहीं दिखते, font थोड़ा अजीब लगता है (Fira Sans जैसा), login page के input fields बहुत पतले हैं, और इस text field पर click करने पर cursor click की गई जगह से अलग जगह पर रखा जाता है
comments में कहा गया था कि JavaScript engine Firefox जैसा ही है, इसलिए कुल मिलाकर यह उम्मीद के मुताबिक काम करता दिखता है
सुधार: experimental settings चालू करने पर bold text की समस्या हल हो गई
इसके प्रमुख लक्ष्यों में से एक Microsoft HoloLens था, लेकिन आखिरकार बड़े project के रूप में इसे बंद कर दिया गया, और इसके कुछ components Firefox में शामिल कर लिए गए
उदाहरण के लिए CSS engine उनमें से एक था, जिसे multi-threaded प्रकृति के कारण C++ में लिखना मुश्किल था
बाद में Igalia ने इसे अपने हाथ में लिया और नया governing body बन गया, और project को फिर से जीवित कर एक नया competitor बनाने की कोशिश कर रहा है
JavaScript engine Firefox जैसा ही है
उद्देश्य प्रमुख browser engines का एक alternative रखना है, खासकर Chrome engine Blink को ज़्यादा competition देना
बड़ी tech कंपनियों के प्रभाव से अलग web platform implementation होना भी महत्वपूर्ण है
Google के पास अभी बहुत ज़्यादा ताकत है, और Mozilla ने कई सालों तक लगभग सबसे खराब प्रदर्शन किया है
इसलिए कम से कम मैं हर महीने कुछ डॉलर support करता हूं