Это третья часть руководства по нововведениям в браузере IE9. В первой части я рассмотрел поддержку стандартов CSS, HTML5, DOM, вторая часть была посвящена реализации в IE9 технологии SVG. В третьей завершающей части я расскажу про поддержку в IE9 нового стандарта веб-шрифтов WOFF, ICC-профилях, форматов TIFF и JPEG XR, изменениях в JavaScript-движке, инструментах разработчика и об интерфейсе пользователя в IE9.
Веб-шрифты и WOFF
История внедрения произвольных шрифтов в веб-страницы имеет давние корни. Для многих будет откровением узнать, что первым браузером реализовавшим свойство @font-face из CSS2 был Internet Explorer 4.0 выпущенный 13 лет назад в 1997 году. Однако, из-за того, что технология не получила широкого распространения, @font-face был убран из спецификации CSS 2.1, но реализация этого свойства была во всех версиях IE начиная с 4.0.
Надо заметить, что формат шрифта для внедрения в IE не совсем обычный. Он называется Embedded OpenType, является подмножеством формата OpenType и был разработан с целью иметь возможность защитить авторское право на шрифты, а так же позволить уменьшить размер файла шрифта с помощью сжатия и исключения неиспользуемых символов. Файлы eot получались значительно меньше своих собратьев из форматов TrueType и OpenType. Формат EOT был отправлен на стандартизацию в W3C как открытый формат в 2008 году.
@font-face вернулся в спецификации CSS3 и получил реализацию в остальных браузерах только с версий Firefox 3.5+, Safari 3.1+, Opera 10+ и Chrome 4.0+. Однако, в отличии от Internet Explorer, эти браузеры позволяют внедрять шрифты форматов TrueType (TTF) и OpenType (OTF). Проблема авторского права и огромного размера некоторых шрифтов в этом случае не решается.
Новым поколением технологии веб-шрифтов должен стать стандарт WOFF (Web Open Font Format). 8 апреля 2010 года Microsoft, Mozilla и Opera вместе отправили спецификацию WOFF 1.0 в W3C. Это запрос был размещен на сайте W3C 19 апреля. WOFF предлагает те же возможности, что и EOT: он базируется на sfnt, в нем, с помощью специальных инструментов, может быть сокращен набор символов, он сжимается с помощью zlib и у него есть необязательная секция, которую могут использовать авторы для размещения зашифрованных или любых других данных.
Формат WOFF поддерживается в Firefox 3.6 и будет поддерживаться в Internet Explorer 9.
Поддержка TIFF и JPEG XR
Internet Explorer 9 нативно поддерживает форматы изображений TIFF и JPEG XR. Кроме того, IE9 использует декодирование изображений через Windows Imaging Component (WIC), что позволяет увеличить скорость декодирования до 30%.
Если с TIFF все понятно и широкоизвестен, то JPEG XR – это новый стандарт, который еще не получил широкого распространения. JPEG XR – это стандарт ISO/IEC 29199-2:2009 и часть стандарта ITU-T T.832:2009. Разработанный в Microsoft, этот стандарт значительно улучшает старый JPEG-формат и добавляет к нему множество возможностей. Основным преимуществом JPEG XR является то, что при одинаковом с JPEG размером файлов, он предлагает гораздо лучшее качество картинки. Убедится в этом можно на этой тестовой странице для Internet Explorer 9. Там же демонстрируется и поддержка браузером формата TIFF.
ICC-профили
Известная международная организация International Color Consortium стандартизирует форматы ICC profiles. Как сообщает wikipedia: “системы следующие спецификации позволяют сохранить точное цветовоспроизведение при использовании различных приложений и устройств от фазы создания до окончательной печати. Устройству ответственному за цветопередачу соответствует свой ICC-профиль”.
Таким образом поддержка ICC-профилей необходима для точной цветопередачи. И Internet Explorer 9 реализует такую поддержку для ICC v2 и ICC v4. Простой официальный тест от организации ICC позволит определить насколько точно передает цвета ваш браузер и какой версии ICC-профили он поддерживает, если вообще поддерживает.
Chakra – новый JavaScript-движок IE9
На конференции MIX10 Microsoft, помимо всех прочих нововведений в браузер, анонсировал новый JavaScript-движок под названием Chakra. Этот движок даже на ранней стадии показывал отличные результаты производительности обгоняя IE8 в 7 раз. Улучшения в Platform Preview 2 только закрепили успех.
В чем же особенности Chakra:
— фоновая компиляция JavaScript и использование многоядерных процессоров. При запуске приложения IE9 загружает страницу используя быстрый интерпретатор одновременно с этим фоновый компилятор компилирует JS-код в машинный код и возвращает его назад по завершении. Таким образом, браузер не ждет результата компилятора при запуске страницы и первая загрузка страницы происходит быстрее;
— для оптимизация типов движок IE9 использует техники, которые применяются сегодня в динамических языках: type representation, polymorphic inline caching, dynamic type inference и т.д;
— быстрый интерпретатор используется там, где необходимо немедленное исполнение кода на странице, он использует эффективный opcode, оптимизации с типами, register-based движок позиционирования;
— значительно улучшены все компоненты библиотек JS: для работы со строками, объектами, массивами, особенно регулярными выражениями.
Некоторые подробности нового движка Chakra можно узнать в этом видео: Inside IE 9’s High Performance JavaScript Engine. Там же можно посмотреть и другие видео, которые касаются Internet Explorer 9.
Инструменты разработчика
То что IE8 включил в себя инструменты разработчика – было большим шагом вперед, в них было несколько инновационных вещей для того времени, например профилировщик JavaScript. Однако, производительность инструментов сильно зависела от сложности HTML-страницы. На больших страницах инструменты тормозили и работать с ними было невозможно.
Другой претензией к инструментам разработчика IE8 было отсутствие возможности мониторинга и анализа HTTP-запросов/ответов. Было приятно узнать, что в IE9 такой инструмент появился.
Кроме того, работа со страницами с очень большим DOM тоже была улучшена, хоть и не настолько, насколько хотелось бы. Будем надеяться, что к финальной версии производительность подтянут. Из мелочей, который хотелось бы еще отметить:
— возможность менять Agent String
— появилась JavaScript-консоль (как справедливо заметили, она была и в IE8, но теперь ее сделали отдельной вкладкой)
В двух тестовых сборках IE9 не было вкладки профилировщика JavaScript, но разработчики обещают, что эта функция вернется улучшенной и обновленной.
Внешний вид
Этот раздел полностью мои подозрения, которые могут не иметь ничего общего с действительностью. Дело в том, что текущие тестовые сборки IE9 представлены в неприглядном виде: нет элементов управления, нельзя перейти назад в истории просмотра, нет строки ввода адреса (адрес вводится по ctrl+o).
Такому виду я нахожу два разумных объяснения:
— упрощение сделано намеренно, чтобы тестовые версии не использовались на практике и не разошлись среди обывателей, что может привести потмо к трудностям к переводу их на финальные версии. Другими словами, внешний вид IE9 сделан хардкорным для того, чтобы им пользовались только разработчики в целях тестирования;
— упрощение сделано вынуждено из-за того, что внешний вид IE9 в конечном варианте будет кардинально отличаться от IE8. Он либо не готов, либо его не хотят заранее светить, готовя сюрприз на определенное время.
Мне больше нравится вторая гипотеза. Я подозреваю, что IE9 получит WPF-интерфейс (GPU-ускоренный, естественно, как и все в WPF) с кучей визуальных эффектов. Не многие знают, что у Microsoft уже есть браузер построенный на WPF с кардинально новым интерфейсом и парой откровенно удачных решений. Это браузер – Pivot.
Предназначенный для работы с pivot-данными, он все же позволяет пользоваться им как обычным браузером. Нововведений относительно IE8 в нем много: табы в виде миниатюр внизу, тегирование страниц и работа с ними в виде pivot-данных, функциональный скролл, который если потянуть влево уменьшит масштаб страницы вплоть до полного его умещения в экране и т. д. В общем, рекомендую скачать и оценить самим.
Мне нравятся многие идеи Pivot, но он тяжелый и явно не оптимизирован ни на что кроме работы с pivot-данными. Однако, я надеюсь, что Microsoft сделает из IE9 что-то похожее на Pivot в плане интерфейса, использовав лучшие его идеи.
Другой спекуляцией на мой взгляд может стать возможность расширения будущего IE9. Если интерфейс будет кардинально модифицирован, то претерпит изменение и система плагинов в IE. Я надеюсь, что будущая система расширений будет построена на новой удачной архитектуре MEF, которая доступна в .NET 3.5 и 4.0.
Заключение
В трех статьях я постарался рассказать про то, что именно ждет разработчиков и пользователей в новом Internet Explorer 9. Работа над ним продолжается, но и сейчас заметен тот огромный прогресс в функционале, который проделали разработчики браузера внедряя поддержку множество новых для IE вещей и механизмов. Поддержка CSS3/HTML5/SVG, новый очень быстрый JavaScript-движок, GPU-ускорение и возможно, новый внешний вид – это то, что нас ждет в IE9.
Совсем скоро, в середине или конце июня будет доступна третья тестовая версия IE9, в которой ожидается появление поддержки HTML5 video и прочих нововведений. Я буду держать вас в курсе дел и продолжу этот цикл статей с новой порцией информации.