image

Недавно норвежское издание Digi.no опубликовало рассказ о том, как разработчики браузера Vivaldi работают с кодом Chromium. В интервью трое ведущих специалистов компании впервые публично рассказали об этом важном компоненте процесса разработки браузера Vivaldi.

В интервью норвежскому изданию приняли участие трое сотрудников компании — Ингве Петтерсен, Ярле Антонсен и Андре Шульц. Они рассказали о том, как проводится работа по интеграции кода браузера Vivaldi и ядра Chromium, которое используется в браузере — о преимуществах и недостатках такого подхода, а также о том, какие проблемы при этом возникают и как с ними бороться.

Ниже — перевод на русский язык наиболее интересных вопросов и ответов.

image
(По часовой стрелке слева направо) Харальд Бромбах из Digi.no, Ярле Антонсен, Ингве Петтерсен, Андре Шульц.

Является ли проблемой большой объём и короткая периодичность обновления кода ядра Chromium?


Ингве Петтерсен (ведущий инженер): Новая версия Chromium выходит каждые шесть недель и мы должны интегрировать собственный код Vivaldi с кодом этого ядра. Я занимаюсь этой задачей, являясь ответственным за кодовую базу браузера. И — да, это довольно сложная и трудоёмкая работа, которая занимает несколько недель.

Есть ли какой-то прогресс в этой работе?


Ярле Антонсен (менеджер проектов): Раньше процесс интеграции занимал три-четыре недели, но с интеграцией двух последних версий Chromium (68 и 69) разработчики Vivaldi справились менее, чем за две недели. Основную проблему составляли регрессии — когда наш код переставал работать с кодом Chromium, и именно их исправление занимает основное время.

Как идёт работа с сообществом Chromium?


Андре Шульц (UI разработчик): К нашей радости — очень продуктивно. Я постоянно отправляю вопросы разработчикам различных модулей и получаю вполне подробные ответы, иногда даже с предложениями, как сделать работу модуля ещё лучше.

А вы вносите вклад в разработку Chromium?


Ингве Петтерсен: За последние шесть месяцев мы отправили с десяток патчей для кода Chromium. В основном это предложения по очистке кода, но также были и исправления ошибок. Прямо сейчас мы готовим ещё несколько патчей для отправки разработчикам Chromium.

image
Ярле Антонсен, Ингве Петтерсен, Андре Шульц.

Насколько сложен и продолжителен процесс интеграции кода?


Ингве Петтерсен: После выхода очередного обновления 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 человек.

Ярле Антонсен: Как правило, у нас проходит немного времени от идеи до реализации новой функции. В небольшой команде легче избегать излишней бюрократии. При этом практически все члены команды принимают активное участие в тестировании новых функций, включая директора компании Йона фон Тэчнера. И, естественно, процесс добавления новых функций очень зависит от запросов пользователей — их рекомендации и отзывы имеют решающее значение для нашей работы.

image
(По часовой стрелке слева направо) Ярле Антонсен, Ингве Петтерсен, Андре Шульц, Харальд Бромбах.

Оригинал статьи

Комментарии (17)


  1. Peter1010
    14.09.2018 20:17
    +4

    Мяса, хочу мяса. А тут сплошная вода :(


  1. RubberSoul
    14.09.2018 21:26

    Прогресс за такое короткое время, по сравнению с конкурентами, просто огромный! Но я не готов перейти на этот браузер как на основной… Жду версию под андроид с синхронизацией.


    1. Shpankov Автор
      14.09.2018 22:41
      -1

      Под Android уже идёт разработка. В следующем году покажем.


      1. waltter
        14.09.2018 23:57

        Вот это действительно хорошая новость! Даже хотелось бы как-нибудь поспособствовать скорейшему релизу.


        1. Shpankov Автор
          14.09.2018 23:58

          Ну, как только выкатим публичную тестовую версию — сможете потестировать и помочь в скорейшей подготовке стабильной версии.


      1. kernozz
        15.09.2018 18:22

        А потом еще год будут пилить синхронизацию между десктопным приложением и андроидом. Как раз таки с синхронизацией, пользователей тоже кормили что «вот-вот вот ща добавим», а на деле джва года пришлось ждать


        1. Shpankov Автор
          15.09.2018 18:23

          Сколько нужно для нормальной работы — столько и будем пилить :-)


  1. crea7or
    14.09.2018 22:02
    +2

    Ну ни о чём статья. Смотрел я код вивальди — интересно сделали интеграцию с оригинальными исходниками. Я прямо в код хромиума делаю все правки. За три недели переношу код в новую ветку. Регрессы там редкие и обычно всё решается быстро, а уж с 16 разработчиками это вообще должно быть легко, даже при том, что кода у вас замтено больше.


  1. mspain
    15.09.2018 07:32
    +1

    А какова бизнес-модель вивальди, если не секрет? Чтобы 16 разрабов кормить должно быть и с профитом неплохо. И вопрос 2 сразу: если вивальди опенсорсный, не проще в хромиум сразу контрибьютить? или не принимают патчи?


    1. Shpankov Автор
      15.09.2018 16:17

      Бизнес-модель такая же, как была во времена классической версии браузера Opera. Мы заключаем договора с популярными поисковыми системами (кроме Google), с онлайновыми магазинами и прочими популярными ресурсами, и за пользователей, приходящих на эти сервисы или делающих покупки из Vivaldi, мы получаем небольшой доход.


      На данный момент мы ещё не вышли на самоокупаемость и частично работаем за счёт личных средств основателя компании, Йона фон Тэчнера. Но при этом относительный уровень доходов уже достиг запланированного объёма — не менее $1 в год за каждого пользователя. Для того, чтобы выйти на самоокупаемость (и приступить к разработке собственного движка), нам теперь необходимо нарастить базу пользователей до уровня 0,1% на мировом рынке браузеров. На данный момент мы приближаемся к отметке 0,06%.


      1. mspain
        15.09.2018 16:25

        Спасибо за ответ. Раз вы планируете разбавить гугломозилловую монополию веб-движков, поставлю себе в хромиум юзерагентом вивальди, чтобы вам денежек больше капало :)


      1. verbovet
        15.09.2018 17:43

        А пожертвования принимаете?


        1. Shpankov Автор
          15.09.2018 17:44

          Нет. Мы же не церковь :-)


    1. crea7or
      15.09.2018 18:04

      Видишь закладки на стартовом экране — они и приносят деньги. У Оперы такая ссылка на месяц стоит около $50000 только на РФ. Все изменения в таких браузерах всякие плюшечки, чтобы пользователь выбирал не Хром, а другой браузер, так что смысла их комнтрибьютить нет никакого — тогда чем к себе пользователей заманивать если всё будет одинаковое? Мейлру Амиго точно так же работал. Только у них ещё и поиск свой и он уж очень убогий.


  1. Shpankov Автор
    15.09.2018 17:06

    поставлю себе в хромиум юзерагентом вивальди, чтобы вам денежек больше капало :)

    Это не поможет :-)
    У нас партнёрские идентификаторы зашиты в закладках.


  1. hbrmike
    16.09.2018 01:22
    +1

    Да всё с вами давно понятно! )) Пока свой движок ваять не начнёте, будем мучаться и ждать чуда… Вот ещё застарелая вещь, которая в тупик ставит и заставляет задуматься (на фоне других несуразностей) — может это со мной что-то не так? Если вдруг забыл включить роутер и попытался в Вивальди открыть какой-нибудь адрес, то и при наличии подключения в дальнейшем будешь получать по этому адресу «нет доступа, проверьте соединение». Штатной очисткой кэша, истории и пр. в «Удалить личные данные» не лечится — ЭТО сидит где-то глубже. Помогает лишь перезапуск браузера, причём через некоторое время (непонятно какое — видимо, есть нечто, убиваемое не сразу). Понимаю (на 99%), что дело в движке, но мне, простому смертному, от этого не легче. Вот и статью эту, по вышеуказанной причине, читал поначалу из Оперы 12 (жива ещё курилка). Мучать параллельно Хром и разбираться «кто виноват», ну нет времени и особого желания! (Браузеры на других движках присутствуют и, знаю, работают нормально). Так что, скорей бы уж, что-то своё, шедеврально-неповторимое… )) Пардон, крик души.


    1. mspain
      16.09.2018 09:50

      дык это и в хромиуме так, видимо днс только 1 раз при старте программы из настроек системы берется (по кр мере в линукс)