1. Що таке рушій візуалізації Blink
Blink — це рушій візуалізації браузера з відкритим вихідним кодом, розроблений Google як форк WebKit у 2013 році. Як основний рушій компонування Chrome, він відповідає за:
- Обробка DOM: Побудова об’єктної моделі документа (Document Object Model) з HTML
- Обчислення стилів: Перетворення CSS на об’єктну модель CSS (CSS Object Model)
- Компонування: Визначення положень та розмірів елементів
- Рендеринг (Малювання): Перетворення компонування в фактичні пікселі
- Композитинг: Оптимізація рендерингу за допомогою управління шарами
Ключові архітектурні компоненти:
- Багатопроцесна архітектура (процеси рендерера)
- Рендеринг iframe поза процесом
- Ізоляція екземплярів різних сайтів
2. Blink проти інших рушіїв візуалізації
Основні рушії візуалізації в Інтернеті відрізняються архітектурою та підходом:
Особливість | Blink | WebKit | Gecko | Servo |
---|---|---|---|---|
Розробник | Apple | Mozilla | Mozilla | |
Мова | C++ | C++ | C++ | Rust |
Модель потоків | Multi-process | Multi-thread | Multi-process | Multi-thread |
Підтримка CSS | Експериментальний | Стабільний | Повна | Експериментальний |
JavaScript | V8 | JavaScriptCore | SpiderMonkey | SpiderMonkey |
Використання GPU | Розширене | Помірне | Базове | Експериментальне |
На відміну від WebKit, який централізовано обробляє всі порти платформ, Blink делегує код, специфічний для платформи, окремим постачальникам.
3. Операційні модулі Blink
Blink складається з кількох критично важливих підсистем:
- Завантаження документа
- Парсер HTML
- Сканер попереднього завантаження
- Завантажувач ресурсів
- Стилі та компонування
- Рушій стилів (будівник CSSOM)
- Побудова дерева компонування
- Інтерполяція властивостей CSS
- Графічний конвеєр
- Дерево шарів для малювання
- Композитинг з прискоренням GPU
- Растеризація (Skia)
- Інтеграція JavaScript
- Прив’язки DOM
- Система подій
- Рівень взаємодії з V8
- Веб-компоненти
- Shadow DOM
- Користувацькі елементи
- HTML-шаблони
4. Роль Blink в архітектурі браузера
Як ядро рендерингу в браузерах на базі Chromium (Chrome, Edge, Opera):
- Межа безпеки: Працює в ізольованих процесах рендерера з пісочницею
- Центр продуктивності: Обробляє оптимізацію критичного шляху рендерингу
- Реалізація стандартів: Реалізує понад 1000 специфікацій веб-платформи
- Управління пам’яттю: Реалізує partition alloc для ефективності
- Експериментальні функції: Постачається з Origin Trials для нових API
Архітектура Blink дозволяє Chrome підтримувати понад 20 000 одночасних тестів CSS, зберігаючи при цьому продуктивність рендерингу на рівні 60 кадрів/с.
Вам також може сподобатися