Confirmed users
1,345
edits
Nnethercote (talk | contribs) |
Nnethercote (talk | contribs) No edit summary |
||
Line 100: | Line 100: | ||
** Mozilla-central can use Rust 1.25.0 features 2018 April 12. | ** Mozilla-central can use Rust 1.25.0 features 2018 April 12. | ||
= Rust | = Rust Components = | ||
== Within Firefox == | |||
== Completed == | === Completed === | ||
* MP4 metadata parser: {{bug|1161350}} (shipped for desktop in Firefox 48) | * MP4 metadata parser: {{bug|1161350}} (shipped for desktop in Firefox 48) | ||
** Parses untrusted input, replaces libstagefright, a 3rd-party library with a history of security vulnerabilities | ** '''Why Rust?''' Parses untrusted input, replaces libstagefright, a 3rd-party library with a history of security vulnerabilities. | ||
* Replace uconv with encoding-rs: {{bug|1261841}} (shipped in Firefox 56) | * Replace uconv with encoding-rs: {{bug|1261841}} (shipped in Firefox 56) | ||
* CSS style calculation (from Servo): {{bug|stylo}} (shipped in Firefox 57) | * CSS style calculation (from Servo): {{bug|stylo}} (shipped for desktop in Firefox 57) | ||
** Code taken from Servo, uses parallel algorithms | ** '''Why Rust?''' Code taken from Servo, uses parallel algorithms. | ||
* U2F HID backend: {{bug|1388843}} (shipped in Firefox 57) | * U2F HID backend: {{bug|1388843}} (shipped in Firefox 57) | ||
== In progress == | === In progress === | ||
* URL parser: {{bug|url-oxidation}} | * URL parser: {{bug|url-oxidation}} | ||
* WebM demuxer: {{bug|1267492}} | * WebM demuxer: {{bug|1267492}} | ||
* WebRender: {{bug|webrender}} | * WebRender: {{bug|webrender}} | ||
** Code taken from Servo, has high performance; Rust's memory and thread safety provides protection against complexity | ** '''Why Rust?''' Code taken from Servo, has high performance; Rust's memory and thread safety provides protection against complexity. | ||
* Audio remoting for Linux: {{bug|1362220}} | * Audio remoting for Linux: {{bug|1362220}} | ||
* SDP parsing in WebRTC: {{bug|1365792}} (aiming for Firefox 59) | * SDP parsing in WebRTC: {{bug|1365792}} (aiming for Firefox 59) | ||
* Linebreaking with xi-unicode: {{bug|1290022}} | * Linebreaking with xi-unicode: {{bug|1290022}} | ||
* Optimizing WebVM compiler backend: [https://github.com/stoklund/cretonne/ cretonne] | * Optimizing WebVM compiler backend: [https://github.com/stoklund/cretonne/ cretonne] | ||
** Well-separated component with a clear interface | ** '''Why Rust?''' Well-separated component with a clear interface. | ||
== Proposed == | === Proposed === | ||
* Parallel layout | * Parallel layout | ||
** Code from Servo | ** Code from Servo. | ||
* Replace the XML parser | * Replace the XML parser | ||
** Parses untrusted input, replaces expat, a 3rd-party library with a history of security vulnerabilities | ** '''Why Rust?''' Parses untrusted input, replaces expat, a 3rd-party library with a history of security vulnerabilities. | ||
* WebMIDI: {{bug|1201593}}, {{bug|1201596}}, {{bug|1201598}} | * WebMIDI: {{bug|1201593}}, {{bug|1201596}}, {{bug|1201598}} | ||
* Gamepad code: {{bug|1286699}} | * Gamepad code: {{bug|1286699}} | ||
* Replace the telemetry module(?) | * Replace the telemetry module(?) | ||
** The existing C++ code has a history of threading problems | ** '''Why Rust?''' The existing C++ code has a history of threading problems. | ||
* Share media playback stack with Servo(?) | * Share media playback stack with Servo(?) | ||
* Replace DOM serializers (XML, HTML for Save As.., plain text) | * Replace DOM serializers (XML, HTML for Save As.., plain text) | ||
* Image decoders? | * Image decoders? | ||
** '''Why Rust?''' Parsing untrusted input, some history of security vulnerabilities. | |||
= | == Outside Firefox == | ||
== Completed == | === Completed === | ||
* GeckoDriver | * GeckoDriver, a WebDriver implementation for Firefox integrated via marionette protocol: {{bug|1340637}} ([https://github.com/mozilla/geckodriver/releases standalone releases]) | ||
= Blockers and obstacles = | = Blockers and obstacles = |