Хакер #305. Многошаговые SQL-инъекции
Spartan — самая важная разработка Microsoft для веба со времён выпуска Internet Explorer в 1995 году. Один из ведущих программистов этого проекта Якоб Росси (Jacob Rossi) впервые раскрыл технические подробности о движке рендеринга Spartan.
Программист признаёт, что IE оставил недобрую память у веб-разработчиков из-за своих багов, хаков и грязных обходных трюков. В то же время следует помнить, что IE привнёс много инноваций, изменив Сеть к лучшему: именно в нём впервые появилась поддержка CSS, динамических скриптов HTML и DOM, AJAX/XMLHttpRequest, драг-н-дропа, innerHTML, аппаратного ускорения и др.
Тем не менее, пришло время двигаться дальше и оставить Internet Explorer в прошлом вместе со старым движком рендеринга Trident. Для нового браузера Spartan создаётся совершенно новый движок EdgeHTML.dll. Он уже интегрирован в Windows 10 и отделён от движка Trident (MSHTML.dll), на котором десятилетиями работал IE и который чрезмерно загружен наследием IE5.5, IE7, IE8, IE9 и IE10.
Spartan будет поддерживать стандарты IE11 как базовую платформу. Разработчики Microsoft наконец-то получили право удалять код — «любимый катарсис каждого программиста», пишет Якоб Росси. В течение нескольких предыдущих месяцев остатки наследия IE удалены из нового движка. Среди прочего, удалены режимы документов, подсистема эмуляции IE8, VBScript, attachEvent, X-UA-Compatible, currentStyle и многое другое.
Якоб Росси считает, что очистка Trident до версии Spartan прошла гораздо более радикально, чем очистка WebKit до версии Blink.
В то же время Microsoft старается обеспечить кроссбраузерную совместимость кода Spartan. На данный момент исправлено более 3000 проблем несовместимости, некоторые из которых берут начало в 90-е годы. Например, исправлена давняя проблема с innerHTML.
Идёт работа над внедрением более 40 новых веб-стандартов. Вот некоторые из технологий, поддерживаемых Spartan.
- Preserve-3d
- Самая продвинутая поддержка ES6 на сегодняшний день
- XPath
- Web Audio
- Media Capture API
- Web RTC 1.1 (ORTC)
- Touch Events
- Content Security Policy
- HTTP/2
В то же время Windows 10 сохранит поддержку движка Trident для корректного отображения старых корпоративных сайтов.