Загрузка изображения через браузер Tor для Windows ломает загрузку JPG.
Установка composer media optimization image bytes optimization threshold на заведомо высокое значение обходит проблему. Скорее всего, это проблема самого браузера Tor, но пока что она, похоже, проявляется только в Discourse, поэтому я решил опубликовать это здесь, даже если это лишь для того, чтобы поделиться трюком с обходным путем.
В моём тесте браузер Tor заблокировал этот вызов здесь:
со следующим сообщением:
Заблокировано извлечение данных с canvas с сайта https://try.discourse.org/, так как не обнаружено взаимодействие пользователя.
Очевидно, это ложь, поскольку выбор файла через диалог «Файловый менеджер» является взаимодействием пользователя.
Это было обнаружено нашим механизмом аварийного реагирования:
Изменение размера не удалось: изображение повреждено при изменении размера. Возврат к оригиналу для кодирования.
Это побуждает Discourse перекодировать файл, что, по-видимому, проходит успешно, но затем происходит ошибка 422 при завершении загрузки с использованием multipart…
Браузер Tor должен блокировать API создания canvas, а не молча искажать возвращаемые значения
В любом случае, похоже, что пользователи могут отключить молчаливый сбой операций с canvas, включив настройку privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts в about:config. Это позволит пользователям увидеть следующее приглашение:
По моему опыту, та же проблема возникает и с некоторыми фавиконками (предположительно загруженными в формате JPG). Поможет ли переключение privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts исправить и эту проблему?