Разработчики из компании Apple поделились информацией о проекте WebKit2, в ходе которого планируется существенно модернизировать популярный браузерный движок WebKit. Среди главных целей, которые ставит проект WebKit2, стоит выделить новую «модель расщепления процессов» и так называемый «неблокирующий» программный интерфейс API. Впервые модель расщепляемых процессов была представлена в браузере Gooogle Chrome в конце 2008 года. В рамках этой модели каждое отдельное представление (в данном случае – вкладка браузера) работает в собственном процессе. Главное преимущество такого подхода заключается в повышенной устойчивости браузера к различным ошибкам и сбоям. Например, если недоработанный подключаемый модуль или ошибка в механизме рендеринге приведут к аварийной ситуации, закроется только одна вкладка, а остальные продолжат работу. Подобные механизмы уже реализованы в браузере IE8, для браузера Firefox существует проект Electrolysis, а вот в браузере Apple Safari расщепление процессов реализовано лишь частично.
Другая цель проекта WebKit2 – реализация нового интерфейса API для доступа к механизму рендеринга без блокирования остальных процессов основного приложения. Это означает, что разработчики смогут обращаться к методам API с использованием самых разных способов получения отклика (callback) от окон с WebKit-представлениями. Пока рендеринг веб-страницы не закончен, приложение может выполнять другие действия в ответ на команды пользователя. Действия приложения для загруженной и отображенной веб-страницы запустятся только тогда, когда ядро WebKit2 сообщит этому приложению о наступлении нужного события. Теоретически, новый подход должен привести к созданию приложений, быстрее реагирующих на действия пользователя – ускорение реакции обеспечивается за счет более продуманной системы откликов ядра WebKit на команды извне, приложение продолжает работу, ожидая обратного вызова от представления WebKit через шину событий. Сейчас уже реализовано три типа обратных вызовов WebKit – клиентские обратные вызовы в форме оповещений, клиентские обратные вызовы в форме политик и работа с вызовами через единую политику приложения. Ведется работа и над четвертой формой обратных вызовов – «инъекция кода», – которая позволит напрямую обращаться к объектной модели документа DOM.
Основное преимущество технологии WebKit2 заключается в том, что все передовые возможности внедрены в само ядро рендеринга, так что ими смогут воспользоваться все приложения на базе WebKit2. Интересно, что, по официальным данным, ядро WebKit2 пока поддерживается только на платформах Windows и OS X – то есть только там, где официально поддерживается браузер Apple Safari. Поддержка Linux пока не заявлена.
Источник