SUPER_OLEG_DEV Telegram 122
Привет!

Заметка про Client Hints API

Переходили на это API на сервере, с фаллбэком на парсинг User-Agent через ua-parser-js, как было раньше.
На сервере это HTTP заголовок sec-ch-ua который легко разобрать.

Также недавно интегрировали на клиенте, там данные доступны в navigator.userAgentData.

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

Столкнулся с проблемой мокирования User-Agent и взаимодействия с этой апишкой в следующих кейсах:
- в Chrome Devtools при эмуляции мобильных устройств
- в Playwright при использовании кастомного User-Agent

Проблема следующая - navigator.userAgentData не синхронизируется с navigator.userAgent:
- для устройств с Chrome и Android, где поддержка Client Hints есть, пишет реальную версию текущего браузера, хотя в UA условно 80й хром
- для IOS + Safari - вместо undefined, как должно быть если апишка не поддержкивается, возвращает бесполезный объект с пустым массивом brands и пустой строкой в platform

Пример проблемы - https://github.com/microsoft/playwright/issues/14361

Такая вот не приятная особенность, усложняет и внедрение использования этой апишки в приложение с существующими тестами, и локальную проверку в браузере, решается только мокированием или использованием реального браузера.

Надеюсь будет полезно!
👍7



tgoop.com/super_oleg_dev/122
Create:
Last Update:

Привет!

Заметка про Client Hints API

Переходили на это API на сервере, с фаллбэком на парсинг User-Agent через ua-parser-js, как было раньше.
На сервере это HTTP заголовок sec-ch-ua который легко разобрать.

Также недавно интегрировали на клиенте, там данные доступны в navigator.userAgentData.

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

Столкнулся с проблемой мокирования User-Agent и взаимодействия с этой апишкой в следующих кейсах:
- в Chrome Devtools при эмуляции мобильных устройств
- в Playwright при использовании кастомного User-Agent

Проблема следующая - navigator.userAgentData не синхронизируется с navigator.userAgent:
- для устройств с Chrome и Android, где поддержка Client Hints есть, пишет реальную версию текущего браузера, хотя в UA условно 80й хром
- для IOS + Safari - вместо undefined, как должно быть если апишка не поддержкивается, возвращает бесполезный объект с пустым массивом brands и пустой строкой в platform

Пример проблемы - https://github.com/microsoft/playwright/issues/14361

Такая вот не приятная особенность, усложняет и внедрение использования этой апишки в приложение с существующими тестами, и локальную проверку в браузере, решается только мокированием или использованием реального браузера.

Надеюсь будет полезно!

BY SuperOleg dev notes




Share with your friend now:
tgoop.com/super_oleg_dev/122

View MORE
Open in Telegram


Telegram News

Date: |

‘Ban’ on Telegram Step-by-step tutorial on desktop: Content is editable within two days of publishing A few years ago, you had to use a special bot to run a poll on Telegram. Now you can easily do that yourself in two clicks. Hit the Menu icon and select “Create Poll.” Write your question and add up to 10 options. Running polls is a powerful strategy for getting feedback from your audience. If you’re considering the possibility of modifying your channel in any way, be sure to ask your subscribers’ opinions first. Healing through screaming therapy
from us


Telegram SuperOleg dev notes
FROM American