Невозможно загрузить изображения в Safari

Могу с уверенностью подтвердить, что это началось не после обновления Safari до версии 15.5. Это обновление произошло 18 мая 2022 года. Я впервые задокументировал проблему 14 июня 2022 года. Я являюсь модератором форума на платформе Discourse и обычно загружаю минимум 2–3 изображения в день. Я могу подтвердить по записям о работе на этом хостинге Discourse, что я загружал графику после обновления Safari, но до того, как впервые заметил проблему.

2 лайка

Для справки: я только что обновился до Safari v15.6. Это не повлияло на данную проблему.

1 лайк

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

Очень сложно определить эту проблему с помощью feature detection, у нас есть несколько вариантов:

  1. Вместо плейсхолдера uploading ... мы заменим его на .

  2. Использовать замену с помощью «регулярного выражения», которая не зависит от этой проблемы.

  3. Отключить execCommand как механизм вставки текста в данном случае (это бессмысленно, так как вставка изображения всё равно повредит стек отмены действий).

  4. Просто разместить функционал execCommand за настройкой сайта, отключённой по умолчанию.

Или комбинацию некоторых из этих вариантов.

Это в списке Давида, и мы отслеживаем ситуацию.

4 лайка

(2) проще всего реализовать, поэтому пока остановимся на ней. Если окажется, что проблема шире, мы сможем рассмотреть более радикальные изменения, например варианты 3 или 4. Вот соответствующий PR:

7 лайков

@tut это исправление уже работает здесь, на Meta, и на вашем сайте. Не могли бы вы попробовать и сообщить, стало ли лучше?

5 лайков

Похоже, проблема решена. Вот скриншот, который я только что сделал из вашего предыдущего поста, загруженный в Safari v15.6 (не цитата):

6 лайков

Проблема с загрузкой изображений из Safari снова появилась. Симптомы точно такие же, как описано в Cannot upload images with Safari, с одним исключением. Теперь проблема носит периодический характер. Я наблюдаю следующее:

  • По моим оценкам, общий процент успешных загрузок составляет около 90%.
  • Зависание загрузки может происходить в ходе той же сессии входа, когда множество других изображений различных форматов были успешно загружены.
  • Иногда загрузка проходит успешно после нескольких попыток.
  • Иногда изображение не загружается, но если сразу же скопировать и вставить похожее графическое изображение (само изображение, а не код для него) из другого поста Discourse, оно появляется в новом посте. (Я никогда не видел, чтобы этот обходной путь не сработал, хотя это не означает, что так будет всегда.)
  • Иногда конкретное изображение не загружается, тогда как другое в том же формате загружается успешно. Однако обычно, если одно изображение не загружается, то и остальные тоже не загружаются, и пост приходится завершать в другом браузере.
  • Я замечал это в основном, но не исключительно, с относительно небольшими изображениями. Однако у меня недостаточно опыта, чтобы определить, существует ли пороговое значение размера. Это наблюдение может быть просто совпадением.
2 лайка

Опять застревает с плейсхолдером вроде этого? Или поведение немного другое?

Есть ли какие-либо ошибки или предупреждения в консоли браузера?

Поведение кажется идентичным.

Я только что проверил консоль, и она была очищена (без моего участия) — возможно, из-за запуска новой сессии? Если поведение повторится, я сохраню лог консоли.

1 лайк

Что ж, прошло почти две недели и сотни успешных загрузок, но проблема наконец-то проявилась снова. На этот раз повторная попытка загрузки сразу увенчалась успехом. Последние две строки в логе консоли разработчика явно указывают на то, что виновником является проблема с сетевым подключением:

[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)

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

5 лайков