Chromium (МФА ['krəumɪəm], англ. chromium — хром) — веб-браузер с открытым исходным кодом, разрабатываемый сообществом The Chromium Authors, компанией Google и некоторыми другими компаниями (Opera Software, Яндекс, NVIDIA, Microsoft и другими)[3]. По утверждению разработчиков, Chromium предназначен для предоставления пользователям быстрого, безопасного и надёжного доступа в Интернет, а также удобной платформы для веб-приложений[10][11]. На основе Chromium создан браузер Google Chrome (при этом в рамках Chromium также доступны ранние пре-альфа версии[12], в которых можно ознакомиться с новшествами, ещё не включёнными в состав Chrome), а также ряд других альтернативных веб-обозревателей[2].

Chromium
Логотип программы Chromium
ТипБраузер
РазработчикиThe Chromium Authors, Google[1][2], некоторые другие компании[3]
Написана наC++, язык ассемблера
ДвижкиV8, Blink и Skia Graphics Engine[d]
Операционные системыWindows (7 или выше)
macOS (10.13 или выше)
Linux[4]
Языки интерфейсаамхарский язык, арабский, бенгальский язык, бразильский португальский, болгарский, каталанский, упрощённый китайский, китайский (вэньянь), хорватский, чешский, датский, нидерландский, английский, эстонский, филиппинский язык, финский, французский, грузинский, немецкий, греческий, иврит, хинди, венгерский, индонезийский язык, итальянский, японский, каннада, корейский, латышский язык, литовский язык, малайский язык, малаялам, маратхи, букмол, персидский, польский, португальский, румынский, русский, сербский, словацкий язык, словенский, испанский, суахили, шведский, тамильский язык, телугу, тайский, турецкий, украинский и вьетнамский
Первый выпуск3 сентября 2008
Последняя версия
Репозиторийchromium.googlesource.com/…
Состояниев активной разработке
ЛицензияКомпоненты распространяются под Apache License, BSD license, ICU License, LGPL, libjpeg license, libpng license, MIT License, MS-PL, MPL/GPL/LGPL, zlib license[1]
Сайтchromium.org/Home/
Логотип Викисклада Медиафайлы на Викискладе

История создания

Разработка веб-обозревателя началась 25 июля 2008 года[13]. 1 сентября 2008 года в официальном блоге Google Сандар Пичаи (Sundar Pichai) и Линус Апсон (Linus Upson) анонсировали браузер Google Chrome[10]. На следующий день состоялся выпуск первой публичной бета-версии браузера от Google, а также была опубликована большая часть кода браузера, лицензированного преимущественно под опциональной BSD-лицензией[14], а также рядом других[1]. Проект получил название Chromium. Разработчики Google объяснили создание открытого и свободного проекта Chromium стремлением помочь Mozilla и WebKit развивать Интернет и веб-технологии, предоставить разработчикам удобную платформу для создания и развития собственных проектов, а также возможностью протестировать свои собственные продукты силами сообщества[14]. Для взаимодействия с сообществом Google создал ряд сервисов: дискуссионные группы[15], справочные форумы[16], официальный блог проекта[17], баг-трекер[18]. Также разработчики Chromium гарантировали, что будут всячески стремиться соединять собственные разработки и исправления с основной веткой разработки WebKit[14].В марте 2011 года разработчики решили провести изменение логотипа браузера из 3D в 2D-представление[19][20].

Особенности

Скорость

Поставив своей целью разработать быстрый браузер, разработчики решили использовать открытые компоненты. Движком отображения веб-страниц был выбран свободный WebKit. Он обеспечивал необходимую скорость рендеринга, имея при этом ряд других преимуществ[21][22]. С движком обработки JavaScript всё обстояло несколько сложнее. Все имеющиеся на момент 2008 года движки или не обеспечивали необходимой производительности или распространялись по закрытым лицензиям. Поэтому инженеры Google написали с нуля скоростной, высокопроизводительный[23][24][25][26] движок V8, что позволило Chromium стать на момент запуска веб-обозревателя одним из самых быстрых браузеров в плане обработки JavaScript.В конце 2009 года в тестовых сборках Chromium начались работы по внедрению аппаратного ускорения при обработке динамического содержимого. Результат работы проявился в 7 версии Chromium, где уже можно было включить аппаратное ускорение[27][28][29], обеспечивая высочайшую производительность при обработке динамического 2D (Canvas) и 3D-контента (WebGL) с помощью графического процессора, показывая высокие результаты в демонстрационных тестах от Microsoft и Google[30][31][32][33][34][35].Для ускорения доступа к страницам используется технология предварительного чтения DNS[36] и предварительная отрисовка страниц (пререндеринг)[37][38]. 7 декабря 2010 года Google анонсировала новый виток развития V8, разработав новую инфраструктуру компиляции кода. Новая технология под названием Crankshaft позволила добиться огромного прироста в производительности (порядка 109 %), обойдя все конкурирующие движки[39][40].

В апреле 2013 было объявлено, что браузеры Chromium и Chrome, а также операционная система Chrome OS переходят на новый открытый движок Blink, являющийся форком WebKit. Первоначальной целью такого решения было доработать внутреннюю архитектуру движка и сократить объём его исходного кода[41].

Безопасность

Safe Browsing в действии

Согласно заявленным создателями Chromium стремлениям создать самый безопасный браузер, разработчики уделяют большое внимание внедрению новых функций по защите браузера. Для обеспечения безопасности в Chromium была выбрана модель «песочницы», позволявшая ограничить простор для атаки пользовательского компьютера через использованную уязвимость[42]. Исследователи Google пришли к выводу, что почти 70 % угроз «работают» в движке отображения, который взаимодействует с ненадёжным содержимым. Именно поэтому разработчики перевели всю работу движка в песочницу[~ 1][43][44]. На большинстве операционных систем Linux этот режим в браузере включен, однако некоторые неофициальные сборки Chromium дистрибутива Slackware отключают режим «песочницы» принудительно[45]. Тем не менее на официально поддерживаемых Google Linux-системах, начиная с версии 23, Chromium использует возможности ядра для использования дополнительных компонентов, таких как фильтры seccomp-bpf, позволяющие значительно ограничить потенциал использования злоумышленником специфичных вызовов ядра[46].В сборке 66022 разработчики перенесли в «песочницу» (изменение касается систем под ОС Microsoft Windows) также исполнение подключаемого модуля Adobe Flash Player[47][48], который довольно часто становится объектом пристального внимания хакеров[49].У Chromium нет действенной защиты от XSS-атак, но, благодаря тому, что Chromium поддерживает HTTP-only cookies, опасность межсайтового скриптинга значительно снижается[50]. Также активно тестируется функция XSS Auditor, внедрённая в списке экспериментальных функций в 7 версии. Данный компонент значительно увеличивает защиту от межсайтового скриптинга. Впервые XSS Auditor был использован в 4 версии Chromium[51], но в связи с многочисленными ошибками и падением производительности в версии 4.1 функция была отключена[52]. Проблему с производительностью и стабильностью разработчикам удалось разрешить, но функция до сих пор является экспериментальной, так как не все сайты способны с ней работать[53]. Также в 7 версии Chromium в качестве эксперимента появилась возможность надзора над подключаемыми модулями. Браузер получил возможность предлагать отключение тех плагинов, которые имеют незакрытые уязвимости до тех пор, пока не выйдет обновлённая версия модуля с исправлением ошибок[53][54][55], окончательно функция стала доступна в 10 версии браузера[56].Для обеспечения криптографической безопасности при работе с конфиденциальной информацией пользователей Chromium предоставляет возможность работать с защищённым протоколом передачи данных (HTTPS), которые могут упаковываться в соответствии с криптографическими протоколами SSL 3.0 и TLS 1.0. Для дополнительной защиты Chromium может использовать экспериментальный открытый протокол HSTS, позволяющий устанавливать с сайтами в форсированном режиме защищённое соединение[57][58].Часть настроек безопасности пользователь может регулировать сам. В Chromium встроен компонент Безопасный просмотр, обеспечивающий защиту от фишинга и вредоносного ПО[59][60][61]. Chromium при первом запуске в течение первых пяти минут загружает базы определений вредоносных и мошеннических сайтов, которые затем обновляет каждые 30 минут, при этом никакая личная информация в компанию Google не отправляется. Сам компонент может быть отключён в настройках браузера[~ 2][62]. Дополнительно Chromium позволяет проводить гибкую настройку содержания веб-страниц: редактировать политику запуска подключаемых модулей, использования JavaScript и cookies[~ 3], а также проводить очистку конфиденциальных данных за определённый период[~ 4][63]. Среди прочих механизмов защиты можно выделить:

  • Спецификация HTML5 в виде Origin header обеспечивает защиту от подделки межсайтовых запросов (CSRF)[58], блокируя неправильные запросы сайтов.
  • Chromium поддерживает X-Frame-Options API[64], защищающий браузер от кликджекинга, а также X-Content-Type-Options API[65], предоставляющий браузеру возможность защищаться от MIME-сниффинга[66].
  • Chromium поддерживает «режим инкогнито», при котором история посещений и загрузок не записывается в журналы, а файлы cookies удаляются после закрытия браузера[67].

При этом Google призывает пользователей при нахождении уязвимостей в браузере сообщать о них разработчикам, взамен получая денежные вознаграждения[68].

Надёжность

В целях повышения стабильности для Chromium была выбрана мультипроцессная архитектура. Браузер, движок рендеринга, расширения, подключаемые модули работают в отдельных процессах. Таким образом, при нарушении работы, например, расширения браузер продолжит работу в обычном режиме, выдав предложение о перезапуске расширения[69]. У мультипроцессной архитектуры есть ещё ряд преимуществ, кроме стабильности[70][71]:

  • Возможность мгновенного освобождения памяти при закрытии одного из компонентов. В частности, при закрытии вкладки потреблявшаяся ею память освободится сразу, в отличие от браузеров, использующих однопроцессную архитектуру, где очищение памяти при закрытии вкладки идёт несколько дольше.
  • Активное взаимодействие с операционной системой. При использовании большого числа вкладок многие вкладки могут простаивать в бездействии, несмотря на то, что они необходимы пользователю. Chromium, взаимодействуя с ОС, уменьшает потребление памяти, заставляя систему считать неиспользуемую вкладку свёрнутым приложением.
  • Возможность понимания, какие ресурсы и в каком количестве выделяются каждому запущенному компоненту. Для того, чтобы пользователь мог точно разобраться в каждом процессе, в Chromium установлен собственный диспетчер задач и инструмент статистики about:memory.

Но при этом у подобной архитектуры есть существенный недостаток — бо́льшее общее потребление памяти[71].

Поддержка веб-спецификаций

Chromium использует движок Blink для отображения веб-страниц, благодаря чему Chromium обеспечивает широкую поддержку HTML 4.01, xHTML 1.0 (2 изд.), XML 1.0 (4 изд.), SVG (уровень поддержки в 6 версии оценён как Advanced+[72]), шрифты SVG, фильтры SVG, анимацию SVG SMIL, MathML, ECMAScript, DOM, обеспечивая поддержку около 95 % существующих рекомендованных стандартов[73][74]. Разработчики же активно внедряют поддержку спецификаций HTML5, реализовав поддержку canvas, тегов <video>, <audio>, веб-приложений, геолокации, WebGL, Web SQL Database и ряда других активно разрабатываемых стандартов[75]. Также Chromium полностью проходит тесты CSS3 Selectors Test и Acid3[75].

Поддержка форматов

Браузер обеспечивает поддержку графических изображений JPEG (через Libjpeg), PNG (через Libpng), GIF, XBM[76]. В качестве альтернативного графического формата Chromium поддерживает разработанный компанией Google формат WebP, обеспечивающий лучшее качество при меньших размерах в сравнении с JPEG[77][78][79]. Поддержка аудио- и видеоформатов ограничена исключительно свободными форматами Ogv, Ogg и WebM, при этом AAC и MP3 не поддерживаются[45][80].

Расширяемость

Панель расширений в Chromium 10

В декабре 2008 года Google объявила о начале работы по внедрению поддержки расширений в Google Chrome[81][82]. Тестовой площадкой стал свободный браузер Chromium. В первых версиях Chromium 2 появилась возможность использовать расширения[83][84][85]. Расширения — небольшие программы, запущенные в браузере и добавляющие дополнительную функциональность, интеграцию с разнообразными веб-сервисами и ряд других особенностей. При написании расширений могут использоваться те же самые технологии, что и при написании веб-страниц, то есть HTML для создания разметки, CSS для стилизации и JavaScript для программирования. Учитывая, что новейшие версии Chromium обеспечивают поддержку HTML5 и CSS3, то разработчики могут пользоваться новейшими открытыми веб-технологиями, такими как canvas и CSS-анимации[86].

Используя нативные API, расширения для Chromium могут взаимодействовать с закладками, предоставляя возможность создавать их и проводить над ними различные действия[87]; контекстным меню, позволяя редактировать его содержимое[88]; вкладками, позволяя сортировать их, изменять и проводить некоторые другие действия.[89]; другими нативными API[90], в том числе экспериментальными[91].Из сторонних API есть возможность работать с DOM, HTML5 API’s, WebKit API и другими[92].

Также для Chromium можно использовать кросс-браузерный NPAPI-модуль, позволяющий вызывать нативный бинарный код расширения через JavaScript[93] для обмена данными между системой и браузером. Большим недостатком использования расширений, написанных с помощью этого API, является небезопасность. Расширения получают такие же права, которые имеет браузер, и через уязвимость в расширении злоумышленник может нанести вред системе[94].Разработанные расширения можно выкладывать в официальной галерее расширений. Расширения, кроме использующих интерфейс NPAPI, не проходят предварительной проверки и сразу появляются в каталоге[95]. Все расширения хранятся в crx-формате, который является особо построенным ZIP-файлом, который можно распаковать большинством архиваторов (7-Zip, WinRAR и др.). Начиная с 19 августа 2010 года, согласно обновлённым политикам безопасности, разработчики должны выплатить взнос в размере 5$ для начала публикации расширений в каталоге. Разработчики, которые зарегистрировались до 19 августа, входной платой не облагаются и могут продолжать публиковать расширения в обычном режиме[96]. Расширения в Chromium могут обновляться сами, используя протокол Omaha[97]. Chromium имеет встроенную поддержку сценариев Greasemonkey, что существенно расширяет возможности браузера[98][99].

Персонализация

Летом 2009 года в Chromium 3 была внедрена поддержка тем[100]. Темы позволяли менять расцветку интерфейса браузера, согласно предпочтениям пользователя. В Linux-версии возможности персонализации оказались шире, так как темы могли использовать «родные» возможности интерфейса GTK+/GNOME[101]. Для удобства пользователей была создана специальная галерея[102], содержащая темы от Google и сторонних авторов[103].

Подключаемые модули

Демонстрация возможностей O3D

Chromium позволяет подключать к браузеру плагины, расширяющие возможности веб-обозревателя. В стандартной поставке на платформе Windows вместе с браузером идут:

  • Default Plug-in — предоставляет возможность подключать сторонние плагины.
  • GPU Plug-in — подключает возможность рендеринга Pepper 3D с помощью GPU.
  • Native Client — плагин-компонент, позволяющий запускать приложения, использующие машинный код, в «песочнице».

В апреле 2009 года началось активное развитие плагина O3D, который должен предоставить API для создания мощных интерактивных приложений трёхмерной графики[104]. Разработчики планировали в дальнейшем внедрить открытый модуль в поставку Chromium, но в связи с развитием WebGL разработка плагина была заморожена, а часть наработок перенесена в спецификации WebGL[105]. В качестве дополнительных плагинов могут быть подключены Adobe Flash, Java, Silverlight, VLC Multimedia Plug-in, Adobe Reader и ряд других.

Безопасность

Плагины запускаются, согласно мультипроцессной архитектуре, в отдельных процессах, поэтому нарушить работу браузера они не способны[70]. Но из-за того, что подключаемые модули используют системные библиотеки, их исполнение было вынесено из «песочницы».

Приложения

Веб-приложения в Chromium 10

19 мая 2010 на официальном блоге Chromium был анонсирован Chrome Web Store, в котором будет предоставлена возможность публиковать приложения[106]. Приложения являются интерактивными веб-сайтами, во многом похожими на расширения, но ключевым отличием является то, что приложения можно продавать. Таким образом Google надеется привлечь крупных игроков, желающих извлечь выгоду из своих разработок[107]. Среди анонсированных приложений оказались: графический редактор и ряд игр. 7 декабря 2010 года на мероприятии Chrome Event разработчики браузера Chromium и Google Chrome объявили о запуске Chrome Web Store, в котором можно будет устанавливать веб-приложения, расширения и темы[108][109][110][111]. При этом для удобства пользования браузером на сенсорных экранах в браузере разрабатывается специальная панель приложений, адаптированная под управление пальцем[112].

Разработка приложений имеет примерно те же возможности, что и разработка расширений, но есть дополнительные возможности, как, например, запуск устанавливаемых приложений вне браузера[113].

Синхронизация

Через google-аккаунт может синхронизировать, в том числе и с браузером Google Chrome (и другими браузерами на основе Chromium, имеющие ядро выше 5 версии), веб-приложения, автозаполнение форм (кроме данных кредитных карт), закладки, расширения, параметры браузера и темы[114]. Начиная с 9 версии браузера, Chromium умеет синхронизировать пароли, при этом эти данные передаются в зашифрованном виде при установке идентификационной фразы[115].

Инструменты разработчика

Инструменты разработчика. Инструменты разработчика Chromium предоставляют интегрированное окружение для отладки, оптимизации и понимания устройства веб-приложений или сайтов, запущенных в Chromium. Инструменты разработчика частично разрабатываются в составе WebKit под названием Web Inspector. Среди функций стоит отметить обработку в реальном времени DOM и CSS, отладку JavaScript, использующую графический отладчик, анализ времени исполнения всех функций веб-приложений, исследование данных локальных хранилищ HTML5, а также ряд других функций[116][117][118][119][120][121].

Диспетчер задач[~ 5]. В диспетчере задач показываются все процессы, запущенные в Chromium, и используемые этими процессами ресурсы (память, процессор и сеть).

Другие инструменты. Браузер обладает дополнительными скрытыми инструментами для разработчиков и тестировщиков, позволяющих получить доступ к дополнительным экспериментальным функциям браузера[122][123], подробной информации о браузере, средствам мониторинга данных, а также к ряду других возможностей[124].

Критика

Браузер в целом положительно воспринимается экспертами, которые отмечают более высокую скорость работы по сравнению с конкурентами, а также обладает рядом других преимуществ, таких как: веб-приложения, минималистичный интерфейс, удобная работа с вкладками и некоторые другие достоинства[125][126].При этом первые тестовые версии браузера для платформ Linux и macOS подвергались критике из-за крайне нестабильной работы, недостатка функций, нерабочих инструментов разработчика и крупного ряда других недочётов[127][128][129]. Позднее было обнаружено, что Chromium при запуске отправляет запросы на серверы Google, что противоречит словам разработчиков об отсутствии в Chromium скрытых запросов, в отличие от Google Chrome.[130][131] Разработчики признали дефект, объявили, что это ошибка, и удалили все следящие элементы[132].

Отличия от Google Chrome

Зачастую возникает путаница между браузерами Chromium и Google Chrome[133]. Несмотря на схожесть, браузеры имеют ряд существенных различий. Chromium является свободным веб-обозревателем с открытым исходным кодом, в то время как Google Chrome распространяется под собственной лицензией[134] и содержит ряд несвободных элементов. С подробностями можно ознакомиться в таблице[45].

ChromiumGoogle Chrome
ЛоготипМногоцветный с преобладанием оттенков синегоМногоцветный с преобладанием тёплых цветов
Отчёты об ошибкахНе отправляются[135]Отправляются при включённой опции
СтатистикаНе отправляется[135]Отправляется при включённой опции
RLZ-идентификаторНе отправляется[135]Периодически отправляется[59]
Видео и аудиоПоддерживаются стандартно только открытые и свободные форматы WebM, Theora, VorbisПоддерживаются форматы WebM, Theora, MP3, AAC, Vorbis
Adobe FlashОтсутствуетБыл встроен (с 2021 поддержка прекращена)[136]
Google UpdaterОтсутствует. В некоторых операционных системах браузер обновляется при помощи технологии пакетного управления (Ubuntu, Debian, openSUSE, ChromeOS и др.)Следит за обновлениями браузера, скачивает и устанавливает их при необходимости
Качество и стабильностьКаналы обновлений полностью соответствуют каналам Chrome. Также доступны нестабильные ежедневные сборкиНесколько каналов обновлений. Канал Stable тщательно тестируется

Использование Chromium

Основную ветку Chromium (вне каналов Stable, Beta и Dev) можно расценивать как альфа-версию Google Chrome, она используется для «горячего» внедрения новых возможностей и функций[12]. При подобной политике использование браузера не рекомендуется для обычных пользователей, но в некоторых ОС, например в Joli OS, Chromium является браузером по умолчанию. В Windows существует ряд сторонних программ, позволяющих обновлять Chromium (например, свободный и открытый Chromium Updater[137]) по двум каналам обновлений — стабильному (протестированные сборки для ежедневного использования) и нестабильному (свежайшие сборки Chromium). Использование стабильного канала Chromium позволяет избежать ошибок и падений браузера. При этом корпоративный сегмент также может использовать Chromium благодаря инструментам управления групповыми политиками[138][139][140].

Chromium выпускается для операционных систем Microsoft Windows, начиная с XP SP2; MacOS, начиная с 10.5.6., и Linux (доступны также стабильные сборки Chromium), а именно, Arch Linux[141], Debian[142], Fedora[143], Gentoo Linux[144], openSUSE[145], Ubuntu и производные[146][147], Maemo 5 (существует неофициальный порт полноценного Chromium на коммуникатор Nokia N900)[148][149] и другие дистрибутивы[150]. FreeBSD официально не поддерживается, но доступен порт Linux версии, которая, однако, имеет некоторые функциональные недостатки в работе с расширениями[151][152].Вычислить точное количество пользователей браузера Chromium очень сложно, так как User Agent браузеров Google Chrome и Chromium совпадают. Согласно социальной сети Wakoopa, аудиторию пользователей Chromium (около 87 %) составляют пользователи ОС с ядром Linux[153].

Приложения, основанные на Chromium

Кодовая база Chromium послужила основой для создания целого ряда альтернативных веб-обозревателей, имеющих ряд особенностей по сравнению с основной веткой развития. Одним из примеров является браузер Opera, который, начиная с версии 15, использует движок Blink (ранее использовался собственный движок Presto[154]). Также, на базе Chromium многие интернет-компании выпускают браузеры, интегрированные с собственными интернет-сервисами, например: Google Chrome (компания Google), Яндекс.Браузер (Яндекс[155][156][157][158]), 360 Extreme Explorer, Microsoft Edge.

Примечания

Источники

Литература

Ссылки

Официальные сайты
Обзоры в прессе
🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации