Глоссарий
Battery Status API (состояние батареи)
Battery Status API это вызов браузера, который сообщает странице уровень заряда, признак питания и оставшееся время.
Что отвечает этот вызов
Один вызов возвращает четыре значения, и возвращает их любой странице открытой сети. Задуман он был, чтобы сайт делал меньше работы на телефоне, у которого садится батарея.
Уровень заряда
Доля между пустым и полным, с числом знаков после запятой, которого человеку не надо никогда.
Признак питания
Стоит ли машина сейчас на зарядке или работает от батареи.
Время до полного
Секунды до конца зарядки, а у машины, которая уже заряжена, там ноль.
Время до пустого
Сколько секунд работы осталось, а там, где батареи нет вовсе, значение бесконечно.
Почему медленное значение опознаёт
Заряд это не имя, и сам по себе он общий у всех, у кого столько же. Полезным его делает то, что он почти не двигается.
Два захода с разницей в минуты несут один и тот же уровень до последнего знака, и этого довольно, чтобы связать их, когда больше у них общего ничего нет.
Работает такая связка в одну сторону. Она сшивает посещения, стоящие рядом во времени, и ничего не говорит про вчерашние.
Кто на него ещё отвечает
Вызов писали для телефонов на слабой батарее, а беду с опознаванием заметили вскоре после. Несколько семейств браузеров его убрали и обратно не вернули.
Chromium его сохранил, поэтому браузер на Chromium отвечает. Наш в том числе, и тот, в котором вы это читаете, если он из этой же семьи.
Настольная машина отвечает тоже
Компьютер без батареи сообщает полный заряд и питание от сети, и это совершенно обычный ответ, по которому видно, какая машина попалась.
Интереснее всего ноутбук
Там уровень плывёт в течение дня, и все профили, открытые на этом ноутбуке, плывут вместе с ним.
Ответ приходит обещанием
Он готов через мгновение после запроса, поэтому сайт успевает взять его, пока страница ещё грузится.
Откуда берётся значение здесь
Наш движок объявляет список показаний, которые он отвечает из семени профиля, и этого в списке нет. Заряд принадлежит тому компьютеру, на котором открыт браузер.
Встроенный движок идёт другой дорогой и убирает вызов вместо ответа, поэтому по этому имени два движка расходятся.
Что принадлежит профилю
Число ядер, память, приборы, голоса синтеза речи, шрифты, часовой пояс и числа связи выводятся из семени профиля.
Что остаётся за машиной
Заряд это одно из показаний, которые остаются у компьютера, и каждый открытый на нём профиль читает одно и то же.
Почему это написано здесь
Показание, которого мы не трогаем, стоит на странице так же прямо, как и то, которое трогаем: читателю, который на него рассчитывает, знать это важнее всего.
Часто путают с этим
Память устройства
Тоже число про машину, читаемое без спроса, но оно как раз выводится из семени профиля, а не из компьютера.
Сведения о связи
Скорость и задержка это подпись канала таким же образом, и они тоже отвечаются из семени.
Окно с разрешением
Камера и место спрашивают вас сначала. Этот вызов не спрашивает никогда, из-за чего о нём и стоит говорить.
Чего это не делает
- Профиль не получает собственной батареи. Все профили на одном компьютере читают один и тот же заряд, потому что показание принадлежит компьютеру.
- По этому имени два движка отвечают по-разному. Наш собственный оставляет вызов там, где его положил Chromium, а встроенный его убирает.
- Это не опознаёт человека само по себе. Уровень заряда общий у всех, у кого столько же, и работает он только рядом с остальными показаниями.
- Это не остаётся полезным надолго. Заряд плывёт, поэтому он сшивает заходы, стоящие рядом во времени, и ничего дальше этого.
Проверить
Каждое утверждение выше взято из файла, который можно открыть.
- Показания, которые движок отвечает из семени, названные по одному
- packages/shared/src/index.js
- Форма нашего движка рядом с формой Chrome
- engine/приёмка-отчёт-форма-наша.json · engine/приёмка-отчёт-форма-chrome.json
- Как снимается эта форма
- engine/scripts/compare-shape.js
- Где встроенный движок убирает вызов
- apps/desktop/src/injected/fingerprint.js
Вопросы
- Нужно ли сайту разрешение на чтение батареи?
- Нет. Ни окна с вопросом, ни значка, ни строки в настройках сайта, а чтение кончается раньше, чем страница успевает нарисоваться.
- Прячет ли это прокси или туннель?
- Нет. Они меняют адрес, с которого уходит трафик. Заряд читается на вашей машине и через сеть не проходит вовсе.
- Можно ли отключить вызов в браузере?
- Настройки для этого в Chromium нет. Расширение вызов убрать может, а браузер, который молчит там, где Chromium отвечает, сам по себе отличие.
- Из-за этого связали мои аккаунты?
- Сам по себе почти наверняка нет. Это короткоживущая подсказка, которая работает рядом с адресом, отпечатком и тем, как аккаунты себя ведут.
- А что тогда отвечает мой профиль?
- Самопроверка отпечатка внутри профиля перечисляет все 29 замеров, которые она делает, и строки про батарею среди них нет.
Посмотрите, что отвечает ваш профиль
Самопроверка отпечатка идёт внутри профиля и показывает все 29 замеров, и зелёные, и красные.