iOS иногда не загружает CSS при навигации между поддоменами

Спасибо, @Don, у меня тоже 100% воспроизводится. При тестировании через BrowserStack это выглядит как регрессия после Safari 17: на Ventura (Safari 16.5) проблема не воспроизводится, а на Sonoma (Safari 17.3) — воспроизводится. Я сообщил об описанных выше шагах и выводах в Webkit, это должно помочь им найти причину.

8 лайков

Ура, воспроизводимые шаги! :clap:

Мы также легко воспроизводим это на нашем форуме (версия 3.2.4). Похоже, ключевым фактором является шаг навигации «назад», так как он запускает ошибку, независимо от начальной или промежуточной страницы (я пробовал тему, категорию, FAQ, значки и т. д.).

Пока Webkit разбирается с этим (думаю, исправление доберётся до стабильного релиза не скоро), имеет ли смысл попытаться определить конкретное изменение в Discourse, после которого ошибка начала проявляться в Safari, и, если это просто и реально, возможно, внедрить локальное решение? В нашем случае проблема появилась только после недавнего обновления с версии 3.1.5 до последней стабильной. Это большой промежуток, но может быть, стоит сначала пройти по бета-версиям, а затем двигаться дальше?

2 лайка

P.S.: Просто добавлю, что теперь, когда я могу воспроизвести проблему, я попытался временно отключить PWA на нашем основном сайте, но это, похоже, не изменило ничего в данном случае. Так что… это не связано с несколькими PWA.

Итак, я только что попробовал это в Chrome и заметил очень странную вещь. Если я правильно понимаю, это должно происходить только в Safari? Я так думал, но, возможно, я ошибаюсь. Потому что я могу воспроизвести это в браузере Chrome и на iPad. Похоже, проблема в операционной системе? Это также воспроизводится на macOS в Chrome? :thinking: Или это влияет только на iOS и iPadOS в Chrome из-за проблемы с WebKit?

Мое понимание таково, что Apple не разрешает сторонние браузеры на iOS/iPadOS, поэтому Chrome, Firefox и другие — это лишь специализированные графические интерфейсы, использующие WebKit для отображения страниц «под капотом».

Поскольку проблема связана с WebKit, любой браузер, работающий на iOS/iPadOS, подвержен ей.

6 лайков

Да, всё верно :+1: Хотя это меняется: Using alternative browser engines in the European Union - Support - Apple Developer

3 лайка

Спасибо за напоминание об этом, @mentalstring. После бисекции я считаю, что наиболее вероятная причина кроется здесь: DEV: Change default of `cross_origin_opener_policy_header` (#24940) · discourse/discourse@38abc0d · GitHub

Согласно тесту на одном из наших экземпляров, выполнение SiteSetting.cross_origin_opener_policy_header = 'unsafe-none' в консоли Rails или добавление этого параметра в ENV:

DISCOURSE_CROSS_ORIGIN_OPENER_POLICY="unsafe-none"

решает проблему. Эта настройка сайта является мерой усиления безопасности. Мы также оцениваем плюсы и минусы обновления ядра, но если вы (и другие, следящие за этой проблемой) сможете проверить это на своей стороне, это было бы отлично. Это даст нам больше уверенности в том, что это действительно лежащее в основе изменение в Discourse.

3 лайка

А-а, вот оно! :+1:

Я могу подтвердить, что установка COOP в значение 'unsafe-none' эффективно устранила эту ошибку на нашем экземпляре версии 3.2.4. Возврат к значению same-origin-allow-popups сразу же восстанавливает проблему.

Хорошо, что есть какое-то временное решение. Между тем, полагаю, эта информация будет полезна для отчёта команде Webkit, так как указывает на конкретный триггер.

P.S.: Спасибо, что разбираетесь в этом, и извините за настойчивость — я просто пытаюсь помочь нашему сообществу, действуя наугад. :sweat_smile:

2 лайка

Просто чтобы другие тоже не упустили это, этот фрагмент должен выглядеть так:

DISCOURSE_CROSS_ORIGIN_OPENER_POLICY_HEADER: unsafe-none

1 лайк

Вот обновление, друзья: разработчик WebKit несколько недель назад объединил исправление этой проблемы. Я попытался протестировать его, используя ночные сборки WebKit, но, к сожалению, мне всё ещё удаётся воспроизвести проблему. Возможно, я что-то делаю неправильно. Буду ждать следующего релиза Safari Technology Preview (он должен выйти скоро), чтобы проверить снова; надеюсь, проблема действительно исправлена. (Отчёт об ошибке WebKit здесь.)

2 лайка

К сожалению, в последней версии Safari для Sequoia эта проблема ещё не исправлена. Я повторно открыл отчёт об ошибке в Webkit, на который есть ссылка выше.

4 лайка

Хорошие новости: исправление уже доступно в основной ветке, и оно сработало на моём компьютере при использовании архивов сборок WebKit. Потребуются ещё несколько недель, прежде чем это исправление появится сначала в Safari Technology Preview, а затем в обычной версии Safari.

7 лайков

Вы это проверяли?

Да, конечно.

Похоже, что это наконец было включено в Safari Technology Preview, выпуск 209 (Safari 18.2, WebKit 20621.1.6).

Буду рад получить подтверждение от других пользователей в этой теме перед закрытием. Заранее спасибо!

2 лайка

Я только что попробовал с Release 210 и могу подтвердить, что в нашем форуме (на стабильной версии) проблема больше не возникает в Safari TP, хотя в текущей версии Safari она всё ещё есть. :+1:

Есть ли какие-то идеи, сколько времени это займёт, чтобы это попало в основную ветку Safari?

1 лайк

Я полагаю, это появится в следующем выпуске Safari, скорее всего, в течение нескольких недель. Спасибо за тестирование!

1 лайк

Похоже, что в Safari 18.3 это действительно исправлено!

6 лайков

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.