Выпуск web-браузера Chrome 35, перешедшего на графический стек Aura в Linux
Основные изменения:
- В версии браузера для Linux задействован кросс-платформенный графический стек Aura, который давно используется в Chrome OS и сборках для платформы Windows. Переход с GTK+ на Aura позволяет перейти к использованию единой унифицированной графической подсистемы и решить давно наблюдаемые проблемы с излишне высоким потреблением памяти GPU и производительностью рендеринга в Linux. В частности, при использовании Aura применяется один контекст OpenGL для целого окна, вместо использования одного контекста OpenGL для каждой вкладки.
Aura берёт на себя функции оконного менеджера (Aura shell), работающего через собственный композитный сервер, использующий доступные средства GPU для ускорения графических операций, и графического тулкита (Aura UI) для формирования элементов интерфейса, предоставляя собственный набор виджетов, диалоговых окон, элементов управления и обработчиков событий. Из подсистем нижележащего графического стека (X11, Wayland, Mir, Cocooa или Windows) затрагивается только вывод поверх корневого окна;
- В версии для Linux полностью удалён код для обеспечения поддержки NPAPI-плагинов (Netscape Plugin Application Programming Interface). Для Windows и OS X удаление поддержки NPAPI будет произведено до конца года. Причиной заблаговременного прекращения поддержи NPAPI в версии для Linux является переход с GTK+ на Aura. В качестве альтернативы NPAPI компания Google продвигает PPAPI (Pepper API), который разработан для устранения проблем с переносимостью и производительностью классического NPAPI, а также для упрощения создания плагинов, работающих в виде отдельных процессов;
- Добавлена поддержка порции новых возможностей, развиваемых в рамках стандарта ECMAScript 6:
- Promise - механизм для получения значений в асинхронном режиме. Позволяет определить значение, которое пока неизвестно, но будут определено через какое-то время;
- WeakMap - определяет коллекцию пар ключ/значение в которых ключ является объектом, к которому может быть прикреплено произвольное значение;
- WeakSet - определяет множество из объектов. WeakSet и WeakMap отличаются использованием эффективных с точки зрения потребления памяти структур, использующих сборщик мусора для удаления неиспользуемых объектов (объект удаляется, если на него больше не осталось ссылок, кроме ссылки из текущей коллекции) и предотвращающих возникновение утечек памяти;
- Реализация API Shadow DOM избавлена от специфичного для webkit префикса. Shadow DOM предоставляет средства для манипулирования функциональными границами между DOM-деревьями и тем, как эти деревья взаимодействуют друг с другом в рамках одного документа. При помощи Shadow DOM можно ограничить область действия разметки HTML и CSS, скрыть детали реализации сложных элементов, создать собственные элементы и API на основе API Custom Elements, не заботясь о том, что виджеты могут нарушить разметку других частей страницы из-за конфликта селекторов CSS;
- Поставка варианта Web Audio API, доступного без специфичного для браузера префикса. Для разработчиков теперь доступны рекомендованные W3C вызовы audioContext и offlineAudioContext, которые ранее также были добавлены в Firefox. Web Audio API позволяет динамически генерировать в web-приложениях различные пространственные звуковые эффекты и смешивать несколько источников звука, виртуально размещенных в различных точках пространства. Web Audio API открывает двери для создания мощных web-приложения для обработки звука и, в сочетании с canvas 2D и WebGL 3D, обеспечить современное звуковое оформление для игр, выполненных только с использованием web-технологий;
- Поддержка генерации событий после завершения загрузки шрифтов, что предоставляет разработчику возможность контролировать степень корректности отображение контента, использующего внешние шрифты;
- Для SVG-изображений добавлена поддержка свойства 'paint-order', позволяющего определить порядок отрисовки и заливки элементов;
- Поддержка обработки отдельного события при прокрутке колеса мыши при нажатой клавише Ctrl. Например, указанная комбинация часто используется для масштабирования карт, отдельное событие позволит web-приложению масштабировать только карту, вместо масштабирования содержимого окна;
- Проведена чистка кодовой базы от устаревших и не используемых возможностей, таких как привязанный к HTMLVideoElement и снабжённый префиксом вариант Fullscreen API, конструктор TextTrackCue, тег isindex, старый API вывода уведомлений, document.createAttributeNS, Attr.isId, ownerElement;
- В Chrome для Android добавлена возможность восстановления по ошибке закрытых вкладок, реализованы элементы управления воспроизведением видео в полноэкранном режиме, добавлена поддержка устройств, позволяющих работать с несколькими окнами.
- Добавленная в бета-выпуски поддержка CSS-свойства touch-action отложена до версии Chrome 36. Touch-action позволяет управлять вводом через сенсорный экран, в том числе отфильтровывать связанные с экранными жестами события, например, выборочно отключать для определённых частей контента прокрутку и такие жесты, как масштабирование щипком и двойным касанием.
Кроме нововведений и исправления ошибок, в новой версии устранено 23 уязвимости. Ни одной уязвимости не присвоен статус критической проблемы, позволяющей обойти все уровни защиты браузера и совершить атаку на систему пользователя. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 8 премий на сумму 9500 долларов США (две премии по $3000, три по $1000 и одна $500).
Источник: http://www.opennet.ru/opennews/art.shtml?num=39823
|
0 | Tweet | Нравится |
|