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 разработчики задействовали Win32 API и крейт windows-sys для доступа к привязкам к API. Для macOS (Какао/AppKit) команда Firefox сделала реализацию, регистрацию и создание классов Objective-C с помощью кода на Rust.

Франчук в техническом отчёте о переводе Crash Reporter на Rust продемонстрировал обновлённый графический интерфейс приложения и раскрыл некоторые интересные технические детали обновлённой реализации проекта.

Разработчики Firefox пояснили, что теперь, когда у них есть новая кодовая база для Crash Reporter, они могут приступить к реализации новых функций, чтобы сделать этот генератор отчётов более полезным, чем его предыдущая реализация.

Источник: habr.com

0 0 голоса
Рейтинг новости
0
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии