Google выпустила бета-версию Chrome 89, добавив дополнительные API взаимодействия с аппаратным обеспечением. Mozilla и Apple выступили с критикой этих функций.
API WebHID (Human Interface Devices) в Chrome позволит разработчикам писать JavaScript для взаимодействия с такими устройствами, как игровые планшеты или клавиатуры, с использованием логики устройства, вместо того, чтобы полагаться на устройства для реализации стандартных API, таких как Gamepad API.
Как пояснила команда Chrome, входы и выходы геймпада недостаточно стандартизированы, а веб-браузеры часто требуют настраиваемой логики для конкретных устройств.
В Chrome 89 также поддерживается Web NFC (Near Field Communications). Это означает, что веб-приложения могут читать и записывать теги NFC. Приложения включают в себя сканирование NFC на мероприятиях, предоставление услуг или направление пользователей к дополнительному контенту.
Еще одна новая функция — Web Serial API, который обеспечивает прямую связь между веб-приложениями и устройствами с последовательными портами. Это дополнение к API WebUSB, который поддерживается начиная с Chrome 61, но не поддерживается в Firefox или Safari по соображениям безопасности и конфиденциальности.
API-интерфейсы веб-обмена, уже реализованные для Chrome на Android (начиная с Chrome 75), теперь добавлены в Windows и Chrome OS. Идея состоит в том, чтобы заменить кнопки отображения веб-сайтов для обмена контентом в Twitter, Facebook и других соцсетях одной кнопкой «Поделиться».
Эта функция также позволяет обмениваться файлами, такими как графические или текстовые документы. Firefox не поддерживает совместное использование в Интернете, но такая функция есть в Microsoft Edge (версии 81 и выше) и Safari (12.1 и выше в macOS, 12.2 в iOS).
Встроенную поддержку декодирования изображений AVIF ранее уже анонсировали в Chrome на Android (до этого она появилась в настольной версии Chrome). Она появится также в версии Firefox 86.
Также изменились некоторые настройки CSS. Движок JavaScript V8 обновлен до версии 8.9, что улучшает процесс импорта модулей.
Расширенная поддержка устройств в Chrome еще больше сокращает разрыв между веб-приложениями и собственными приложениями, но также увеличивает потенциальный риск атак.
Например, Mozilla считает WebUSB API потенциально опасным. Компания заявила, что риски безопасности, связанные с раскрытием USB-устройства, подключенных к Интернету, слишком широки.
Другие API-интерфейсы, которые Mozilla считает вредоносными, включают Serial API и Web NFC.
Проблема состоит в том, что при обнаружении неработающих в Firefox функций, которые при этом поддерживаютcя Chrome, пользователи будут выбирать последний.
Команда Apple WebKit также выступает против внедрения некоторых API, включая Web NFC, Web HID, Serial API и WebUSB, «из-за снятия ими цифровых отпечатков и других проблем».
Стоит отметить, что в декабрьскую бета-версию Chrome 88 Google включила Manifest V3. Теперь разработчики расширений смогут протестировать изменения, затрагивающие блокировку рекламы, производительность и конфиденциальность пользователей. Разработчики критиковали нововведение, так как оно ограничивает возможности блокировки контента по API webRequest, используемого блокировщиками рекламы вроде uBlock Origin и Ghostery.