Hello everyone,
The status at the end of the last years was that we supported MiraclePtr in all non-Renderer processes on Windows, Android, WebView, ChromeOS, Lacros, macOS and Linux. We targeted class/struct fields that are pointers (by rewriting them to raw_ptr) and references (raw_ref) in the Chromium and PDFium code.
We wanted to give you an update on our MiraclePtr expansion efforts over the last few months:
- To protect WebGPU, we rewrote third_party/dawn to use raw_ptr&raw_ref. third_party/skia is next in line.
- The clang rewriter supports pointers in most templated collections. We rewrote std::vector, std::set, std::map (value only), std::list, std::unordered_set, base::flat_set, std::queue (and more to come).
- We're currently working hard on enabling MiraclePtr in Renderer processes. We just want to make sure that performance isn't affected.
- The work on iOS support has started.
- Lastly, we're working on individual workitems in this umbrella bug
crbug.com/331840474 which gathers pointers that we missed or the rewriter couldn't tackle automatically.
Best regards!