Chromium (хром) — веб-браузер разрабатываемый сообществом The Chromium Authors, компанией Google и некоторыми другими компаниями (Opera Software, Яндекс, NVIDIA и др…).
По утверждению разработчиков веб-браузер предназначен для предоставления пользователям быстрого, безопасного и надёжного доступа в Интернет, а также удобной платформы для веб-приложений. На основе Chromium создан браузер Google Chrome (при этом в рамках Chromium также доступны ранние пре-альфа версии, в которых можно ознакомиться с новшествами, ещё не включёнными в состав Chrome), а также ряд других альтернативных веб-обозревателей.
Разработка веб-браузера началась с июля 2008 года, а в сентябре в официальном блоге Google разработчики Сандар Пичаи (Sundar Pichai) и Линус Апсон (Linus Upson) анонсировали браузер Google Chrome, на следующий день состоялся выпуск первой публичной бета-версии браузера от Google, а также была опубликована большая часть кода браузера, лицензированного преимущественно под опциональной BSD-лицензией, а также рядом других, проект получил название Chromium.
Разработчики Google объяснили создание открытого и свободного проекта Chromium стремлением помочь Mozilla и WebKit, развивать Интернет и веб-технологии, предоставить разработчикам удобную платформу для создания и развития собственных проектов, а также возможностью протестировать свои собственные продукты силами сообщества. Для взаимодействия с сообществом Google создал ряд сервисов: дискуссионные группы, справочные форумы, официальный блог проекта и баг-трекер. Также разработчики Chromium гарантировали, что будут всячески стремиться соединять собственные разработки и исправления с основной веткой разработки WebKit.
Поставив своей целью разработать быстрый браузер, разработчики Chromium решили использовать открытые компоненты, движком отображения веб-страниц был выбран свободный WebKit, он обеспечивал необходимую скорость рендеринга, имея при этом ряд других преимуществ. С движком обработки JavaScript всё обстояло несколько сложнее, все имеющиеся на момент 2008 года движки или не обеспечивали необходимой производительности или распространялись по закрытым лицензиям. Поэтому инженеры Google написали с нуля скоростной, высокопроизводительный движок V8, что позволило Chromium стать на момент запуска веб-обозревателя одним из самых быстрых браузеров в плане обработки JavaScript.
В конце 2009 года в тестовых сборках Chromium начались работы по внедрению аппаратного ускорения при обработке динамического содержимого, результат работы проявился в 7 версии Chromium, где уже можно было включить аппаратное ускорение, обеспечивая высочайшую производительность при обработке динамического 2D (Canvas) и 3D-контента (WebGL) с помощью графического процессора, показывая высокие результаты в демонстрационных тестах. Для ускорения доступа к страницам используется технология предварительного чтения DNS и предварительная отрисовка страниц (пререндеринг).
С декабря 2010 года Google анонсировала новый виток развития V8, разработав новую инфраструктуру компиляции кода и новая технология под названием Crankshaft позволила добиться огромного прироста в производительности (порядка 109 %), обойдя все конкурирующие движки. В апреле 2013 было объявлено, что браузеры Chromium и Chrome, а также операционная система Chrome OS переходят на новый открытый движок Blink, являющийся форком WebKit. Первоначальной целью такого решения было доработать внутреннюю архитектуру движка и сократить объём его исходного кода.
Согласно заявленным создателями Chromium стремлениям создать самый безопасный браузер, разработчики уделяют большое внимание внедрению новых функций по защите браузера. Для обеспечения безопасности в Chromium была выбрана модель «песочницы», позволявшая ограничить простор для атаки пользовательского компьютера через использованную уязвимость. У браузера нет действенной защиты от XSS-атак, но благодаря тому что Chromium поддерживает HTTP-only cookies, опасность межсайтового скриптинга значительно снижается, также активно тестируется функция XSS Auditor (внедрённая в списке экспериментальных функций в 7 версии).
В Chromium версии 7 появилась экспериментальная возможность надзора над подключаемыми модулями. Браузер получил возможность предлагать отключение тех плагинов, которые имеют незакрытые уязвимости до тех пор, пока не выйдет обновлённая версия модуля с исправлением ошибок. Для обеспечения криптографической безопасности при работе с конфиденциальной информацией пользователей веб-браузер предоставляет возможность работать с защищённым протоколом передачи данных (HTTPS), которые могут упаковываться в соответствии с криптографическими протоколами SSL 3.0 и TLS 1.0. Для дополнительной защиты Chromium может использовать экспериментальный открытый протокол HSTS, позволяющий устанавливать с сайтами в форсированном режиме защищённое соединение.
Часть настроек безопасности пользователь Chromium может регулировать сам, в браузер встроен компонент "Безопасный просмотр", при первом запуске в течение первых пяти минут загружает базы определений вредоносных и мошеннических сайтов, которые затем обновляет каждые 30 минут, при этом никакая личная информация в компанию Google не отправляется (компонент может быть отключен в настройках браузера). Дополнительно Chromium позволяет проводить гибкую настройку содержания веб-страниц: редактировать политику запуска подключаемых модулей, использования JavaScript и cookies, а также проводить очистку конфиденциальных данных за определённый период.
В целях повышения стабильности для Chromium была выбрана мультипроцессная архитектура. Браузер, движок рендеринга, расширения, подключаемые модули работают в отдельных процессах, таким образом при нарушении работы (например расширения) браузер продолжит работу в обычном режиме, выдав предложение о перезапуске расширения.
У мультипроцессной архитектуры кроме стабильности есть ещё ряд преимуществ:
- Возможность мгновенного освобождения памяти при закрытии одного из компонентов. В частности, при закрытии вкладки потреблявшаяся ею память освободится сразу, в отличие от браузеров, использующих однопроцессную архитектуру, где очищение памяти при закрытии вкладки идёт несколько дольше.
- Активное взаимодействие с операционной системой. При использовании большого числа вкладок многие вкладки могут простаивать в бездействии, несмотря на то, что они необходимы пользователю. Взаимодействуя с ОС браузер уменьшает потребление памяти, заставляя систему считать неиспользуемую вкладку свёрнутым приложением.
- Возможность понимания, какие ресурсы и в каком количестве выделяются каждому запущенному компоненту. Для того, чтобы пользователь мог точно разобраться в каждом процессе, в Chromium установлен собственный диспетчер задач и инструмент статистики (about:memory).
Но при этом у подобной архитектуры есть существенный недостаток — увеличение общего потребления памяти.
Chromium использует движок Blink для отображения веб-страниц, благодаря чему обеспечивает широкую поддержку HTML 4.01, xHTML 1.0 (2 изд.), XML 1.0 (4 изд.), SVG (уровень поддержки в 6 версии оценён как Advanced+), шрифты SVG, фильтры SVG, анимацию SVG SMIL, MathML, ECMAScript, DOM, обеспечивая поддержку около 95% существующих рекомендованных стандартов. Разработчики же активно внедряют поддержку спецификаций HTML5, реализовав поддержку canvas, тегов, веб-приложений, геолокации, WebGL, Web SQL Database и ряда других активно разрабатываемых стандартов. Также браузер полностью проходит тесты CSS3 Selectors Test и Acid3.
Chromium обеспечивает поддержку графических изображений JPEG (через Libjpeg), PNG (через Libpng), GIF и XBM, в качестве альтернативного графического формата веб-браузер поддерживает разработанный компанией Google формат WebP, обеспечивающий лучшее качество при меньших размерах в сравнении с JPEG, поддержка аудио и видео-форматов ограничена исключительно свободными форматами (Ogv, Ogg и WebM, при этом AAC и MP3 не поддерживаются). Chromium позволяет подключать плагины, которые запускаются, согласно мультипроцессной архитектуре, в отдельных процессах, поэтому нарушить работу браузера они не способны. Но из-за того, что подключаемые модули используют системные библиотеки, их исполнение было вынесено из «песочницы». Летом 2009 года в Chromium 3 была внедрена поддержка тем, они позволяли менять расцветку интерфейса браузера, согласно предпочтениям пользователя, для удобства пользователей была создана специальная галерея, содержащая темы от Google и сторонних авторов.
В декабре 2008 года Google объявила о начале работы по внедрению поддержки расширений в Google Chrome, тестовой площадкой для них стал Chromium. В первых версиях Chromium 2 появилась возможность использовать расширения, добавляющие дополнительную функциональность, интеграцию с разнообразными веб-сервисами и ряд других особенностей. При написании расширений могут использоваться те же самые технологии, что и при написании веб-страниц, то есть HTML для создания разметки, CSS для стилизации и JavaScript для программирования. Учитывая, что новейшие версии Chromium обеспечивают поддержку HTML5 и CSS3, то разработчики могут пользоваться новейшими открытыми веб-технологиями, такими как canvas и CSS-анимации. Расширения могут обновляться сами, используя протокол Omaha, имеется встроенная поддержка сценариев Greasemonkey, что существенно расширяет возможности браузера.
Chromium через google-аккаунт может синхронизировать данные, в том числе с Google Chrome и другими браузерами на основе Chromium (закладки, расширения, параметры браузера и темы). Начиная с 9 версии Chromium умеет синхронизировать и пароли, при этом эти данные передаются в зашифрованном виде при установке идентификационной фразы. Имеющиеся инструменты разработчика предоставляют интегрированное окружение для отладки, оптимизации и понимания устройства веб-приложений или сайтов, запущенных в веб-браузере. В встроенном "диспетчере задач" показываются все процессы, запущенные в Chromium и используемые этими процессами ресурсы (память, процессор и сеть). Браузер обладает дополнительными скрытыми инструментами для разработчиков и тестировщиков, позволяющих получить доступ к дополнительным экспериментальным функциям браузера, подробной информации о браузере, средствам мониторинга данных, а также к ряду других возможностей.
Кодовая база Chromium служит основой для создания целого ряда альтернативных веб-обозревателей, имеющих ряд особенностей по сравнению с основной веткой развития. Одним из примеров является браузер Opera, который, начиная с версии 15, использует движок Blink (ранее использовался собственный движок Presto), также, на базе Chromium многие интернет-компании выпускают браузеры, интегрированные с собственными интернет-сервисами (Google Chrome, Яндекс.Браузер и пр). Основную ветку Chromium (вне каналов Stable, Beta и Dev) можно расценивать как альфа-версию Google Chrome, она используется для «горячего» внедрения новых возможностей и функций. При подобной политике использование браузера не рекомендуется для обычных пользователей.
Лицензия: Apache, BSD, ICU, LGPL, MIT, MS-PL, MPL/GPL/LGPL, libjpeg, libpng, zlib