Недавно норвежское издание Digi.no опубликовало рассказ о том, как разработчики браузера Vivaldi работают с кодом Chromium. В интервью трое ведущих специалистов компании впервые публично рассказали об этом важном компоненте процесса разработки браузера Vivaldi.
В интервью норвежскому изданию приняли участие трое сотрудников компании — Ингве Петтерсен, Ярле Антонсен и Андре Шульц. Они рассказали о том, как проводится работа по интеграции кода браузера Vivaldi и ядра Chromium, которое используется в браузере — о преимуществах и недостатках такого подхода, а также о том, какие проблемы при этом возникают и как с ними бороться.
Ниже — перевод на русский язык наиболее интересных вопросов и ответов.
(По часовой стрелке слева направо) Харальд Бромбах из Digi.no, Ярле Антонсен, Ингве Петтерсен, Андре Шульц.
Является ли проблемой большой объём и короткая периодичность обновления кода ядра Chromium?
Ингве Петтерсен (ведущий инженер): Новая версия Chromium выходит каждые шесть недель и мы должны интегрировать собственный код Vivaldi с кодом этого ядра. Я занимаюсь этой задачей, являясь ответственным за кодовую базу браузера. И — да, это довольно сложная и трудоёмкая работа, которая занимает несколько недель.
Есть ли какой-то прогресс в этой работе?
Ярле Антонсен (менеджер проектов): Раньше процесс интеграции занимал три-четыре недели, но с интеграцией двух последних версий Chromium (68 и 69) разработчики Vivaldi справились менее, чем за две недели. Основную проблему составляли регрессии — когда наш код переставал работать с кодом Chromium, и именно их исправление занимает основное время.
Как идёт работа с сообществом Chromium?
Андре Шульц (UI разработчик): К нашей радости — очень продуктивно. Я постоянно отправляю вопросы разработчикам различных модулей и получаю вполне подробные ответы, иногда даже с предложениями, как сделать работу модуля ещё лучше.
А вы вносите вклад в разработку Chromium?
Ингве Петтерсен: За последние шесть месяцев мы отправили с десяток патчей для кода Chromium. В основном это предложения по очистке кода, но также были и исправления ошибок. Прямо сейчас мы готовим ещё несколько патчей для отправки разработчикам Chromium.
Ярле Антонсен, Ингве Петтерсен, Андре Шульц.
Насколько сложен и продолжителен процесс интеграции кода?
Ингве Петтерсен: После выхода очередного обновления Chromium я создаю новую отдельную ветку и начинаю работать с ней. Я извлекаю код Chromium и синхронизирую все подмодули, которые мы используем, одновременно внося небольшие изменения. Данная часть процесса достаточно хорошо автоматизирована у нас.
Затем мы копируем все наши обновления поверх кодовой базы Chromium. Здесь много ручной работы, т.к. мы получаем довольно много регрессий и конфликтов слияния кода. Раньше это было очень проблематично, но со временем мы хорошо почистили код от элементов, вызывавших конфликты, и сегодня всё происходит значительно проще. Например, при последнем обновлении мы внесли изменения в примерно 900 файлов, и только 80 файлов потребовали ручной правки кода. Мне потребовалось примерно пять-шесть часов на это — раньше уходило не меньше недели.
После завершения слияния кода требуется скомпилировать код браузера для различных платформ — Windows, Linux, Mac. Как правило, на это требуется один день или даже несколько часов. В общем же процесс слияния кода занимает сегодня два-три дня.
Как выявляются новые проблемы?
Ингве Петтерсен: Собственно в процессе интеграции кода уже проявляются ошибки, для исправления которых приходится вносить изменения в код модулей Vivaldi. Это может занять довольно много времени.
Затем Андре, Ярле и другие разработчики начинают исправлять обнаруженные проблемы, а также новые, которые выявляются уже в процессе тестирования браузера Vivaldi.
А насколько сложен этот процесс?
Андре Шульц: Да, изменения в Chromium являются самыми сложными в нашей работе. Пару раз мы отключали флаги для некоторых функций и работали параллельно с функциями Chromium, которые были фактически удалены из следующих версий ядра. Это создало нам много проблем. Наиболее сложный случай произошёл при обновлении на ядро Chromium 64 и нам потребовалось много времени на исправление, что сказалось на сокращении темпов выпуска новых сборок браузера Vivaldi.
Ингве Петтерсен: После исправления проблем, возникших при интеграции нового ядра, мы продолжаем работу по поиску и исправлению ошибок до тех пор, пока не получим достаточно стабильную версию, пригодную для выпуска в качестве готового продукта.
Как обстоят дела с добавлением новых функций в браузер?
Ингве Петтерсен: Да, мы не перестаём работать над новыми функциями, поэтому основной код Vivaldi постоянно изменяется и тестируется. Каждый раз, когда один из разработчиков добавляет изменения в код, автоматически создаётся новая сборка. Эти сборки активно тестируются сначала внутри компании и сторонними тестерами Sopranos, а затем и пользователями публичных тестовых сборок браузера, и в конце концов именно QA отдел принимает решение о том, готовы ли мы выпустить финальный релиз.
Сейчас в компании Vivaldi работает около 20 разработчиков. Я не знаю точно, сколько разработчиков принимает участие в разработке Chromium, но их, конечно, намного больше, чем нас. Можно попробовать сравнить по количеству изменений в коде, сделанных обеими командами в последнее время.
За пять лет мы внесли более 17000 изменений в наш основной код. За прошедший год мы внесли более 2700 изменений. Для сравнения, между Chromium 67 и 68 было внесено примерно 12000 изменений в код Chromium, а между версиями 68 и 69 эта цифра составила уже около 15000 изменений. Другими словами, команда разработчиков Chromium внесла за несколько дней столько же изменений, сколько мы внесли в свой код за год. Поэтому я оцениваю число активных разработчиков Chromium в примерно 600 человек.
Ярле Антонсен: Как правило, у нас проходит немного времени от идеи до реализации новой функции. В небольшой команде легче избегать излишней бюрократии. При этом практически все члены команды принимают активное участие в тестировании новых функций, включая директора компании Йона фон Тэчнера. И, естественно, процесс добавления новых функций очень зависит от запросов пользователей — их рекомендации и отзывы имеют решающее значение для нашей работы.
(По часовой стрелке слева направо) Ярле Антонсен, Ингве Петтерсен, Андре Шульц, Харальд Бромбах.
Оригинал статьи
Комментарии (17)
RubberSoul
14.09.2018 21:26Прогресс за такое короткое время, по сравнению с конкурентами, просто огромный! Но я не готов перейти на этот браузер как на основной… Жду версию под андроид с синхронизацией.
Shpankov Автор
14.09.2018 22:41-1Под Android уже идёт разработка. В следующем году покажем.
kernozz
15.09.2018 18:22А потом еще год будут пилить синхронизацию между десктопным приложением и андроидом. Как раз таки с синхронизацией, пользователей тоже кормили что «вот-вот вот ща добавим», а на деле джва года пришлось ждать
crea7or
14.09.2018 22:02+2Ну ни о чём статья. Смотрел я код вивальди — интересно сделали интеграцию с оригинальными исходниками. Я прямо в код хромиума делаю все правки. За три недели переношу код в новую ветку. Регрессы там редкие и обычно всё решается быстро, а уж с 16 разработчиками это вообще должно быть легко, даже при том, что кода у вас замтено больше.
mspain
15.09.2018 07:32+1А какова бизнес-модель вивальди, если не секрет? Чтобы 16 разрабов кормить должно быть и с профитом неплохо. И вопрос 2 сразу: если вивальди опенсорсный, не проще в хромиум сразу контрибьютить? или не принимают патчи?
Shpankov Автор
15.09.2018 16:17Бизнес-модель такая же, как была во времена классической версии браузера Opera. Мы заключаем договора с популярными поисковыми системами (кроме Google), с онлайновыми магазинами и прочими популярными ресурсами, и за пользователей, приходящих на эти сервисы или делающих покупки из Vivaldi, мы получаем небольшой доход.
На данный момент мы ещё не вышли на самоокупаемость и частично работаем за счёт личных средств основателя компании, Йона фон Тэчнера. Но при этом относительный уровень доходов уже достиг запланированного объёма — не менее $1 в год за каждого пользователя. Для того, чтобы выйти на самоокупаемость (и приступить к разработке собственного движка), нам теперь необходимо нарастить базу пользователей до уровня 0,1% на мировом рынке браузеров. На данный момент мы приближаемся к отметке 0,06%.
mspain
15.09.2018 16:25Спасибо за ответ. Раз вы планируете разбавить гугломозилловую монополию веб-движков, поставлю себе в хромиум юзерагентом вивальди, чтобы вам денежек больше капало :)
crea7or
15.09.2018 18:04Видишь закладки на стартовом экране — они и приносят деньги. У Оперы такая ссылка на месяц стоит около $50000 только на РФ. Все изменения в таких браузерах всякие плюшечки, чтобы пользователь выбирал не Хром, а другой браузер, так что смысла их комнтрибьютить нет никакого — тогда чем к себе пользователей заманивать если всё будет одинаковое? Мейлру Амиго точно так же работал. Только у них ещё и поиск свой и он уж очень убогий.
Shpankov Автор
15.09.2018 17:06поставлю себе в хромиум юзерагентом вивальди, чтобы вам денежек больше капало :)
Это не поможет :-)
У нас партнёрские идентификаторы зашиты в закладках.
hbrmike
16.09.2018 01:22+1Да всё с вами давно понятно! )) Пока свой движок ваять не начнёте, будем мучаться и ждать чуда… Вот ещё застарелая вещь, которая в тупик ставит и заставляет задуматься (на фоне других несуразностей) — может это со мной что-то не так? Если вдруг забыл включить роутер и попытался в Вивальди открыть какой-нибудь адрес, то и при наличии подключения в дальнейшем будешь получать по этому адресу «нет доступа, проверьте соединение». Штатной очисткой кэша, истории и пр. в «Удалить личные данные» не лечится — ЭТО сидит где-то глубже. Помогает лишь перезапуск браузера, причём через некоторое время (непонятно какое — видимо, есть нечто, убиваемое не сразу). Понимаю (на 99%), что дело в движке, но мне, простому смертному, от этого не легче. Вот и статью эту, по вышеуказанной причине, читал поначалу из Оперы 12 (жива ещё курилка). Мучать параллельно Хром и разбираться «кто виноват», ну нет времени и особого желания! (Браузеры на других движках присутствуют и, знаю, работают нормально). Так что, скорей бы уж, что-то своё, шедеврально-неповторимое… )) Пардон, крик души.
mspain
16.09.2018 09:50дык это и в хромиуме так, видимо днс только 1 раз при старте программы из настроек системы берется (по кр мере в линукс)
Peter1010
Мяса, хочу мяса. А тут сплошная вода :(