Просматривая одно из обучающих видео «школы разработки интерфейсов» Яндекса, наткнулся на ссылку на на офигенный труд израильской веб-программистки Тали Гарсиэль (Tali Garsiel) "How browsers work" (Как работают браузеры).
Она в течении нескольких лет отслеживала всю издаваемую информацию о внутреннем устройстве браузеров, изучала исходный код WebKit и Gecko и, в конце концов, собрала все воедино. Вот что пишет сама Тали:
Когда на 90% компьютеров был установлен IE, приходилось мириться с тем, что это загадочный «черный ящик», однако теперь, когда более половины пользователей выбирает браузеры с открытым исходным кодом, пришло время разобраться, что скрывается у них внутри, в миллионах строк программного кода на C++...
Пролистав, я был поражен — отличная работа. Внутреннее устройство браузеров, алгоритмы разбора — все хорошо иллюстрировано, доступно и понятно. И без излишних подробностей, страниц на 20-30. Как раз то, что нужно. Решил — это надо обязательно перевести. Покопался еще немного — оказалось перевод уже как 1,5 года есть!
Возможно для кого-то это давно уже не новость, но, надеюсь, для тех, кто не слышал, будет полезно (на хабре упоминаний не нашел).
Под катом содержание перевода, чтобы решить читать или нет.
Содержание
- Введение
- Модули отображения
- Основная схема работы
Синтаксический анализ: общие сведения
- Грамматика
- Синтаксический и лексический анализаторы
- Перевод
- Пример синтаксического анализа
- Формальное определение словаря и синтаксиса
- Типы синтаксических анализаторов
- Автоматическое создание синтаксических анализаторов
Синтаксический анализатор HTML
- Определение грамматики HTML
- Контекстная грамматика
- DTD в HTML
- DOM
- Алгоритм синтаксического анализа
- Алгоритм лексического анализа
- Алгоритм построения дерева
- Действия после синтаксического анализа
- Обработка ошибок браузерами
Порядок обработки скриптов и таблиц стилей
- Система «грязных битов»
- Глобальная и инкрементная компоновка
- Синхронная и асинхронная компоновка
- Оптимизация
- Процесс компоновки
- Расчет ширины
- Перенос строк
- Глобальная и инкрементная отрисовка
- Порядок отрисовки
- Список отображения Firefox
- Хранилище прямоугольников в WebKit
Автор: zag2art