Могу с уверенностью подтвердить, что это началось не после обновления Safari до версии 15.5. Это обновление произошло 18 мая 2022 года. Я впервые задокументировал проблему 14 июня 2022 года. Я являюсь модератором форума на платформе Discourse и обычно загружаю минимум 2–3 изображения в день. Я могу подтвердить по записям о работе на этом хостинге Discourse, что я загружал графику после обновления Safari, но до того, как впервые заметил проблему.
Для справки: я только что обновился до Safari v15.6. Это не повлияло на данную проблему.
Да, мы разберёмся с этим, пожалуйста, подождите, нам очень жаль, что это занимает так много времени.
Очень сложно определить эту проблему с помощью feature detection, у нас есть несколько вариантов:
-
Вместо плейсхолдера
uploading ...мы заменим его на…. -
Использовать замену с помощью «регулярного выражения», которая не зависит от этой проблемы.
-
Отключить execCommand как механизм вставки текста в данном случае (это бессмысленно, так как вставка изображения всё равно повредит стек отмены действий).
-
Просто разместить функционал execCommand за настройкой сайта, отключённой по умолчанию.
Или комбинацию некоторых из этих вариантов.
Это в списке Давида, и мы отслеживаем ситуацию.
(2) проще всего реализовать, поэтому пока остановимся на ней. Если окажется, что проблема шире, мы сможем рассмотреть более радикальные изменения, например варианты 3 или 4. Вот соответствующий PR:
@tut это исправление уже работает здесь, на Meta, и на вашем сайте. Не могли бы вы попробовать и сообщить, стало ли лучше?
Похоже, проблема решена. Вот скриншот, который я только что сделал из вашего предыдущего поста, загруженный в Safari v15.6 (не цитата):
Проблема с загрузкой изображений из Safari снова появилась. Симптомы точно такие же, как описано в Cannot upload images with Safari, с одним исключением. Теперь проблема носит периодический характер. Я наблюдаю следующее:
- По моим оценкам, общий процент успешных загрузок составляет около 90%.
- Зависание загрузки может происходить в ходе той же сессии входа, когда множество других изображений различных форматов были успешно загружены.
- Иногда загрузка проходит успешно после нескольких попыток.
- Иногда изображение не загружается, но если сразу же скопировать и вставить похожее графическое изображение (само изображение, а не код для него) из другого поста Discourse, оно появляется в новом посте. (Я никогда не видел, чтобы этот обходной путь не сработал, хотя это не означает, что так будет всегда.)
- Иногда конкретное изображение не загружается, тогда как другое в том же формате загружается успешно. Однако обычно, если одно изображение не загружается, то и остальные тоже не загружаются, и пост приходится завершать в другом браузере.
- Я замечал это в основном, но не исключительно, с относительно небольшими изображениями. Однако у меня недостаточно опыта, чтобы определить, существует ли пороговое значение размера. Это наблюдение может быть просто совпадением.
Опять застревает с плейсхолдером вроде этого? Или поведение немного другое?
Есть ли какие-либо ошибки или предупреждения в консоли браузера?
Поведение кажется идентичным.
Я только что проверил консоль, и она была очищена (без моего участия) — возможно, из-за запуска новой сессии? Если поведение повторится, я сохраню лог консоли.
Что ж, прошло почти две недели и сотни успешных загрузок, но проблема наконец-то проявилась снова. На этот раз повторная попытка загрузки сразу увенчалась успехом. Последние две строки в логе консоли разработчика явно указывают на то, что виновником является проблема с сетевым подключением:
[Warning] [PLUGIN discourse-adplugin] (vendor-3525a44c5f1c281745e16fd0c569078e0ad263d863a3e3d95fe3a8ca080d252b.br.js, line 4586)
"Deprecation notice: \"message-bus:main\" is deprecated, use \"service:message-bus\" instead (deprecated since Discourse 2.9.0.beta7) (removal in Discourse 3.0.0)"
[Warning] [PLUGIN discourse-cakeday] (vendor-3525a44c5f1c281745e16fd0c569078e0ad263d863a3e3d95fe3a8ca080d252b.br.js, line 4586)
"Deprecation notice: \"site-settings:main\" is deprecated, use \"service:site-settings\" instead (deprecated since Discourse 2.9.0.beta7) (removal in Discourse 3.0.0)"
[Warning] [PLUGIN discourse-canned-replies] (vendor-3525a44c5f1c281745e16fd0c569078e0ad263d863a3e3d95fe3a8ca080d252b.br.js, line 4586)
"Deprecation notice: \"current-user:main\" is deprecated, use \"service:current-user\" instead (deprecated since Discourse 2.9.0.beta7) (removal in Discourse 3.0.0)"
[Warning] [PLUGIN hosted-site] (vendor-3525a44c5f1c281745e16fd0c569078e0ad263d863a3e3d95fe3a8ca080d252b.br.js, line 4586)
"Deprecation notice: \"site:main\" is deprecated, use \"service:site\" instead (deprecated since Discourse 2.9.0.beta7) (removal in Discourse 3.0.0)"
[Error] Failed to load resource: The network connection was lost. (poll, line 0)
[Error] Failed to load resource: The Internet connection appears to be offline. (poll, line 0)
Если эта проблема не повторится с другими симптомами, я считаю, что мы можем считать её решённой. Однако меня смущает, что в логе консоли не отображались подобные ошибки после устранения проблемы в первый раз.
