Interoperability and Compatibility
No interoperability risks, the new memory-safe implementation is expected and shown to be functionally equivalent to the C++ based implementation. No functional change. For performance considerations, see ergonomics section.
Two or three compatibility issues were identified during the experiment phase and have been fixed.
In the XML parsing Rust crate in upstream, as set of XML conformance tests are run with a good pass rate of test suites, remaining test failures in upstream were investigated and showed that the failures pertain to functionality that we do not use (DTD parsing, for example), or are because of conflicting specifications.
A very low risk of previously unforeseen compatibility issues remains, but I consider it unlikely.
SignalsNo browser vendor or developers signals were solicited as there is no functional change or introduction of new API.
Ergonomics
A 1% @ stable experiment was performed. Analysis of the Blink.XMLParsing.NonXsltXmlParsingTime.Combined histogram confirms an isolated parser performance regression. However, guard rail metrics are unaffected on all relevant platforms. XML parsing becomes slower, more evenly distributed across percentiles on Android between a regression of 36% (50th percentile) and 54% (at the 99th percentile), whereas on Windows, the regression is vastly more pronounced for longer parsing times, 23% at the 25th percentile, to 74% at the 95th percentile, to 209% at the 99th percentile. Still, in practice in absolute numbers we are talking about parse times reaching only tens of milliseconds on Windows and Android.
Activation
No change in behavior means no particular activation risks.
Security
This change's main intention is to improve security. Almost all XML parsing we perform will run through the Rust memory-safe parser. When XSLT deprecation concludes, we can deactivate libxml2 XML parsing and move to Rust XML parsing completely.
WebView application risks
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
No information provided