Инструкция
1
Сначала появляются настройки сети: JavaScript, XML парсер и Display Backend (обработка событий на экране). Это 4 независимых модуля, которые осуществляют свое функционирование в рамках графического движка. Далее программируется высокоуровневый движок, который, как и интерфейс пользователя, способен сохранять определенные данные. Существуют еще дополнительные компоненты (плагины, мультимедиа, модуль работы с почтой, помощь, инструменты разработчика и т. п.), однако они не так влияют на структуру обозревателя.
2
Каждая составная часть архитектуры находится на определенном уровне и может взаимодействовать только с ближайшим элементом. Поэтому архитектура браузера называется многоуровневой.
3
Пользовательский интерфейс является своеобразным буфером, которые существует между движком и пользователем. Именно он принимает все пожелание от юзера, дает ему все возможности и обрабатывает все его действия. Интерфейс помогает обеспечить стандартный набор функций. Высокоуровневый движок отвечает за обработку страницы, т. е. за вывод всей графической части. Также он начинает загружать страницу, обновляет их, переходит назад или вперед, работает с закладками, историей и настройками, которые влияют на работу графики.
4
Сам же графический движок является главной частью любого браузера. Он отображает содержимое ресурса и анализирует HTML и XML, учитывая влияние CSS и JS, а также других объектов (изображения, flash). На основе всех данных, которые собрал движок, осуществляется генерация макета, который пользователь видит на мониторе.
5
Компоненты сеть, JS, XML парсер являются специализированными частями программы, которые работают над соответствующими параметрам. Display Backend связан с ОС и обеспечивает вывод самой примитивной графики (скролбары, формы, оформление окон и т. п.), которая зависит от операционки.
6
Благодаря компонентной системе браузер может легко менять дизайн, легче локализовать ошибки программы, каждый компонент улучшается отдельно и не влияет на программу в целом, каждый компонент можно использовать отдельно.