Устаревшие и удаленные API в Chrome 52

Джо Медли
Joe Medley

Почти в каждой версии Chrome мы видим значительное количество обновлений и улучшений продукта, его производительности, а также возможностей веб-платформы. В этой статье описаны изменения в Chrome 52, бета-версия которого доступна с 9 июня. Этот список может быть изменен в любое время.

Устарело завершенное событие и атрибут MediaStream, а также атрибут onended.

TL;DR: ended событие и атрибут, а также обработчик событий onended устарели, поскольку они были удалены из спецификации Media Capture and Streams .

Намерение удалить | Трекер Chromestatus | Ошибка хрома

Ни ended событие, ни обработчик onended событий не были частью спецификации WebRTC вот уже около трёх лет. Разработчики, желающие отслеживать события, должны использовать MediaStreamTracks вместо MediaStreams .

Удаление ожидается в Chrome 53.

Блокировать всплывающие окна из iframe из разных источников во время событий касания, за исключением жеста касания.

TL;DR: Chrome начнет запрещать всплывающие окна и другие конфиденциальные операции при сенсорных событиях, которые не соответствуют касанию внутри iframe с разными источниками.

Намерение удалить | Трекер Chromestatus | Ошибка хрома

По своей природе события касания могут быть неоднозначными по сравнению с соответствующими им событиями мыши. Например, если пользователь проводит пальцем по экрану, он перемещает тумблер или прокручивает представление? Некоторый сторонний контент в iframe воспользовался этой двусмысленностью, чтобы намеренно отключить прокрутку на содержащей его странице.

Чтобы бороться с этим, всплывающие окна и другие конфиденциальные операции будут запрещены при событиях касания из iframe с перекрестным происхождением. Событие touchend продолжит вести себя как прежде.

Устаревшая перегрузка postMessage()

TL;DR: ненужный и малоиспользуемый вариант интерфейса postMessage() устарел, в частности postMessage(message, transferables, targetOrigin) .

Намерение удалить | Трекер Chromestatus | Ошибка хрома

Метод postMessage() — это способ безопасного взаимодействия между скриптами страниц разного происхождения. WebKit/Blink поддерживает три версии:

  • postMessage(message, targetOrigin)
  • postMessage(message, targetOrigin, transferables)
  • postMessage(message, transferables, targetOrigin)

Последний пункт в этом списке был случайностью из истории развития и реализации спецификации. Поскольку он используется редко , он будет признан устаревшим и позже удален. Это относится как к window.postMessage() так и worker.postMessage() .

Удаление ожидается в Chrome 54.

Удалить поддержку X-Frame-Options в теги

TL;DR: Чтобы соответствовать спецификации и повысить согласованность с другими браузерами, поддержка X-Frame-Options внутри тега <meta> удаляется.

Намерение удалить | Ошибка хрома

Заголовок ответа HTTP X-Frame-Options указывает, может ли браузер отображать страницу в теге <frame> , <iframe> или <object> . Это позволяет сайту избежать кликджекинга, поскольку такие страницы не могут быть встроены в другие сайты. Текущая версия спецификации X-Frame-Options явно запрещает пользовательским агентам поддерживать это поле внутри тега <meta> .

Чтобы соответствовать спецификации и повысить согласованность с другими браузерами, поддержка X-Frame-Options внутри тега <meta> удаляется.

Удалить событие нажатия неосновной кнопки

TL;DR: неосновные щелчки мышью больше не вызывают события щелчка, но MouseEvent.button по-прежнему доступен.

Намерение удалить | Трекер Chromestatus | Ошибка хрома

Чтобы привести Chrome в соответствие со спецификацией UIEvents , мы удаляем события щелчка для неосновных кнопок мыши. Неосновные кнопки мыши различаются в зависимости от устройства. Обычно это означает что-либо кроме правой или левой кнопки мыши. Обратите внимание, что точную нажатую кнопку все равно можно получить с помощью свойства MouseEvent.button , отправленного на такие события, как mousedown или mouseup .

Удалить запросAutocomplete()

Функция requestAutocomplete() позволяла заполнять формы по требованию с помощью функции автозаполнения браузера. Однако спустя более двух лет эта возможность поддерживается только в Blink, и ее использование невелико . По этим причинам requestAutocomplete() удален в Chrome 52.

Намерение удалить