Релиз web-браузера Chrome 73
13 марта 2019 года
Компания Google представила релиз web-браузера Chrome 73. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, возможностью загрузки модуля Flash по запросу, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента, системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 74 запланирован на 23 апреля.
Основные изменения в Chrome 73:
- В версию для Android добавлен режим "Lite pages", позволяющий ускорить загрузку сайтов и сократить трафик за счёт обращения через прокси в Google, на лету осуществляющий оптимизацию запрашиваемых страниц для просмотра на мобильном устройстве.
На серверы Google передаётся только URL страницы, а Cookies и параметры аутентификации обрабатываются напрямую. Оптимизация включается при активации опции "Data Saver" в настройках, после чего применяется автоматически, в зависимости от конкретных сайтов и качества канала связи.
Например, оптимизация применяется при доступе в режиме "2G" или когда страница загружается более 5 секунд. Критерии активации можно настроить при помощи опций "#force-effective-connection-type" и "#ignore-previews-blocklist" в "chrome://flags". При отображении страницы в режиме оптимизации в адресной строке высвечивается специальный индикатор "Lite", через который можно вернуться к просмотру оригинальных страниц. Режим автоматически отключается для конкретных сайтов, если пользователь часто возвращается к просмотру оригинальных неоптимизированных страниц;
- В настройках учётной записи предложена отдельная секция "Sync and Google services", в которой собраны все имеющиеся опции для управления синхронизацией данных и отправки сведений в сервисы Google. В секции также предложены новые опции "Enhanced spell check" (синхронизация добавленных пользователем слов в словарь), "Safe browsing extended reporting" (отправка в Google дополнительных данных для определения вредоносных приложений и страниц) и "Make searches and browsing better" (анонимизированный сбор телеметрии с информацией об открываемых URL);
- Усовершенствован режим просмотра "картинка в картинке" (Picture-In-Picture). Помимо видео в форме плавающего окна, которое остаётся на виду в процессе навигации в браузере, в данном режиме теперь можно отсоединить web-приложения в формате PWA (Progressive Web Apps). Например, подобным способом удобно запускать чаты, мессенджеры и и видеоконференции. По умолчанию возможность пока неактивна и ограничена тестами в режиме "Origin Trial";
- Для видео добавлено новое свойство "autopictureinpicture", позволяющее в случае предоставления должных полномочий автоматически перейти в режим Picture-In-Picture при переходе на другую вкладку и отключить данный режим при возвращении на исходную вкладку;
- В режиме Picture-In-Picture также реализована возможность показа кнопки "Skip Ad" (действие skipad в Media Session API) для отмены показа рекламной вставки (ранее воспроизведение в окне Picture-In-Picture было не интерактивным);
- Добавлена поддержка использования аппаратных мультимедийных клавиш для управления воспроизведением контента, например, для остановки, проигрывания и перехода к следующему ролику на YouTube. Для привязки обработчиков к мультимедийным клавишам предлагается использовать API Media Sessions. Возможность пока доступна в версиях для Chrome OS, macOS и Windows, а в Linux обещают добавить позднее;
- В версии для Android появился новый менеджер загрузок. Добавлена возможность наглядного отслеживания состояния загрузки - в нижней части теперь отображается специальный индикатор прогресса (раньше браузер лишь выдавал уведомление о завершении загрузки). В списке файлов обеспечен показ крупных эскизов загруженных изображений и возможность сортировки по типу контента и времени загрузки;
- В версии для Android на странице с "динозавром", отображаемой при отсутствии сетевого соединения, добавлен список рекомендаций, включающих страницы, доступные в кэше для просмотра в offline;
- В версии для macOS добавлена поддержка PWA (Progressive Web Apps, возможность обособленного запуска web-приложений как обычных программ без адресной строки и вкладок) и тёмной темы оформления интерфейса;
- Включена поддержка механизма Signed HTTP Exchanges (SXG) для организации размещения верифицированных копий web-страниц на других сайтах, выглядящих для пользователя как исходные страницы. Благодаря SXG владелец одного сайта при помощи цифровой подписи может авторизовать размещения определённых страниц на другом сайте. В случае обращения к этим страницам на втором сайте, браузер будет показывать пользователю URL исходного сайта, несмотря на то, что страница загружена с другого хоста. Подробнее см. анонс появления данной технологии;
- Объявлено устаревшим и будет удалено в следующем выпуске свойство "allow-downloads-without-user-activation", через которой можно было организовать автоматическую загрузку файлов при обработке iframe. В следующем выпуске инициирование загрузки файлов без явного действия пользователя будет запрещено, так как оно активно применялось для злоупотреблений, навязывания загрузок и подстановки частей вредоносного ПО на компьютер пользователя. Для начала загрузки обязательно потребуется клик пользователя на той же странице;
- В предоставляемых дополнениями скриптах обработки контента запрещена загрузка внешних ресурсов (Cross-Origin), не соответствующих домену страницы, в контексте которой выполняется скрипт. Для выполнения сторонних загрузок разработчикам дополнений следует применять фоновые обработчики (background pages). Изменение касается только новых дополнений и дополнений, в которых данная функциональность не была реализована ранее. Для всех дополнений изменение будет применено в одном из будущих выпусков Chrome после принятия второй версии манифеста. По приблизительной оценке изменение коснётся менее 1% дополнений, которыми пользуется более 1000 пользователей (в настоящее время белый список включает 70 дополнений);
- Добавлен HTTP-заголовок "Cross-Origin-Resource-Policy" позволяющий серверу запретить вставку отдаваемых ресурсов (например, изображений) в контексте других доменов (cross-origin и cross-site);
- Добавлен API Badging, позволяющий web-приложениям создавать индикаторы, выводимые на панели или домашнем экране. При закрытии страницы индикатор автоматически убирается. Например, подобным способом можно отображать число непрочитанных сообщений или информацию о каких-то событиях;
- Добавлен программный интерфейс, позволяющий из JavaScript-приложения динамически создавать таблицы стилей и манипулировать применением стилей. В отличие от создания таблиц стилей при помощи метода document.createElement('style') новый API добавляет средства для конструирования стилей через объект CSSStyleSheet() (Архивная копия от 19 ноября 2020 на Wayback Machine), предоставляя такие методы, как insertRule, deleteRule, replace и replaceSync. Применение CSSStyleSheet позволяет упростить манипуляции с CSS и решить проблемы с дублированием свойств, одновременным применением изменений к разным частям DOM и совместным использованием в разных компонентах;
- Предложен новый метод String.prototype.matchAll() (Архивная копия от 30 марта 2019 на Wayback Machine) для сопоставления с использованием регулярных выражений. При использовании метода match с флагом "/g" возвращается простой массив строк, но при единичном сопоставлении (без флага "/g") выводится объект с расширенными свойствами. Метод matchAll отличается от выполнения метода match с флагом "/g" тем, что он возвращает массив объектов со свойствами всех совпадений, а не массив строк;
- По умолчанию обработчики событий от колеса мыши (wheel и mousewheel) теперь создаются в пассивном режиме (как при выполнении "window.addEventListener('wheel', func, {passive: true}))", не блокирующем выполнение браузером операций прокрутки и масштабирования, что положительно сказывается на отзывчивости интерфейса. Ранее аналогичное изменение поведения по умолчанию было выполнено для обработчиков "touchstart" и "touchmove";
- В тег "link" добавлена поддержка свойств "imagesrcset" и "imagesizes" (используются только совместно со свойствами "preload" и "image"), аналогичных свойствам "srcset" и "sizes" объекта HTMLImageElement;
- В CSS и XSLT в качестве базового URL для загрузки ресурсов со вложенными путями теперь принимается URL с которого фактически был загружен CSS. Например, если в теге link указан "/styles.css", но при обращении выполняется редирект на "/foo/styles.css" то базовым для загрузки ресурсов (например, фоновых изображений) будет каталог "/foo", а не "/";
- Отрисовка свойства "blur-radius" приведена в соответствие с требованием спецификации и поведением Firefox и Safari;
- В WebSQL прекращена поддержка операций "EXPLAIN" и "REINDEX". Поведение EXPLAIN отличалось в зависимости от версий SQLite, а REINDEX был бесполезен на практике;
- В JavaSсript-движке V8 ускорена реализация операции "await" (включен по умолчанию флаг "--harmony-await-optimization") и на 20-25% сокращено время компиляции WebAssembly;
- Внесены улучшения в инструменты для web-разработчиков:
- Добавлена поддержка "точек логгирования" (Logpoints), похожих на точки останова, но в момент срабатывания сбрасывающие значения определённых переменных и объектов в отладочную консоль, без необходимости явного вызова console.log() в коде. Выражение, которое будет выведено в лог определяется в момент создания
Logpoint;
- Данные о вовлечённости тех или иных CSS и JavaScript файлов в процесс выполнения ( coverage) теперь могут быть экспортированы в формате JSON;
- Во вкладке "Sensors" появилась возможность переопределения отдаваемых web-приложениям данных о местоположении пользователя;
- В панелях Sources и Network добавлена функция сворачивания блоков кода. В панели Network вкладка Frames, используемая для инспектирования соединений WebSocket, переименована в Messages.
- В список опционально доступных поисковых систем добавлен сервис DuckDuckGo, примечательный отказом от использования методов персонализации вывода и обеспечивающий вырезание данных, которые могут использоваться для отслеживания предпочтений и перемещений пользователя.
Кроме нововведений и исправления ошибок в новой версии устранено 60 уязвимостей. Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer, MemorySanitizer, Control Flow Integrity (Архивная копия от 28 октября 2020 на Wayback Machine), LibFuzzer (Архивная копия от 28 октября 2020 на Wayback Machine) и AFL. Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 18 премии на сумму 13500 долларов США (одна премия $7500, четыре премии $1000 и четыре премии $500). Размер 9 вознаграждений пока не определён.
Источники
[править]Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.