← Back to all briefs
Architecture55s read

Edge 151 Replaces C++ XML Parser with Rust: No More Memory Bugs in DOMParser

Microsoft Edge 151 swaps its legacy C++ XML parser for a Rust implementation, eliminating memory-corruption bugs in DOMParser and SVG parsing. Also ships CSS alpha() and Shadow DOM reference targets.

The DOMParser API, XHR's responseXML, and SVG document parsing in Edge have all run through the same C++ XML parser for years, and that code has been a reliable source of memory-safety CVEs. Edge 151 replaces it with a Rust implementation. You get identical behavior and performance, but an entire class of memory-corruption bugs disappears at the language level. XSLT still uses the C++ path, so if your app does XSL transforms, you are not fully off the old parser yet. For everyone else, this is a transparent swap.

The CSS alpha() function lands alongside it: alpha(from red / 0.5) gives you semi-transparent red without recomputing color values manually. More importantly, shadowrootreferencetarget closes a gap web component developers have been working around for years: a <label for="checkbox-id"> outside a custom element can now reach an <input> inside its shadow DOM. No more JavaScript bridge code just to wire up form labels or aria attributes across the shadow boundary.

The release also adds soft-navigation and interaction-contentful-paint performance entries for SPA monitoring, plus WheelEvent.momentum to tell inertial scroll apart from direct user input. The Rust parser is the headline here: memory safety moving from the code reviewer's checklist into the compiler.