Лучшие вопросы
Таймлайн
Чат
Перспективы
Chromium
Браузер с открытым исходным кодом Из Википедии, свободной энциклопедии
Remove ads
Chromium (МФА ['krəumɪəm], англ. chromium — хром) — веб-браузер с открытым исходным кодом, разрабатываемый сообществом The Chromium Authors, компанией Google и некоторыми другими компаниями (Opera Software, Яндекс, NVIDIA, Microsoft и другими)[3]. По утверждению разработчиков, Chromium предназначен для предоставления пользователям быстрого, безопасного и надёжного доступа в Интернет, а также удобной платформы для веб-приложений[8][9]. На основе Chromium создан браузер Google Chrome (при этом в рамках Chromium также доступны ранние пре-альфа версии[10], в которых можно ознакомиться с новшествами, ещё не включёнными в состав Chrome), а также ряд других альтернативных веб-обозревателей[2].
Remove ads
История создания
Разработка веб-обозревателя началась 25 июля 2008 года[11]. 1 сентября 2008 года в официальном блоге Google Сандар Пичаи (Sundar Pichai) и Линус Апсон (Linus Upson) анонсировали браузер Google Chrome[8]. На следующий день состоялся выпуск первой публичной бета-версии браузера от Google, а также была опубликована большая часть кода браузера, лицензированного преимущественно под опциональной BSD-лицензией[12], а также рядом других[1]. Проект получил название Chromium. Разработчики Google объяснили создание открытого и свободного проекта Chromium стремлением помочь Mozilla и WebKit развивать Интернет и веб-технологии, предоставить разработчикам удобную платформу для создания и развития собственных проектов, а также возможностью протестировать свои собственные продукты силами сообщества[12]. Для взаимодействия с сообществом Google создал ряд сервисов: дискуссионные группы[13], форум[14], официальный блог проекта[15], баг-трекер[16]. Также разработчики Chromium гарантировали, что будут всячески стремиться соединять собственные разработки и исправления с основной веткой разработки WebKit[12]. В марте 2011 года разработчики решили провести изменение логотипа браузера из 3D в 2D-представление[17][18].
Remove ads
Особенности
Суммиров вкратце
Перспектива
Скорость
Поставив своей целью разработать быстрый браузер, разработчики решили использовать открытые компоненты. Движком отображения веб-страниц был выбран свободный WebKit. Он обеспечивал необходимую скорость рендеринга, имея при этом ряд других преимуществ[19][20]. С движком обработки JavaScript всё обстояло несколько сложнее. Все имевшиеся на момент 2008 года движки либо не обеспечивали необходимой производительности, либо распространялись по закрытым лицензиям. Поэтому инженеры Google написали с нуля скоростной, высокопроизводительный[21][22][23][24] движок V8, что позволило Chromium стать на момент запуска веб-обозревателя одним из самых быстрых браузеров в плане обработки JavaScript. В конце 2009 года в тестовых сборках Chromium начались работы по внедрению аппаратного ускорения при обработке динамического содержимого. Результат работы проявился в 7 версии Chromium, где уже можно было включить аппаратное ускорение[25][26][27], обеспечивая высочайшую производительность при обработке динамического 2D- (Canvas) и 3D-контента (WebGL) с помощью графического процессора, показывая высокие результаты в демонстрационных тестах от Microsoft и Google[28][29][30][31][32][33]. Для ускорения доступа к страницам используется технология предварительного чтения DNS[34] и предварительная отрисовка страниц (пререндеринг)[35][36]. 7 декабря 2010 года Google анонсировала новый виток развития V8, разработав новую инфраструктуру компиляции кода. Новая технология под названием Crankshaft позволила добиться огромного прироста в производительности (порядка 109 %), обойдя все конкурирующие движки[37][38].
В апреле 2013 было объявлено, что браузеры Chromium и Chrome, а также операционная система Chrome OS переходят на новый открытый движок Blink, являющийся форком WebKit. Первоначальной целью такого решения было доработать внутреннюю архитектуру движка и сократить объём его исходного кода[39].
Безопасность
Согласно заявленным создателями Chromium стремлениям создать самый безопасный браузер, разработчики уделяют большое внимание внедрению новых функций по защите браузера. Для обеспечения безопасности в Chromium была выбрана модель «песочницы», позволявшая ограничить простор для атаки пользовательского компьютера через использованную уязвимость[40]. Исследователи Google пришли к выводу, что почти 70 % угроз «работают» в движке отображения, который взаимодействует с ненадёжным содержимым. Именно поэтому разработчики перевели всю работу движка в песочницу[~ 1][41][42]. На большинстве операционных систем Linux этот режим в браузере включен, однако некоторые неофициальные сборки Chromium дистрибутива Slackware отключают режим «песочницы» принудительно[43]. Тем не менее на официально поддерживаемых Google Linux-системах, начиная с версии 23, Chromium использует возможности ядра для использования дополнительных компонентов, таких как фильтры seccomp-bpf, позволяющие значительно ограничить потенциал использования злоумышленником специфичных вызовов ядра[44]. В сборке 66022 разработчики перенесли в «песочницу» (изменение касается систем под ОС Microsoft Windows) также исполнение подключаемого модуля Adobe Flash Player[45][46], который довольно часто становится объектом пристального внимания хакеров[47]. У Chromium нет действенной защиты от XSS-атак, но, благодаря тому, что Chromium поддерживает HTTP-only cookies, опасность межсайтового скриптинга значительно снижается[48]. Также активно тестируется функция XSS Auditor, внедрённая в списке экспериментальных функций в 7 версии. Данный компонент значительно увеличивает защиту от межсайтового скриптинга. Впервые XSS Auditor был использован в 4 версии Chromium[49], но в связи с многочисленными ошибками и падением производительности в версии 4.1 функция была отключена[50]. Проблему с производительностью и стабильностью разработчикам удалось разрешить, но функция до сих пор является экспериментальной, так как не все сайты способны с ней работать[51]. Также в 7 версии Chromium в качестве эксперимента появилась возможность надзора над подключаемыми модулями. Браузер получил возможность предлагать отключение тех плагинов, которые имеют незакрытые уязвимости до тех пор, пока не выйдет обновлённая версия модуля с исправлением ошибок[51][52][53], окончательно функция стала доступна в 10 версии браузера[54]. Для обеспечения криптографической безопасности при работе с конфиденциальной информацией пользователей Chromium предоставляет возможность работать с защищённым протоколом передачи данных (HTTPS), которые могут упаковываться в соответствии с криптографическими протоколами SSL 3.0 и TLS 1.0. Для дополнительной защиты Chromium может использовать экспериментальный открытый протокол HSTS, позволяющий устанавливать с сайтами в форсированном режиме защищённое соединение[55][56]. Часть настроек безопасности пользователь может регулировать сам. В Chromium встроен компонент Безопасный просмотр, обеспечивающий защиту от фишинга и вредоносного ПО[57][58][59]. Chromium при первом запуске в течение первых пяти минут загружает базы определений вредоносных и мошеннических сайтов, которые затем обновляет каждые 30 минут, при этом никакая личная информация в компанию Google не отправляется. Сам компонент может быть отключён в настройках браузера[~ 2][60]. Дополнительно Chromium позволяет проводить гибкую настройку содержания веб-страниц: редактировать политику запуска подключаемых модулей, использования JavaScript и cookies[~ 3], а также проводить очистку конфиденциальных данных за определённый период[~ 4][61]. Среди прочих механизмов защиты можно выделить:
- Спецификация HTML5 в виде Origin header обеспечивает защиту от подделки межсайтовых запросов (CSRF)[56], блокируя неправильные запросы сайтов.
- Chromium поддерживает X-Frame-Options API[62], защищающий браузер от кликджекинга, а также X-Content-Type-Options API[63], предоставляющий браузеру возможность защищаться от MIME-сниффинга[64].
- Chromium поддерживает «режим инкогнито», при котором история посещений и загрузок не записывается в журналы, а файлы cookies удаляются после закрытия браузера[65].
При этом Google призывает пользователей при нахождении уязвимостей в браузере сообщать о них разработчикам, взамен получая денежные вознаграждения[66].
Надёжность
В целях повышения стабильности для Chromium была выбрана мультипроцессная архитектура. Браузер, движок рендеринга, расширения, подключаемые модули работают в отдельных процессах. Таким образом, при нарушении работы, например, расширения браузер продолжит работу в обычном режиме, выдав предложение о перезапуске расширения[67]. У мультипроцессной архитектуры есть ещё ряд преимуществ, кроме стабильности[68][69]:
- Возможность мгновенного освобождения памяти при закрытии одного из компонентов. В частности, при закрытии вкладки потреблявшаяся ею память освободится сразу, в отличие от браузеров, использующих однопроцессную архитектуру, где очищение памяти при закрытии вкладки идёт несколько дольше.
- Активное взаимодействие с операционной системой. При использовании большого числа вкладок многие вкладки могут простаивать в бездействии, несмотря на то, что они необходимы пользователю. Chromium, взаимодействуя с ОС, уменьшает потребление памяти, заставляя систему считать неиспользуемую вкладку свёрнутым приложением.
- Возможность понимания, какие ресурсы и в каком количестве выделяются каждому запущенному компоненту. Для того, чтобы пользователь мог точно разобраться в каждом процессе, в Chromium установлен собственный диспетчер задач и инструмент статистики
about:memory.
Но при этом у подобной архитектуры есть существенный недостаток — бо́льшее общее потребление памяти[69].
Поддержка веб-спецификаций
Chromium использует движок Blink для отображения веб-страниц, благодаря чему Chromium обеспечивает широкую поддержку HTML 4.01, xHTML 1.0 (2 изд.), XML 1.0 (4 изд.), SVG (уровень поддержки в 6 версии оценён как Advanced+[70]), шрифты SVG, фильтры SVG, анимацию SVG SMIL, MathML, ECMAScript, DOM, обеспечивая поддержку около 95 % существующих рекомендованных стандартов[71][72]. Разработчики же активно внедряют поддержку спецификаций HTML5, реализовав поддержку canvas, тегов <video>, <audio>, веб-приложений, геолокации, WebGL, Web SQL Database и ряда других активно разрабатываемых стандартов[73]. Также Chromium полностью проходит тесты CSS3 Selectors Test и Acid3[73].
Поддержка форматов
Браузер обеспечивает поддержку графических изображений JPEG (через Libjpeg), PNG (через Libpng), GIF, XBM[74]. В качестве альтернативного графического формата Chromium поддерживает разработанный компанией Google формат WebP, обеспечивающий лучшее качество при меньших размерах в сравнении с JPEG[75][76][77]. Поддержка аудио- и видеоформатов ограничена исключительно свободными форматами Ogv, Ogg и WebM, при этом AAC и MP3 не поддерживаются[43][78].
Расширяемость
В декабре 2008 года Google объявила о начале работы по внедрению поддержки расширений в Google Chrome[79][80]. Тестовой площадкой стал свободный браузер Chromium. В первых версиях Chromium 2 появилась возможность использовать расширения[81][82][83]. Расширения — небольшие программы, запущенные в браузере и добавляющие дополнительную функциональность, интеграцию с разнообразными веб-сервисами и ряд других особенностей. При написании расширений могут использоваться те же самые технологии, что и при написании веб-страниц, то есть HTML для создания разметки, CSS для стилизации и JavaScript для программирования. Учитывая, что новейшие версии Chromium обеспечивают поддержку HTML5 и CSS3, то разработчики могут пользоваться новейшими открытыми веб-технологиями, такими как canvas и CSS-анимации[84].
Используя нативные API, расширения для Chromium могут взаимодействовать с закладками, предоставляя возможность создавать их и проводить над ними различные действия[85]; контекстным меню, позволяя редактировать его содержимое[86]; вкладками, позволяя сортировать их, изменять и проводить некоторые другие действия.[87]; другими нативными API[88], в том числе экспериментальными[89]. Из сторонних API есть возможность работать с DOM, HTML5 API’s, WebKit API и другими[90].
Также для Chromium можно использовать кросс-браузерный NPAPI-модуль, позволяющий вызывать нативный бинарный код расширения через JavaScript[91] для обмена данными между системой и браузером. Большим недостатком использования расширений, написанных с помощью этого API, является небезопасность. Расширения получают такие же права, которые имеет браузер, и через уязвимость в расширении злоумышленник может нанести вред системе[92]. Разработанные расширения можно выкладывать в официальной галерее расширений. Расширения, кроме использующих интерфейс NPAPI, не проходят предварительной проверки и сразу появляются в каталоге[93]. Все расширения хранятся в crx-формате, который является особо построенным ZIP-файлом, который можно распаковать большинством архиваторов (7-Zip, WinRAR и др.). Начиная с 19 августа 2010 года, согласно обновлённым политикам безопасности, разработчики должны выплатить взнос в размере 5$ для начала публикации расширений в каталоге. Разработчики, которые зарегистрировались до 19 августа, входной платой не облагаются и могут продолжать публиковать расширения в обычном режиме[94]. Расширения в Chromium могут обновляться сами, используя протокол Omaha[95]. Chromium имеет встроенную поддержку сценариев Greasemonkey, что существенно расширяет возможности браузера[96][97].
Персонализация
Летом 2009 года в Chromium 3 была внедрена поддержка тем[98]. Темы позволяли менять расцветку интерфейса браузера, согласно предпочтениям пользователя. В Linux-версии возможности персонализации оказались шире, так как темы могли использовать «родные» возможности интерфейса GTK+/GNOME[99]. Для удобства пользователей была создана специальная галерея[100], содержащая темы от Google и сторонних авторов[101].
Подключаемые модули
Chromium позволяет подключать к браузеру плагины, расширяющие возможности веб-обозревателя. В стандартной поставке на платформе Windows вместе с браузером идут:
- Default Plug-in — предоставляет возможность подключать сторонние плагины.
- GPU Plug-in — подключает возможность рендеринга Pepper 3D с помощью GPU.
- Native Client — плагин-компонент, позволяющий запускать приложения, использующие машинный код, в «песочнице».
В апреле 2009 года началось активное развитие плагина O3D, который должен предоставить API для создания мощных интерактивных приложений трёхмерной графики[102]. Разработчики планировали в дальнейшем внедрить открытый модуль в поставку Chromium, но в связи с развитием WebGL разработка плагина была заморожена, а часть наработок перенесена в спецификации WebGL[103]. В качестве дополнительных плагинов могут быть подключены Adobe Flash, Java, Silverlight, VLC Multimedia Plug-in, Adobe Reader и ряд других.
Безопасность
Плагины запускаются, согласно мультипроцессной архитектуре, в отдельных процессах, поэтому нарушить работу браузера они не способны[68]. Но из-за того, что подключаемые модули используют системные библиотеки, их исполнение было вынесено из «песочницы».
Приложения

19 мая 2010 на официальном блоге Chromium был анонсирован Chrome Web Store, в котором будет предоставлена возможность публиковать приложения[104]. Приложения являются интерактивными веб-сайтами, во многом похожими на расширения, но ключевым отличием является то, что приложения можно продавать. Таким образом Google надеется привлечь крупных игроков, желающих извлечь выгоду из своих разработок[105]. Среди анонсированных приложений оказались: графический редактор и ряд игр. 7 декабря 2010 года на мероприятии Chrome Event разработчики браузера Chromium и Google Chrome объявили о запуске Chrome Web Store, в котором можно будет устанавливать веб-приложения, расширения и темы[106][107][108][109]. При этом для удобства пользования браузером на сенсорных экранах в браузере разрабатывается специальная панель приложений, адаптированная под управление пальцем[110].
Разработка приложений имеет примерно те же возможности, что и разработка расширений, но есть дополнительные возможности, как, например, запуск устанавливаемых приложений вне браузера[111].
Синхронизация
Через google-аккаунт может синхронизировать, в том числе и с браузером Google Chrome (и другими браузерами на основе Chromium, имеющие ядро выше 5 версии), веб-приложения, автозаполнение форм (кроме данных кредитных карт), закладки, расширения, параметры браузера и темы[112]. Начиная с 9 версии браузера, Chromium умеет синхронизировать пароли, при этом эти данные передаются в зашифрованном виде при установке идентификационной фразы[113].
Инструменты разработчика
Инструменты разработчика. Инструменты разработчика Chromium предоставляют интегрированное окружение для отладки, оптимизации и понимания устройства веб-приложений или сайтов, запущенных в Chromium. Инструменты разработчика частично разрабатываются в составе WebKit под названием Web Inspector. Среди функций стоит отметить обработку в реальном времени DOM и CSS, отладку JavaScript, использующую графический отладчик, анализ времени исполнения всех функций веб-приложений, исследование данных локальных хранилищ HTML5, а также ряд других функций[114][115][116][117][118][119].
Диспетчер задач[~ 5]. В диспетчере задач показываются все процессы, запущенные в Chromium, и используемые этими процессами ресурсы (память, процессор и сеть).
Другие инструменты. Браузер обладает дополнительными скрытыми инструментами для разработчиков и тестировщиков, позволяющих получить доступ к дополнительным экспериментальным функциям браузера[120][121], подробной информации о браузере, средствам мониторинга данных, а также к ряду других возможностей[122].
Remove ads
Критика
Браузер в целом положительно воспринимается экспертами, которые отмечают более высокую скорость работы по сравнению с конкурентами, а также обладает рядом других преимуществ, таких как: веб-приложения, минималистичный интерфейс, удобная работа с вкладками и некоторые другие достоинства[123][124]. При этом первые тестовые версии браузера для платформ Linux и macOS подвергались критике из-за крайне нестабильной работы, недостатка функций, нерабочих инструментов разработчика и крупного ряда других недочётов[125][126][127]. Позднее было обнаружено, что Chromium при запуске отправляет запросы на серверы Google, что противоречит словам разработчиков об отсутствии в Chromium скрытых запросов, в отличие от Google Chrome.[128][129] Разработчики признали дефект, объявили, что это ошибка, и удалили все следящие элементы[130].
Отличия от Google Chrome
Суммиров вкратце
Перспектива
Зачастую возникает путаница между браузерами Chromium и Google Chrome[131]. Несмотря на схожесть, браузеры имеют ряд существенных различий. Chromium является свободным веб-обозревателем с открытым исходным кодом, в то время как Google Chrome распространяется под собственной лицензией[132] и содержит ряд несвободных элементов. С подробностями можно ознакомиться в таблице[43].
Remove ads
Использование Chromium
Суммиров вкратце
Перспектива
Основную ветку Chromium (вне каналов Stable, Beta и Dev) можно расценивать как альфа-версию Google Chrome, она используется для «горячего» внедрения новых возможностей и функций[10]. При подобной политике использование браузера не рекомендуется для обычных пользователей, но в некоторых ОС, например в Joli OS, Chromium является браузером по умолчанию. В Windows существует ряд сторонних программ, позволяющих обновлять Chromium (например, свободный и открытый Chromium Updater[135]) по двум каналам обновлений — стабильному (протестированные сборки для ежедневного использования) и нестабильному (свежайшие сборки Chromium). Использование стабильного канала Chromium позволяет избежать ошибок и падений браузера. При этом корпоративный сегмент также может использовать Chromium благодаря инструментам управления групповыми политиками[136][137][138].
Chromium выпускается для операционных систем Microsoft Windows, начиная с Windows XP SP2 и Windows Server 2003 SP1; macOS, начиная с версии 10.5.6, и Linux (доступны также стабильные сборки Chromium), а именно, Arch Linux[139], Debian[140], Fedora[141], Gentoo Linux[142], openSUSE[143], Ubuntu и производные[144][145], Maemo 5 (существует неофициальный порт полноценного Chromium на коммуникатор Nokia N900)[146][147] и другие дистрибутивы[148]. FreeBSD официально не поддерживается, но доступен порт Linux версии, которая, однако, имеет некоторые функциональные недостатки в работе с расширениями[149][150]. Вычислить точное количество пользователей браузера Chromium очень сложно, так как User Agent браузеров Google Chrome и Chromium совпадают. Согласно социальной сети Wakoopa, аудиторию пользователей Chromium (около 87 %) составляют пользователи ОС с ядром Linux[151].
Remove ads
Приложения, основанные на Chromium
Кодовая база Chromium послужила основой для создания целого ряда альтернативных веб-обозревателей, имеющих ряд особенностей по сравнению с основной веткой развития. Одним из примеров является браузер Opera, который, начиная с версии 15, использует движок Blink (ранее использовался собственный движок Presto[152]). Также, на базе Chromium многие интернет-компании выпускают браузеры, интегрированные с собственными интернет-сервисами, например: Google Chrome (компания Google), Яндекс.Браузер (Яндекс[153][154][155][156]), 360 Extreme Explorer, Microsoft Edge.
Remove ads
Примечания
- Параметры Chromium → Расширенные → Конфиденциальность → Включить защиту от фишинга и вредоносного ПО.
- Параметры Chromium → Расширенные → Конфиденциальность → Настройки содержания.
- Параметры Chromium → Расширенные → Конфиденциальность → Удалить данные о просмотренных страницах.
- Меню «Настройка» → Инструменты → Диспетчер задач. Также можно воспользоваться быстрыми клавишами Shift + Escape.
Remove ads
Источники
Литература
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
