Выпуск web-браузера Chrome 31 с реализацией технологии Portable Native Client
12 ноября 2013 года
Компания Google представила релиз web-браузера Chrome 31. Браузер построен на кодовой базе свободного проекта Chromium и отличается использованием логотипов Google, встроенной поддержкой Flash и PDF, наличием системы отправки уведомлений в случае краха, системой автоматической установки обновлений и передачей при поиске RLZ-параметров.
Основные изменения:
- Включение поддержки PNaCl (Архивная копия от 7 октября 2013 на Wayback Machine) (Portable Native Client) в настольных версиях Chrome, которая позволяет организовать выполнение приложений, написанных на языках C и С++, в специальном изолированном окружении web-браузера, независимо от текущей аппаратной архитектуры. Например, скомпилированный для PNaCl исполняемый файл может быть выполнен в различных версиях Chrome и Chrome OS, независимо от аппаратной архитектуры (x86, x86_64, ARM, MIPS) и типа операционной системы, демонстрируя при этом производительность, близкую к родному для данной целевой платформы исполняемому файлу.
В PNaCl вместо генерации машинного кода приложение компилируется в универсальный биткод(недоступная ссылка) LLVM и поставляется в непривязанном к конкретной платформе исполняемом формате ".pexe". В процессе запуска приложения промежуточный биткод LLVM транслируется в машинный код текущей платформы на стороне локальной системы пользователя. Вынос стадии генерации машинного кода на сторону клиента позволяет разработчику не задумываться о низкоуровневых оптимизациях и поддержке новых архитектур - новые методы оптимизации и поддержка новых аппаратных платформ производится без пересборки пользовательского приложения, через обновление транслятора. Вместо стандартной системной Си-библиотеки в PNaCl предлагается к использованию многоплатформенная библиотека newlib, развиваемая компанией Red Hat;
- Для приложений Chrome Apps добавлена поддержка обработчиков URL (Архивная копия от 31 декабря 2013 на Wayback Machine), позволяющих привязать приложение к определённым типам URL (например, можно организовать открытие ссылок на документы в web-редакторе). Также добавлен fileSystem API (Архивная копия от 13 февраля 2014 на Wayback Machine) для доступа к содержимому локальных директорий, что позволяет организовать совместный доступ к файлам между web-приложением и нативными программами (например, web-редактор кода может быть сопряжен с нативным клиентом Git). При использовании fileSystem API запрашивается подтверждение от пользователя;
- В версии Chrome для платформы Android появилась поддержка создания ярлыков для запуска программ в полноэкранном режиме. Ярлыки позволяют разместить на домашнем экране Android ссылки для быстрого открытия сайтов или web-приложений в браузере. В отличие от ранее поддерживаемых схем, новая возможность позволяет открыть связанные с ярлыком сайты или web-приложения в отдельном полноэкранном окне, лишённом традиционных элементов управления браузером (без адресной строки, вкладок, меню и кнопок). Для добавления ярлыка на домашний экран в меню Chrome добавлена специальная кнопка;
- В версии для Android, Windows и Chrome OS добавлена поддержка вызова requestAutocomplete(), созданного для организации управления процессом автозаполнения форм ввода, что может быть использовано для отдельной обработки ранее вводимых данных для заполнения форм с параметрами платежей (например, разработчик может определить какую платёжную систему ранее использовал пользователь и сформировать заполненный шаблон). Имена автоматически заполняемых атрибутов задаются через свойство autocomplete в тегах input и select. При доступе к данным автозаполнения пользователю выводится предложение подтвердить операцию;
- Для WebRTC добавлена поддержка протокола SCTP для организации канала передачи данных, допускающего прямую P2P-передачу данных между браузерами клиентов;
- Добавлена поддержка прозрачности для видео WebM (например для воспроизведения кадров, снятых на фоне зелёного экрана, поверх статичной картинки);
- В Chrome для Android добавлена поддержка JavaScript Web Speech API с реализацией средств для распознавания речи;
- Возможность создания непрозрачных canvas при задании атрибута "{ alpha: false }" в getContext('2d');
- В 2D canvas добавлена поддержка метода "ellipse";
- Снят экспериментальный префикс с реализации Media Source API, предоставляющей средства для локальной генерации мультимедийных потоков из JavaScript-приложений. Поддержка динамического формирования контента для тегов video и audio открывает новые возможности для разработчиков web-приложений, упрощая реализацию адаптивного потокового вещания и смещённых во времени live-трансляций.
Кроме нововведений и исправления ошибок, в новой версии устранено 27 уязвимостей, из которых 21 проблема помечена как опасная, а одной уязвимости присвоен статус критической проблемы, позволяющей обойти все уровни защиты браузера и совершить атаку на систему пользователя. Критическая проблема и 16 опасных уязвимостей выявлены сотрудниками Google в процессе внутреннего аудита кодовой базы. В процессе аудита также были выявлены уязвимости во внешних компонентах libjpeg, libjpeg-turbo и libjingle, код которых используется в Chrome.
В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 7 премий на сумму 15000 долларов США (одна премия в $4000, две по $2000, две по $1000 и две по $500, плюс две поощрительные надбавки по $2000).
Тем временем, в бета-версии Chrome 32 появилась возможность наглядного выявления "шумных" вкладок, в которых воспроизводится звук. На подобных вкладках теперь отображается специальный значок, что позволяет быстро оценить источник звука. Кроме того, в бета-версии активирована функция автоматически блокировки вредоносных файлов.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.