Мы работаем с прогрессивными веб-приложениями с включенными push-уведомлениями для Chrome и Samsung Internet, и призываем наших пользователей добавить их на свой домашний экран.Мы тщательно регистрируем и отслеживаем исключения браузера, чтобы сохранить высококачественный сервис.
С 22 мая 2018 года мы заметили неожиданный рост удивительных исключений JavaScript, возникающих из-за обращений к стандартным веб-API с обнаруженными функциями, которые имелиранее никогда не вызывал ошибки.
Например, следующий код может вызвать следующую ошибку, несмотря на то, что «push» явно является допустимым значением для Permissions.query () specs :
const permissionStatus = await navigator
.permissions
.query({ name: 'push', userVisibleOnly: true });
? TypeError: Failed to read the 'query' property from 'Permissions': The provided value 'push' is not a valid enum value of type PermissionName.
При более внимательном рассмотрении мы заметили, что все такие ошибки возникали во время выполнения скрипта пользовательскими агентами, которые не наши реальные клиенты.Скорее, мы видим, что неизвестный клиент запрашивает наше приложение сразу после посещения нашего пользователя:
- Пользователь посещает наш PWA, об ошибке не сообщается
- Пользователь использует «Добавить на главный экран» (чаще всего), об ошибках не сообщается
- Неизвестный клиент посещает наш PWA, сообщается об ошибках.
Этот неизвестный клиент выполняет шаблоны запросов HTTP-запроса:
- URL-адрес в точности совпадает с URL-адресом, который посетил пользователь.
- Исходящий IP-адрес присваивается Google, Inc.(Диапазон 66.102.0.0/20 или 66.249.64.0/19)
- Реферер: «https://www.google.com/”
- Строка агента пользователя как-то совпадает с строкой пользователя: та же версия Android, то же устройствоbuild, тот же браузер, но другая версия браузера, всегда из этого списка:
- Chrome / 66.0.3359.126 (22 мая → 30 мая)
- Chrome / 66.0.3359.158 (11 июня → июнь25)
- SamsungBrowser / 3.0 Chrome / 38.0.2125.102 (25 июня → июнь27)
- SamsungBrowser / 6.4 Chrome / 56.0.2924.87 (22 мая → 30 мая, 25 июня)
- SamsungBrowser / 7.0 Chrome / 59.0.3071.125 (22 мая → 30 мая, 25 июня)
Более того, эти запросы выполняются только периодически, на первый взгляд контролируемым образом, что отражено в датах выше и на графике ниже:
Это и тот факт, что мы обнаруживаем использование «Добавить на главный экран» в большинстве случаев, заставляют задуматься, может ли это быть эксперимент, связанный с WebAPKs .Однако это недокументировано и, следовательно, очень озадачивает.
Что это за неизвестный клиент, созданный Google?
Какова его цель?
Как разработчики должны их обнаруживать, икакие меры следует принять?
август 2018 г. Обновление: Похоже, что запросы, подобные описанным выше, теперь полностью исчезли ... Но они могли быть своего рода прототипом подобного родазапросы мы видим сейчас.Эти запросы нового типа по-прежнему исходят от серверов Google и, похоже, предназначены исключительно для веб-манифеста нашего PWA, поэтому ошибка JavaScript больше не возникает.Все они содержат строку с пользовательским агентом Chrome / 59 +, в которой явно указан (via Google-Chrome-WebAPK)
.Другие браузеры, такие как Samsung Интернет, еще не обнаружены.