Выпуск web-браузера Chrome 31 с реализацией технологии Portable Native Client
Компания Google представила релиз web-браузера Chrome 31. Браузер построен на кодовой базе свободного проекта Chromium и отличается использованием логотипов Google, встроенной поддержкой Flash и PDF, наличием системы отправки уведомлений в случае краха, системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Основные изменения:
Включение поддержки PNaCl (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, позволяющих привязать приложение к определённым типам URL (например, можно организовать открытие ссылок на документы в web-редакторе). Также добавлен fileSystem API для доступа к содержимому локальных директорий, что позволяет организовать совместный доступ к файлам между 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 появилась возможность наглядного выявления «шумных» вкладок, в которых воспроизводится звук. На подобных вкладках теперь отображается специальный значок, что позволяет быстро оценить источник звука. Кроме того, в бета-версии активирована функция автоматически блокировки вредоносных файлов.
© OpenNet