В списке рассылки разработчиков браузерного движка WebKit представлен проект WebKit2, в рамках которого планируется перейти на многопроцессную модель работы, при которой обработка разного web-контента (выполнение javascript, парсинг HTML, вывод на экран) производится в изолированных друг от друга процессах. Технология изоляции в WebKit2 очень близка по своей сути к методам, реализованным в браузере Google Chrome и отличается главным образом лишь тем, что модель разделения обработки по разным процессам будет встроена непосредственно во фреймворк, давая возможность использовать данную технологию во всех построенных на базе WebKit браузерах.
В браузерах на базе WebKit2 часть движка, ответственная за рендеринг заданного контента (web-приложения), будет выполняться в полностью изолированном окружении, исключающем получение доступа к внешним данным и влияние на обработку другого контента (например, крах движка от скрипта или плагина в одной вкладке не повлияет на другие). При этом ядро движка и интерпретатор javascript будут вынесены в отдельный процесс, взаимодействие с которым будет организовано при помощи специального IPC-механизма, т.е. логика обработки web-приложений будет отделена от базового движка. Обработка в разных процессах позволит повысить безопасность (можно изолировать обработку каждой вкладки), увеличит отзывчивость интерфейса и даст возможность обрабатывать контент параллельно, более рационально расходуя ресурсы многоядерных процессоров.
Второй целью создания WebKit2 является предоставление разработчикам API, работающего полностью в неблокируемом режиме. Т.е. разработчик вызывает определенный метод (например, рендеринга web-страницы), устанавливает callback-обработчики для заданных стадий обработки, продолжает в программе выполнение каких-то других действий, а по мере выполнения в WebKit операции, получает специальные уведомления.
Проект WebKit был основан компанией Apple в 2002 году и базировался на разработанном в рамках проекта KDE движке KHTML. В настоящее время на базе WebKit построено около десятка web-бразуеров (Safari, Google Chrome, Midori, Arora, OWB, Epiphany, BOLT Browser, Shiira ), код webKit интегрирован в такие платформы как Qt, Symbian и Android. Исходные тексты WebKit доступны под лицензиями LGPL и BSD.
Источник: opennet
|