Apple объявила о создании WebKit2

Совсем недавно компания Apple объявила в списке рассылке о создании WebKit2. Это не новый "движок", как ошибочно предполагают некоторые, а новый API, разработанный компанией Apple с чистого листа и уже используемый при разработке новых версий продуктов. Главной особенностью новой версии является то, что модель разделения процессов уже встроена, поэтому разработчикам не придётся реализовывать это своими силами, как сделали в Google Chrome.

Если говорить о стеке средств WebKit2, то его можно разделить на две части: процесс пользовательского интерфейса и веб-процесс. Теперь часть WebKit работает в процессе пользовательского интерфейса, а остальная часть вместе с WebCore и обработкой JS находится в веб-процессе. Таким образом, веб-процесс изолирован от пользовательского интерфейса. Это позволит получить улучшенную отзывчивость, стабильность, безопасность (путём создания изолированной "песочницы" для выполнения веб-процесса) и улучшенную поддержку многопроцессорных систем. И обо всём этом разработчику не требуется ломать голову - всё уже встроено в сам WebKit.

Другой особенностью нового API является отсутствие блокировок. Для достижения этого результата и сохранения всех возможностей WebKit, были использованы следующие технические решения:

  • обратные вызовы (callback) в виде уведомления клиенту - обычное уведомление, которое происходит при определённом событии и не даёт возможности что-то сделать с источником уведомления;
  • обратные вызовы в виде политик - позволяют выбрать дальнейшее действие, уведомляя страницу через объект прослушивания;
  • параметры политик - позволяют задать заранее определённые политики без использования обратных вызовов в пользовательском процессе;
  • встраиваемый код - некоторый код может быть загружен в веб-процесс в тех случаях, когда других возможностей для этого не хватает, например это удобно при доступе к DOM (находится на стадии реализации).

При этом Apple заявила, что доступный на данные момент WebCore API меняться не будет для сохранения обратной совместимости. На данный момент WebKit2 работает в MacOS X и Windows, но разработчики с радостью примут патчи для поддержки других операционных систем и платформ. Думаю, стоит сказать Apple спасибо в очередной раз за разработку передовых решений в области свободного ПО.

©  Linux.org.ru