Mozilla переписала Firefox Crash Reporter на Rust
В блоге Mozilla Hacks вышла статья инженера Mozilla Алекса Франчука о том, как команда проекта Firefox переписала код оригинального кроссплатформенного приложения с графическим интерфейсом Crash Reporter для браузера на языке программирования Rust.
Разработчики пояснили, что, хотя Firefox стал реже выдавать сбои, в Mozilla сочли необходимым переписать эту важную часть браузера, чтобы получить ещё больше информации о сбоях. Также ранее команда проекта столкнулась с тем, что существующая база ошибок и логов пользователей из Crash Reporter была «сложной и подверженной ошибкам», они решили полностью переписать это решение на Rust.
Несмотря на то, что важно правильно обрабатывать сбои основных процессов в браузере, проект Crash Reporter в течение некоторого времени не получал значительного развития (кроме доработок, обеспечивающих надёжную доставку отчётов о сбоях и телеметрии) Он уже давно застрял в локальном максимуме «достаточно хорош» и «страшно поддерживать». Решение включало в себя три отдельные реализации графического интерфейса (для Windows, GTK+ для Linux и macOS), связующий код, абстрагирующий несколько вещей (в основном на C++, и Objective-C для macOS), двоичный объект, созданный устаревшими инструментами разработки Apple, без набора тестов. У разработчиков было в планах множество функций и улучшений, которые не были реализованы в текущей версии Crash Reporter.
Изначально предполагалось, что Crash Reporter не должен использовать существующую кодовую базу Firefox, а придерживаться своей минимальной кодовой базы из-за характера отчётов о сбоях и обеспечивать собственный внешний вид на разных платформах. Также обновлённая версия Crash Reporter для Linux продолжит использовать набор инструментов GTK. В Windows
Читать на habr.com
