Chromium

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Chromium
Chromium Logo
Chromium Logo
Chromium 111 з відкритою головною сторінкою Вікіпедії
Тип Вебоглядач
Автор Google
Стабільний випуск 122.0.6261.129 (14.03.2024, для Windows)[1]
Операційна система Dragonfly BSD
NetBSD
OpenBSD
FreeBSD
Linux
macOS
Windows (XP SP2 and later)
Мова програмування C++ та Асемблер
Рушій(ї) WebKit, Blink (браузерний рушій), V8 (рушій JavaScript)
Розмір 20.0 MB (FreeBSD i386)
24.0 MB (Linux)
26.3 MB (Linux x64)
23.7 MB (Mac)
15.7 MB (Windows)
Ліцензія Ліцензія BSD, Ліцензія MIT, LGPL, Shared Source, MPL/GPL/LGPL tri-license
Репозиторій chromium.googlesource.com/chromium/src
Вебсайт chromium.org dev.chromium.org

Chromium — це самостійний вебоглядач з відкритим вихідним кодом, поширюваним на основі ліцензій BSD. На основі цього відкритого коду компанія Google створила свій браузер Chrome під власною ліцензією EULA. Chromium включає рушій для відображення HTML-сторінок WebKit (до версії 28). Одна з найважливіших можливостей — це розширення на зразок розширень браузера Firefox.

Історія створення[ред. | ред. код]

Розробка веббраузера почалася 25 липня 2008. 1 вересня 2008 на офіційному блозі Google Сандарам Пічаї (Sundar Pichai) і Лінус Апсон (Linus Upson) анонсували браузер Google Chrome. Наступного дня відбувся випуск першої публічної бета-версії браузера від Google, а також була опублікована велика частина коду браузера, ліцензованого переважно під опціональною BSD-ліцензією, а також низкою інших. Проєкт отримав назву Chromium, натякаючи на те, що Google Chrome виготовлений з хрому. Розробники Google пояснили створення відкритого і вільного проєкту Chromium прагненням допомогти Mozilla і WebKit розвивати Інтернет і вебтехнології, надати розробникам зручну платформу для створення і розвитку власних проєктів, а також можливістю протестувати свої власні продукти силами спільноти. Для взаємодії зі співтовариством Google створив ряд сервісів: дискусійні групи, довідкові форуми, офіційний блог проєкту, баг-трекер. Також розробники Chromium гарантували, що будуть всіляко прагнути з'єднувати власні розробки та виправлення до основної гілки розробки WebKit.

Особливості[ред. | ред. код]

Швидкість[ред. | ред. код]

Поставивши своєю метою розробити швидкий браузер, розробники вирішили використовувати відкриті компоненти. Рушієм відображення вебсторінок був обраний вільний WebKit. Він забезпечував необхідну швидкість рендеринга, маючи при цьому ряд інших переваг[2][3]. З рушієм обробки JavaScript все було трохи складніше. Усі наявні на момент 2008 року рушії не забезпечували необхідної продуктивності або розповсюджувалися за закритими ліцензіями. Тому інженери Google написали з нуля швидкісний, високопродуктивний[4][5][6][7] рушій V8, що дозволило Chromium стати на момент запуску веббраузера одним з найшвидших браузерів в плані обробки JavaScript. Наприкінці 2009 року в тестових збірках Chromium почалися роботи по впровадженню апаратного прискорення при обробці динамічного вмісту. Результат роботи виявився в 7 версії Chromium, де вже можна було включити апаратне прискорення[8][9][10], забезпечуючи найвищу продуктивність при обробці динамічного 2D (Canvas) та 3D-контента (WebGL) за допомогою графічного процесора, показуючи високі результати в демонстраційних тестах від Microsoft та Google[11][12][13][14][15][16]. Для прискорення доступу до сторінок використовується технологія попереднього читання DNS[17] та попереднє промальовування сторінок (пререндерінг)[18][19]. 7 грудня 2010 року Google анонсувала новий виток розвитку V8, розробивши нову інфраструктуру компіляції коду. Нова технологія під назвою Crankshaft дозволила добитися величезного приросту в продуктивності (порядку 109 %), обійшовши всі конкуруючі рушії[20][21].

Безпека[ред. | ред. код]

Згідно заявленим творцями Chromium прагненням створити найбезпечніший браузер, розробники приділяють велику увагу впровадженню нових функцій по захисту браузера. Для забезпечення безпеки в Chromium була обрана модель «пісочниці», що дозволяла обмежити простір для атаки користувальницького комп'ютера через використану уразливість[22]. Дослідники Google прийшли до висновку, що майже 70 % загроз «працюють» в рушії відображення, який взаємодіє з ненадійним вмістом. Саме тому розробники перевели всю роботу рушія в пісочницю[~ 1][23][24]. На більшості операційних систем Linux цей режим в браузері включений, однак деякі неофіційні збірки Chromium дистрибутиву Slackware відключають режим «пісочниці» примусово. Тим не менш, на офіційно підтримуваних Google Linux-системах, починаючи з версії 23, Chromium використовує можливості ядра для використання додаткових компонентів, таких, як фільтри seccomp-bpf, що дозволяють значно обмежити потенціал використання зловмисником специфічних викликів ядра[25]. У збірці 66022 розробники перенесли в «пісочницю» (зміна стосується систем під ОС Microsoft Windows) також виконання модуля, що підключається Adobe Flash Player[26][27], який достатньо часто стає об'єктом пильної уваги хакерів[28]. У Chromium немає дієвого захисту від XSS-атак, але, завдяки тому, що Chromium підтримує HTTP-Only cookies, небезпека міжсайтового скриптинга значно знижується[29]. Також активно тестується функція XSS Auditor, впроваджена в списку експериментальних функцій в 7 версії. Цей компонент значно збільшує захист від міжсайтового скриптинга. Вперше XSS Auditor був використаний в 4 версії Chromium[30], але у зв'язку з численними помилками та падінням продуктивності у версії 4.1 функція була відключена[31]. Проблему з продуктивністю та стабільністю розробникам вдалося вирішити, але функція досі є експериментальною, оскільки не всі сайти здатні з нею працювати[32]. Також в 7 версії Chromium як експеримент з'явилася можливість нагляду за модулями. Браузер отримав можливість пропонувати відключення тих плагінів, які мають незакриті вразливості до тих пір, поки не вийде оновлена версія модуля з виправленням помилок[32][33][34], остаточно функція стала доступна в 10 версії браузера[35]. Для забезпечення криптографічної безпеки при роботі з конфіденційною інформацією користувачів Chromium надає можливість працювати із захищеним протоколом передачі даних (HTTPS), які можуть упаковуватися згідно з криптографічними протоколами SSL 3.0 та TLS 1.0. Для додаткового захисту Chromium може використовувати експериментальний відкритий протокол HSTS, що дозволяє встановлювати з сайтами у форсованому режимі захищене з'єднання[36][37]. Частину налаштувань безпеки користувач може регулювати сам. У Chromium вбудований компонент Безпечний перегляд, що забезпечує захист від фішингу та шкідливого ПЗ[38][39][40]. Chromium при першому запуску протягом перших п'яти хвилин завантажує бази визначень шкідливих та шахрайських сайтів, які потім оновлює кожні 30 хвилин, при цьому ніяка особиста інформація в компанію Google не відправляється. Сам компонент може бути відключений в налаштуваннях браузера.[~ 2][41]. Додатково Chromium дозволяє проводити гнучку настройку змісту вебсторінок: редагувати політику запуску модулів, що підключаються, використання JavaScript та cookies[~ 3], а також проводити очищення конфіденційних даних за певний період[~ 4][42]. Серед інших механізмів захисту можна виділити:

  • Специфікація HTML5 у вигляді Origin Header забезпечує захист від підробки міжсайтових запитів (CSRF)[37], блокуючи неправильні запити сайтів.
  • Chromium підтримує X-Frame-Options API[43], що захищає браузер від клікджекінга, а також X-Content-Type-Options API[44], що надає браузеру можливість захищатися від MIME-сніффінга[~ 5].
  • Chromium підтримує «режим інкогніто», при якому історія відвідувань та завантажень не записується в журнали, а файли cookies видаляються після закриття браузера[45].

При цьому Google закликає користувачів при знаходженні вразливостей в браузері повідомляти про них розробникам, натомість отримуючи грошові винагороди[46].

Надійність[ред. | ред. код]

Для підвищення стабільності для Chromium була обрана мультипроцесна архітектура. Браузер, рушій рендерингу, розширення, компоненти Plug-in працюють в окремих процесах. Таким чином, при порушенні роботи, наприклад, розширення браузер продовжить роботу в звичайному режимі, видавши пропозицію про перезапуск розширення.

У мультипроцессорної архітектури є ще низка переваг, крім стабільності:

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

Але при цьому подібна архітектура має істотний недолік — більше загальне споживання пам'яті.

Вебоглядачі, засновані на Chromium[ред. | ред. код]

Примітки[ред. | ред. код]

  1. На деяких файлових системах, таких як FAT32, використання «пісочниці» неможливо.
  2. Параметри Chromium → Розширені → Конфіденційність → Увімкнути захист від фішингу та шкідливих програм.
  3. Параметри Chromium → Розширені → Конфіденційність → Налаштування вмісту.
  4. Параметри Chromium → Розширені → Конфіденційність → Видалити дані вебперегляду.
  5. Wladimir Palant (29 квітня 2007). The hazards of MIME sniffing (англійською) . Офіційний блог AdBlock+. Архів оригіналу за 13 серпня 2011. Процитовано 5 грудня 2010.
  1. Releases | Windows // chromiumdash.appspot.com. — Дата звернення: 17.03.2024.
  2. Darin Fisher (5 вересня 2008). Chrome <3s WebKit (англійською) . Google Inc. Архів оригіналу за 13 серпня 2011. Процитовано 29 січня 2011.
  3. C'T (3 вересня 2009). WebKit-невідома величина (російською) . Далекий Схід. Архів оригіналу за 13 серпня 2011. Процитовано 29 січня 2011.
  4. V8 JavaScript Engine (англійською) . Google Inc. Архів оригіналу за 13 серпня 2011. Процитовано 29 січня 2011.
  5. Stephen Shankland (2 вересня 2008). Speed test: Google Chrome beats Firefox, IE, Safari (англійською) . 2011 CBS Interactive (CNET). Архів оригіналу за 13 серпня 2011. Процитовано 29 січня 2011.
  6. Lars Bak (2 вересня 2008). Google Chrome's Need for Speed (uage=англійською) . Google Inc. Архів оригіналу за 17 серпня 2013. Процитовано 29 січня 2011.
  7. Rob Minto (27 березня 2009). The genius behind Google's browser (англійською) . FT Magazine. Архів оригіналу за 6 квітня 2011. Процитовано 6 квітня 2011. With Lars Bak's V8 engine, Chrome is incredibly quick
  8. Vangelis Kokkevis (27 серпня 2010). Chromium Graphics Overhaul (uage=англійською) . Google Inc. Архів оригіналу за 9 лютого 2011. Процитовано 29 січня 2011.
  9. James Robinson (14 вересня 2010). Unleashing GPU acceleration on the web (uage=англійською) . Google Inc. Архів оригіналу за 11 січня 2011. Процитовано 29 січня 2011.
  10. Lucian Parfeni (28 серпня 2010). Google Chrome 7 Gets GPU Acceleration for 2D and 3D Content (англійською) . Архів оригіналу за 13 серпня 2011. Процитовано 2 жовтня 2010.
  11. Katherine Noyes. Chrome 7 Will Get 60 Times Faster, Google Says (англійською) . PCWorld. Архів оригіналу за 13 серпня 2011. Процитовано 9 квітня 2011.
  12. Ionut Ilascu (18 вересня 2010). Browsers: From Zero to Double Rainbow Hardware Acceleration (англійською) . Softpedia. Архів оригіналу за 13 серпня 2011. Процитовано 2 жовтня 2010.
  13. Божинов, Анжел (29 серпня 2010 року). Chromium 7 «вбиває» козирі IE 9 (російською) . Habrahabr. Архів оригіналу за 13 серпня 2011. Процитовано 2 жовтня 2010. Підсумок простий до неможливості. Chromium, особливо не напружуючись, вийняв козир та побив усі домагання Internet Explorer 9, показавши феноменальну продуктивність в обробці динамічного вмісту та показавши високу готовність до стандартизації HTML5 {{cite web}}: Вказано більш, ніж один |author= та |last= (довідка)
  14. Wolfgang Gruener (22 серпня 2010). The Secret Of Chrome 7: Hardware Acceleration? (англійською) . ConceivablyTech. Архів оригіналу за 28 серпня 2010. Процитовано 2 жовтня 2010.
  15. Pulkit Chandna (16 вересня 2010). Hardware-Accelerated Chrome 7 60x Faster than Previous Versions (англійською) . Maximum PC[en]. Архів оригіналу за 13 серпня 2011. Процитовано 9 квітня 2011.
  16. Daniel Bailey (25 лютого 2011). Chrome Is The Fastest WebGL Browser, Says Facebook (англійською) . ConceivablyTech. Архів оригіналу за 13 серпня 2011. Процитовано 28 лютого 2011.
  17. Jim Roskind (17 вересня 2008). DNS Prefetching (or Pre-Resolving) (uage=англійською) . Google Inc. Архів оригіналу за 25 січня 2011. Процитовано 29 січня 2011.
  18. Lucian Parfeni (November 5th, 2010). Chrome 9 to Get 'Wicked Fast' Page Loads with Prerendering (uage=англійською) . Softpedia. Архів оригіналу за 8 листопада 2010. Процитовано 7 грудня 2010.
  19. John Migman (5 листопада 2010). Chromium: новий експеримент з пререндерінгом сторінок (uage=російською) . My-Chrome. Архів оригіналу за 26 листопада 2010. Процитовано 7 грудня 2010. {{cite news}}: Проігноровано невідомий параметр |description= (довідка)
  20. Kevin Millikin; Florian Schneider (7 грудня 2010). A New Crankshaft for V8 (англійською) . Official Chromium Blog. Архів оригіналу за 13 серпня 2011. Процитовано 7 грудня 2010.
  21. Wolfgang Gruener (7 грудня 2010). Chrome 10 Posts Huge Performance Jump (uage=англійською) . ConceivablyTech. Архів оригіналу за 18 грудня 2010. Процитовано 7 грудня 2010. {{cite news}}: Проігноровано невідомий параметр |description= (довідка)
  22. Adam Barth; Collin Jackson and Charlie Reis (10 вересня 2008 року). Security Architecture (англійською) . The Chromium Authors/Google. Архів оригіналу за 13 серпня 2011. Процитовано 1 квітня 2011.
  23. Nicolas Sylvain (2 жовтня 2008). A new approach to browser security: the Google Chrome Sandbox (англійською) . The Chromium Authors/Google Inc,. Архів оригіналу за 13 серпня 2011. Процитовано 22 лютого 2011.
  24. Adam Barth; Collin Jackson, Charles Reis. The Security Architecture of the Chromium Browser (PDF) (англійською) . Стенфордський університет. Архів оригіналу (PDF) за 13 серпня 2011. Процитовано 22 лютого 2011.
  25. Julien Tinnes (19 листопада 2012). A safer playground for your Linux and Chrome OS renderers (англійською) . Google Inc. Архів оригіналу за 1 грудня 2012. Процитовано 30 листопада 2012.
  26. Revision 66022 (англійською) . Chromium Authors. 2010. Архів оригіналу за 13 серпня 2011. Процитовано 29 листопада 2010.
  27. Lee Mathews (2010). Google Chrome sandboxes Flash for more secure browsing (англійською) . AOL Inc. Архів оригіналу за 13 серпня 2011. Процитовано 29 листопада 2010.
  28. Vulnerability Report: Adobe Flash Player 10.x (англійською) . Secunia. Архів оригіналу за 23 жовтня 2012. Процитовано 29 листопада 2010.
  29. Mitigating Cross-site Scripting With HTTP-only Cookies (англійською) . Мережа розробників Майкрософт. 2008 рік. Архів оригіналу за 13 серпня 2011. Процитовано 1 квітня 2011.
  30. Anthony Laforge (25 січня 2010). Stable Channel Update (англійською) . Google. Архів оригіналу за 13 серпня 2011. Процитовано 6 жовтня 2010.
  31. вийшов Google Chrome 4.1 (uage=російською) . SecurityLab.ru. 19 березня, 2010. Архів оригіналу за 5 лютого 2016. Процитовано 6 жовтня 2010.
  32. а б Lucian Constantin (5 жовтня 2010). Chrome Gets XSS Filter and Starts Disabling Outdated Plug-Ins (uage=англійською) . Softpedia. Архів оригіналу за 13 жовтня 2010. Процитовано 6 жовтня 2010.
  33. Lucian Constantin (29 червня 2010). Future Versions of Chrome to Automatically Disable Outdated Plug-Ins (англійською) . Softpedia. Архів оригіналу за 13 серпня 2011. Процитовано 5 квітня 2011.
  34. Elinor Mills (29 червня 2010). Google to block outdated plug-ins in Chrome (англійською) . CNET. Архів оригіналу за 13 серпня 2011. Процитовано 5 квітня 2011. The company did not provide a timeline for this feature, except to say it will be «medium-term, " in a post Monday on The Chromium Blog.
  35. Lucian Constantin (8 березня 2011). Google Chrome 10 Brings Major Security Improvements (англійською) . Softpedia. Архів оригіналу за 13 серпня 2011. Процитовано 5 квітня 2011. The new Google Chrome 10.0.648.127 is the first version of the browser to automatically disable outdated plug-ins by default, a feature first announced in June last year.
  36. Jeff Hodges; Collin Jackson, Adam Barth (18 грудня 2009 року). Strict Transport Security (англійською) . W3C. Архів оригіналу за 13 серпня 2011. Процитовано 1 квітня 2011.
  37. а б Adam Barth (26 січня 2010 року). Security in Depth: New Security Features (англійською) . The Chromium Authors. Архів оригіналу за 13 серпня 2011. Процитовано 1 квітня 2011. We've been hard at work adding proactive security features to Google Chrome, and we're particularly excited about five new security features that make it easier for developers to build secure web sites.
  38. Google Chrome and Privacy (PDF) (англійською) . Google. Архів оригіналу (PDF) за 13 серпня 2011. Процитовано 1 квітня 2011.
  39. Ian Fette (14 листопада 2008 року). Understanding Phishing and Malware Protection in Google Chrome (англійською) . The Chromium Authors. Архів оригіналу за 13 серпня 2011. Процитовано 2 квітня 2011.
  40. Lee Mathews (5 квітня 2011). Google Chrome and Chromium add protection against malicious downloads (англійською) . DownloadSquad. Архів оригіналу за 9 квітня 2011. Процитовано 9 квітня 2011. If a download link appears in the Safe Browsing blacklist, Chrome and Chromium will warn users against downloading--a save button is still presented, of course, in case you're convinced a file is perfectly safe to download.
  41. Налаштування конфіденційності та безпеки: Налаштування зображень, JavaScript та іншого вебвмісту (російською) . Google. Архів оригіналу за 13 серпня 2011. Процитовано 2 квітня 2011.
  42. Налаштування конфіденційності та безпеки: Видалення кешу і інших даних вебперегляду (російською) . Google. Архів оригіналу за 13 серпня 2011. Процитовано 2 квітня 2011.
  43. Eric Lawrence (27 січня 2009). IE8 Security Part VII: ClickJacking Defenses (англійською) . MSDN. Архів оригіналу за 13 серпня 2011. Процитовано 5 грудня 2010.
  44. Eric Lawrence (2 липня 2008). IE8 Security Part V: Comprehensive Protection (англійською) . MSDN. Архів оригіналу за 13 серпня 2011. Процитовано 5 грудня 2010.
  45. Вкладки, вікна та сторінки: Режим інкогніто (прихований перегляд) (російською) . Google Inc. Архів оригіналу за 13 серпня 2011. Процитовано 2 квітня 2011.
  46. Wolfgang Gruener (21 липня 2010). Mozilla And Google Take Security Bounties To The Battlefield (англійською) . ConceivablyTech. Архів оригіналу за 4 квітня 2011. Процитовано 4 квітня 2011.