Suicide
16.11.2021, 01:35
Компания Google представила (https://chromereleases.googleblog.com/2021/11/stable-channel-update-for-desktop.html) релиз web-браузера Chrome 96 (http://www.google.com/chrome). Одновременно доступен (https://www.chromium.org/developers/calendar) стабильный выпуск свободного проекта Chromium (http://dev.chromium.org/), выступающего основой Chrome. Браузер Chrome отличается (https://code.google.com/p/chromium/wiki/ChromiumBrowserVsGoogleChrome) использованием логотипов Google, наличием системы отправки уведомлений в случае краха, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров (https://www.opennet.ru/opennews/art.shtml?num=26822). Ветка Chrome 96 будет сопровождаться 8 недель в рамках цикла Extended Stable (https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/process/release_cycle.md). Следующий выпуск Chrome 97 запланирован на 4 января.
Основные (https://support.google.com/chrome/a/answer/7679408#96) изменения (https://blog.google/products/chrome/) в (https://developer.chrome.com/blog/) Chrome (https://blog.chromium.org/2021/10/chrome-96-beta-conditional-focus.html) 96 (https://v8.dev/blog/v8-release-96):
В панели закладок, отображаемой под адресной строкой, по умолчанию скрыта кнопка Apps ("Сервисы"), позволявшая открыть страницу "chrome://apps" со списком установленных сервисов и web-приложений.
https://www.opennet.ru/opennews/pics_base/0_1636996742.png (https://www.opennet.ru/opennews/pics_base/0_1636996733.png)
Прекращена поддержка платформы Android 5.0 и более ранних версий.
Добавлена поддержка перенаправления с HTTP на HTTPS с использованием DNS (при определении IP-адресов помимо DNS-записей "A" и "AAAA" также запрашивается DNS-запись "HTTPS (https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https/00/?include_text=1)", при наличии которой браузер сразу подключится к сайту по HTTPS).
В редакции для десктоп-систем кэш перехода (Back-forward cache (https://web.dev/bfcache/)), обеспечивающий мгновенный переход при использовании кнопок "Назад" и "Вперёд", расширен (https://www.chromestatus.com/feature/5815270035685376) поддержкой навигации по ранее просмотренным страницам после открытия другого сайта.
Добавлена настройка "chrome://flags#force-major-version-to-100" для тестирования возможного нарушения работы (https://github.com/webcompat/web-bugs/labels/version100) сайтов после достижения браузером версии, состоящей из трёх цифр вместо двух (в своё время после выпуска Chrome 10 в библиотеках разбора User-Agent всплыло много проблем). При активации опции в заголовке User-Agent начинает выдаваться версия 100 (Chrome/100.0.4664.45).
В сборках для платформы Windows данные, связанные с работой сетевых сервисов (cookie и т.п.), перемещены в отдельный подкаталог "Network" в рамках подготовки к реализации механизма сетевой изоляции (Network Sandbox).
В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
Предложен (https://developer.chrome.com/origintrials/#/view_trial/4329085141809889281) объект FocusableMediaStreamTrack (будет переименован в BrowserCaptureMediaStreamTrack), поддерживающий метод focus(), при помощи которого приложения, осуществляющие захват содержимого окон или вкладок (например, программы для трансляции содержимого окон во время видеоконференций), могут получить информацию о фокусе ввода и отследить его изменение.
Реализован механизм Priority Hints (https://web.dev/priority-hints/), позволяющий задать важность того или иного загружаемого ресурса через указание дополнительного атрибута "importance" в тегах, таких как iframe, img и link. Атрибут может принимать значения "auto" и "low", and "high", которые влияют на порядок загрузки браузером внешних ресурсов.
В заголовок Cross-Origin-Embedder-Policy, управляющий режимом изоляции Cross-Origin и позволяющий определять правила безопасного использования на странице привилегированных операций, добавлена поддержка параметра "credentialless" для отключения передачи информации, связанной с учётными данными, такой как Cookie и клиентские сертификаты.
В CSS предложен (https://www.chromestatus.com/feature/5592445322526720) новый псевдо-класс ":autofill", позволяющий отследить автоматическое заполнение браузером полей в теге input (при ручном заполнении селектор не срабатывает).
Для исключения зацикливаний запросов CSS-свойства writing-mode, direction и backgrounds теперь не распространяются на viewport при применении CSS-свойства contain (https://drafts.csswg.org/css-contain/) (CSS Containment) к тегам HTML или BODY.
Добавлено CSS-свойство font-synthesis (https://drafts.csswg.org/css-fonts/#font-synthesis), позволяющего управлять возможностью синтеза начертаний (oblique, bold и small-cap), отсутствующих в выбранном семействе шрифтов.
В API PerformanceEventTiming, позволяющем получить дополнительные сведения для измерения и оптимизации отзывчивости интерфейса, добавлен атрибут InteractionID с идентификатором взаимодействия с пользователем. Идентификатор позволяет связывать разные метрики с одним действием пользователя, например, при касании к сенсорному экрану генерируется несколько событий, таких как pointerdown, mousedown, pointerup, mouseup и click, и InteractionID позволяет связать все эти события с одним касанием.
Добавлен новый тип медиавыражений (Media Query) - "prefers-contras (https://www.chromestatus.com/feature/5646323212615680)" для адаптации содержимого страницы к настройкам контрастности, выставленным в операционной системе (например, включению режима высокой контрастности).
Для обособленных PWA-приложений в манифесте добавлена поддержка необязательного поля "id" с глобальным идентификатором приложения (если поле не указано для идентификации используется стартовый URL).
Для обособленных PWA-приложений реализована возможность регистрации в качестве обработчиков URL. Например, приложение music.example.com может зарегистрировать себя как обработчик URL https://*.music.example.com и все переходы из внешних приложений по данным ссылкам, например, из мессенджеров и почтовых клиентов, будут приводить к открытию данного PWA-приложений, а не новой вкладки в браузере.
Добавлена (https://www.chromestatus.com/feature/5499765773041664) директива CSP (https://w3c.github.io/webappsec-csp/#) (Content Security Policy) wasm-unsafe-eval для управления возможностью запуска кода на WebAssembly. Применение CSP-директивы script-src теперь охватывает и WebAssembly.
В WebAssembly добавлена (https://v8.dev/blog/v8-release-96) поддержка ссылочных типов (https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md) (тип externref). Модули WebAssembly теперь могут хранить в переменных и передавать в качестве аргументов ссылки на объекты JavaScript и DOM.
В PaymentMethodData объявлена устаревшей поддержка метода платежей "basic-card", позволявшего организовать работу с любыми типами карт через единый идентификатор, без привязки к отдельным типам данных. Вместо "basic-card" предлагается использовать альтернативные методы, такие как Google Pay, Apple Pay и Samsung Pay.
При использовании сайтом API U2F (Cryptotoken) пользователю будет показываться предупреждение с информацией об устаревании данного программного интерфейса. API U2F будет отключён по умолчанию в выпуске Chrome 98 и полностью удалён в Chrome 104. Вместо API U2F следует использовать API Web Authentication (https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API).
Внесены (https://developer.chrome.com/blog/new-in-devtools-96/) улучшения в инструменты для web-разработчиков. Добавлена новая панель "Обзор CSS" (CSS Overview), в которой предлагается сводка информации о цветах, шрифтах, неиспользуемых объявлениях и медиавыражениях, а также выделяются возможные проблемы. Улучшены операции редактирования и копирования CSS. В панели Стили (Styles) в контекстное меню добавлена опция для копирования CSS-определений в форме выражений JavaScript. В панели инспектирования сетевых запросов добавлена вкладка Payload с разбором параметров запроса. В web-консоли добавлена опция для скрытия всех ошибок CORS (Cross-Origin Resource Sharing) и обеспечен вывод трассировки стека для функций async.
https://www.opennet.ru/opennews/pics_base/0_1637008174.png (https://www.opennet.ru/opennews/pics_base/0_1637008166.png)
Кроме нововведений и исправления ошибок в новой версии устранено 25 уязвимостей (https://bugs.chromium.org/p/chromium/issues/list?can=1&q=label%3ARelease-0-M96). Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer (http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer), MemorySanitizer (https://code.google.com/p/memory-sanitizer/wiki/MemorySanitizer), Control Flow Integrity (https://sites.google.com/a/chromium.org/dev/developers/testing/control-flow-integrity), LibFuzzer (https://sites.google.com/a/chromium.org/dev/developers/testing/libfuzzer) и AFL (http://lcamtuf.coredump.cx/afl/). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 60 тысячи долларов США (одна премия $15000, одна премия $10000, две премии $7500, одна премия $5000, две премии $3000, одна премия $2500, две премии в $2000, две премии $1000 и одна премия $500). Размер 5 вознаграждений пока не определён.
15.11.2021
https://www.opennet.ru/opennews/art.shtml?num=56158
Основные (https://support.google.com/chrome/a/answer/7679408#96) изменения (https://blog.google/products/chrome/) в (https://developer.chrome.com/blog/) Chrome (https://blog.chromium.org/2021/10/chrome-96-beta-conditional-focus.html) 96 (https://v8.dev/blog/v8-release-96):
В панели закладок, отображаемой под адресной строкой, по умолчанию скрыта кнопка Apps ("Сервисы"), позволявшая открыть страницу "chrome://apps" со списком установленных сервисов и web-приложений.
https://www.opennet.ru/opennews/pics_base/0_1636996742.png (https://www.opennet.ru/opennews/pics_base/0_1636996733.png)
Прекращена поддержка платформы Android 5.0 и более ранних версий.
Добавлена поддержка перенаправления с HTTP на HTTPS с использованием DNS (при определении IP-адресов помимо DNS-записей "A" и "AAAA" также запрашивается DNS-запись "HTTPS (https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https/00/?include_text=1)", при наличии которой браузер сразу подключится к сайту по HTTPS).
В редакции для десктоп-систем кэш перехода (Back-forward cache (https://web.dev/bfcache/)), обеспечивающий мгновенный переход при использовании кнопок "Назад" и "Вперёд", расширен (https://www.chromestatus.com/feature/5815270035685376) поддержкой навигации по ранее просмотренным страницам после открытия другого сайта.
Добавлена настройка "chrome://flags#force-major-version-to-100" для тестирования возможного нарушения работы (https://github.com/webcompat/web-bugs/labels/version100) сайтов после достижения браузером версии, состоящей из трёх цифр вместо двух (в своё время после выпуска Chrome 10 в библиотеках разбора User-Agent всплыло много проблем). При активации опции в заголовке User-Agent начинает выдаваться версия 100 (Chrome/100.0.4664.45).
В сборках для платформы Windows данные, связанные с работой сетевых сервисов (cookie и т.п.), перемещены в отдельный подкаталог "Network" в рамках подготовки к реализации механизма сетевой изоляции (Network Sandbox).
В режиме Origin Trials (экспериментальные возможности, требующие отдельной активации) добавлено несколько новых API. Origin Trial подразумевает возможность работы с указанным API из приложений, загруженных с localhost или 127.0.0.1, или после прохождения регистрации и получения специального токена, который действует ограниченное время для конкретного сайта.
Предложен (https://developer.chrome.com/origintrials/#/view_trial/4329085141809889281) объект FocusableMediaStreamTrack (будет переименован в BrowserCaptureMediaStreamTrack), поддерживающий метод focus(), при помощи которого приложения, осуществляющие захват содержимого окон или вкладок (например, программы для трансляции содержимого окон во время видеоконференций), могут получить информацию о фокусе ввода и отследить его изменение.
Реализован механизм Priority Hints (https://web.dev/priority-hints/), позволяющий задать важность того или иного загружаемого ресурса через указание дополнительного атрибута "importance" в тегах, таких как iframe, img и link. Атрибут может принимать значения "auto" и "low", and "high", которые влияют на порядок загрузки браузером внешних ресурсов.
В заголовок Cross-Origin-Embedder-Policy, управляющий режимом изоляции Cross-Origin и позволяющий определять правила безопасного использования на странице привилегированных операций, добавлена поддержка параметра "credentialless" для отключения передачи информации, связанной с учётными данными, такой как Cookie и клиентские сертификаты.
В CSS предложен (https://www.chromestatus.com/feature/5592445322526720) новый псевдо-класс ":autofill", позволяющий отследить автоматическое заполнение браузером полей в теге input (при ручном заполнении селектор не срабатывает).
Для исключения зацикливаний запросов CSS-свойства writing-mode, direction и backgrounds теперь не распространяются на viewport при применении CSS-свойства contain (https://drafts.csswg.org/css-contain/) (CSS Containment) к тегам HTML или BODY.
Добавлено CSS-свойство font-synthesis (https://drafts.csswg.org/css-fonts/#font-synthesis), позволяющего управлять возможностью синтеза начертаний (oblique, bold и small-cap), отсутствующих в выбранном семействе шрифтов.
В API PerformanceEventTiming, позволяющем получить дополнительные сведения для измерения и оптимизации отзывчивости интерфейса, добавлен атрибут InteractionID с идентификатором взаимодействия с пользователем. Идентификатор позволяет связывать разные метрики с одним действием пользователя, например, при касании к сенсорному экрану генерируется несколько событий, таких как pointerdown, mousedown, pointerup, mouseup и click, и InteractionID позволяет связать все эти события с одним касанием.
Добавлен новый тип медиавыражений (Media Query) - "prefers-contras (https://www.chromestatus.com/feature/5646323212615680)" для адаптации содержимого страницы к настройкам контрастности, выставленным в операционной системе (например, включению режима высокой контрастности).
Для обособленных PWA-приложений в манифесте добавлена поддержка необязательного поля "id" с глобальным идентификатором приложения (если поле не указано для идентификации используется стартовый URL).
Для обособленных PWA-приложений реализована возможность регистрации в качестве обработчиков URL. Например, приложение music.example.com может зарегистрировать себя как обработчик URL https://*.music.example.com и все переходы из внешних приложений по данным ссылкам, например, из мессенджеров и почтовых клиентов, будут приводить к открытию данного PWA-приложений, а не новой вкладки в браузере.
Добавлена (https://www.chromestatus.com/feature/5499765773041664) директива CSP (https://w3c.github.io/webappsec-csp/#) (Content Security Policy) wasm-unsafe-eval для управления возможностью запуска кода на WebAssembly. Применение CSP-директивы script-src теперь охватывает и WebAssembly.
В WebAssembly добавлена (https://v8.dev/blog/v8-release-96) поддержка ссылочных типов (https://github.com/WebAssembly/reference-types/blob/master/proposals/reference-types/Overview.md) (тип externref). Модули WebAssembly теперь могут хранить в переменных и передавать в качестве аргументов ссылки на объекты JavaScript и DOM.
В PaymentMethodData объявлена устаревшей поддержка метода платежей "basic-card", позволявшего организовать работу с любыми типами карт через единый идентификатор, без привязки к отдельным типам данных. Вместо "basic-card" предлагается использовать альтернативные методы, такие как Google Pay, Apple Pay и Samsung Pay.
При использовании сайтом API U2F (Cryptotoken) пользователю будет показываться предупреждение с информацией об устаревании данного программного интерфейса. API U2F будет отключён по умолчанию в выпуске Chrome 98 и полностью удалён в Chrome 104. Вместо API U2F следует использовать API Web Authentication (https://developer.mozilla.org/en-US/docs/Web/API/Web_Authentication_API).
Внесены (https://developer.chrome.com/blog/new-in-devtools-96/) улучшения в инструменты для web-разработчиков. Добавлена новая панель "Обзор CSS" (CSS Overview), в которой предлагается сводка информации о цветах, шрифтах, неиспользуемых объявлениях и медиавыражениях, а также выделяются возможные проблемы. Улучшены операции редактирования и копирования CSS. В панели Стили (Styles) в контекстное меню добавлена опция для копирования CSS-определений в форме выражений JavaScript. В панели инспектирования сетевых запросов добавлена вкладка Payload с разбором параметров запроса. В web-консоли добавлена опция для скрытия всех ошибок CORS (Cross-Origin Resource Sharing) и обеспечен вывод трассировки стека для функций async.
https://www.opennet.ru/opennews/pics_base/0_1637008174.png (https://www.opennet.ru/opennews/pics_base/0_1637008166.png)
Кроме нововведений и исправления ошибок в новой версии устранено 25 уязвимостей (https://bugs.chromium.org/p/chromium/issues/list?can=1&q=label%3ARelease-0-M96). Многие из уязвимостей выявлены в результате автоматизированного тестирования инструментами AddressSanitizer (http://code.google.com/p/address-sanitizer/wiki/AddressSanitizer), MemorySanitizer (https://code.google.com/p/memory-sanitizer/wiki/MemorySanitizer), Control Flow Integrity (https://sites.google.com/a/chromium.org/dev/developers/testing/control-flow-integrity), LibFuzzer (https://sites.google.com/a/chromium.org/dev/developers/testing/libfuzzer) и AFL (http://lcamtuf.coredump.cx/afl/). Критических проблем, которые позволяют обойти все уровни защиты браузера и выполнить код в системе за пределами sandbox-окружения, не выявлено. В рамках программы по выплате денежного вознаграждения за обнаружение уязвимостей для текущего релиза компания Google выплатила 13 премий на сумму 60 тысячи долларов США (одна премия $15000, одна премия $10000, две премии $7500, одна премия $5000, две премии $3000, одна премия $2500, две премии в $2000, две премии $1000 и одна премия $500). Размер 5 вознаграждений пока не определён.
15.11.2021
https://www.opennet.ru/opennews/art.shtml?num=56158