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, они могут приступить к реализации новых функций, чтобы сделать этот генератор отчётов более полезным, чем его предыдущая реализация.

Источник: https://habr.com/ru/news/810301/


Интересные статьи

Интересные статьи

Привет! Я Максим Рязанцев, DevOps-инженер в AGIMA. Мы разрабатываем большие проекты для больших компаний — поэтому много внимания уделяем безопасности. Новости о новых утечках данных или взломах приле...
Привет, коллеги.На самом деле ещё несколько месяцев назад я ненавидел Rust и задавался лишь одним вопросом: какого чёрта я вообще с ним связался? Но сегодня - сегодня всё иначе. И про это я хочу предл...
Моя прошлая статья заканчивалась тем, что у меня возникла проблема выбора на чем писать и я говорил, что в следующей части продолжу свое изложение как сравнение Rust и C++.  Но проблема на тот мо...
О концепции "нулевого доверия", вероятно, слышали многие. Более того, очень многие компании постепенно и небезуспешно внедряют эту концепцию. Еще три года назад 78% ИБ-отделов либо уже реализовали эту...
Команда поклонников Rust сайта Immutant усердно трудилась над C2Rust, фреймворком для миграции программ, который существенно упрощает их перевод на Rust. Мы стремились везде, где мож...