Обратная совместимость со старыми браузерами

Я помогаю поддерживать форум для людей, затронутых нейродегенеративным заболеванием, который работает на платформе Discourse. Я обновляю программное обеспечение, отслеживая список уязвимостей по ссылке Commit search results · GitHub и применяя обновления при появлении проблем с безопасностью. Однако это имеет непреднамеренный побочный эффект: всё больше пользователей со старыми устройствами теряют доступ.

Доступ был заблокирован для одной пользовательницы, которая ухаживает за своим мужем и имеет доступ к форуму только через iPad, который больше не получает обновлений iOS/Safari. Недавно аналогичная ситуация произошла с другим пользователем, у которого старый Chromebook, не позволяющий обновить Chrome до совместимой версии. Я понимаю политику поддержки только последних версий браузеров, но когда устройства, выпущенные всего несколько лет назад, перестают получать обновления, хотя технически полностью исправны, это блокирует доступ к тому, что для многих является жизненно важной опорой. Это крайне разочаровывает.

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

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

Вот несколько цитат от наших пользователей по этому поводу:

«Я остаюсь там, чтобы поддерживать другую жену через личные сообщения — это так мучительно, вы никогда не узнаете, какой хаос это вызывает… Я серьёзно… сломлен :cry:»

«Извините, что звучу так разгневанно… Я не публикую посты с тех пор, как потерял мужа 17 месяцев назад, но всё ещё захожу ежедневно и полон отчаяния»

«Думаю, я могу получить доступ к форуму в местной библиотеке, но очень frustrирует, что нет доступа дома»

«Я имею в виду, что я могу зайти на все остальные сайты, в банки и т. д., там проблем нет, и они постоянно обновляются»

«Итак, я попробовал ваше предложение скачать приложение, но, к сожалению, оно не устанавливается. Сообщается, что оно несовместимо с моим iPad. Без сомнения, это связано с версией iOS (снова)»

«Это действительно раздражает! Я не могу позволить себе заменить iPad, и это единственное, что связывает меня с этим сообществом»

«Форум — это спасательный круг… они отняли его у меня, и, полагаю, у многих других»

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

Ваш случай может быть одним из тех, где использование стабильной версии немного помогло бы. Однако любая политика обновлений делает вас уязвимыми перед проблемой, с которой вы столкнулись. А политика отсутствия обновлений оставляет вас уязвимыми из-за использования устаревшего программного обеспечения.

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

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

Возможно ли установить сторонний браузер на iPad или Chromebook?

Нашёл это для старых iPad. Возможно, вы также сможете установить другие браузеры.

Download and install Google Chrome - iPhone & iPad - Google Chrome Help.

Вот ссылка для Chromebook, которая может помочь.

Top 5 Chromebook Web Browsers 2024 [Ranked & Reviewed] - Alvaro Trigo's Blog.

Однако согласен, что отсутствие полноценной обратной совместимости со старыми устройствами — это неприятно. Интересно, не мог бы быть создан плагин для решения этой проблемы в особых случаях использования, таких как ваш.

И всё же, насколько мне известно, это Safari. Но в любом случае они не могут обойти проверку Discourse, так как этот результат поступает из iOS.

Значит, нужно установить сторонний браузер, например Chrome или Firefox, и использовать его вместо Safari? Нет?

Это не настоящие браузеры со своими движками. Их можно описать скорее как скины.

Я не понимаю. Извините, вы хотите сказать, что Google Chrome или Firefox и т. д. — это не легитимные версии этих браузеров на iOS? Просто перекрашенный браузер Safari?

Скорее это перелицованный движок Apple, но итоговый результат практически идентичен. Apple очень жестко ограничивает свою экосистему.

Это действительно неприятно, но для Apple это не удивительно. Я помню, что Microsoft пыталась что-то подобное еще в Windows 95, ограничивая производительность сторонних браузеров (хотя, возможно, не совсем так же), в то время, когда доминировал Netscape (сейчас известный как Mozilla Firefox). MS получила сильный отпор в судах и от веб-разработчиков.

Это было бы не идеально, но можно ли использовать какую-то идею с веб-браузером в качестве посредника? Что-то вроде того, как люди используют Tor?

Возможно, в данном случае как слой совместимости?

Apple требует, чтобы все браузеры на iOS использовали движок Apple WebKit.

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

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

Рад, что меня никогда не затянуло в экосистему устройств Apple. И в данном случае для пользователей, вероятно, слишком много хлопот попытаться установить Linux на свои устаревающие устройства. Ведь Apple на самом деле не так уж и дружелюбна к пользователю.

Что ж, вопрос обратной совместимости часто обсуждается, и это «табу». Режим только для чтения с ограниченным функционалом — это единственное, что предлагает Discourse, когда браузеры или операционные системы выходят из срока поддержки.

Если кто-то сможет написать такой слой, это хорошо, но я абсолютно уверен, что CDCK не будет это поддерживать. Это немного похоже на джейлбрейк на мобильных устройствах Apple :wink:

@codev какие сейчас минимальные требования к браузеру для «полного функционала»? (Извините, я не уверен, где это опубликовано)

Что ж, теперь, когда мы разобрали официальную часть темы про «удар по Apple» и то, что «они худшие», мне интересно узнать о политике поддержки обратной совместимости. Большинство, если не все, команды продуктов публикуют свои политики обратной совместимости, и некоторые из них более щедры, чем другие. К счастью, технологии развиваются вперед, но, к сожалению, это накладывает срок годности на полезный срок службы большинства технологий.

Что касается вопроса, поднятого @codev, мне тоже интересно, так как я собирался развернуть Discourse, но у меня могут быть пользователи со старыми устройствами. Как намекнул @Ed_S, это может быть тем, что мне нужно учитывать при поиске альтернатив.

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

Программное обеспечение и фреймворки безопасности постоянно развиваются, и в наши дни это происходит еще быстрее, требуя обновлений, так как многое взаимосвязано. Я принимаю аргумент об обновлении ради безопасности, однако прекращение поддержки определенной версии чего-либо только потому, что она больше не «поставляется», не означает, что нет пользователей, которые все еще используют эту технологию.

Если кто-то будет утверждать: «Эй, мне нужно поддерживать клиентов с браузерами без SSL от 1993 года», я согласен, что это абсурдно. Однако, если мы говорим, что можно использовать только то, что было выпущено как N-1 (например, только за последние 18 месяцев), то не все обновляются каждые шесть месяцев.

Например, Firefox предоставляет ESR (расширенные версии поддержки) для старых платформ. Это отлично для Firefox и тех, кому нужен ESR. Но это становится бессмысленным, если поставщики, например Discourse, не будут поддерживать что-то из-за глупого номера версии браузера, который не соответствует их заранее определенному / жестко заданному минимальному значению версии. Если требуются определенные фреймворки, это одно дело — если же дело просто в том, что «версия 1 не равна 2», но в остальном всё работает, то это очень жаль. Я всё чаще и чаще вижу такое отсутствие интереса к поддержке более ранних версий. Это разочаровывающая тенденция. Инженеры сегодня, родившиеся в конце 80-х и в 90-х годах, выросли в культуре, где «всегда нужно обновляться».

Я знаю, что ушел в сторону, спасибо за художественную свободу. Я не хочу упускать из виду первоначальный вопрос @codev. Это важно, особенно там, где Discourse играет такую значимую роль в коммуникации и сообществе.

Вероятно, можно создать упрощённую версию интерфейса, которая позволит выполнять вход, отправлять личные сообщения и, возможно, отвечать через API Discourse, и разместить её на отдельном поддомене (или на том же домене, используя умные правила Ngin?).

Таким образом, вы сохраните базовую функциональность для старых устройств и будете оставаться в актуальном состоянии с точки зрения серверной части Discourse.

Хорошо, я нашёл это (касательно моего вопроса)

«Discourse разработан с расчётом на следующие 10 лет развития Интернета, поэтому минимальные требования к браузерам высоки».

Не уверен, что правильно понял это сообщение, если только Discourse не разрабатывается внутри машины времени. Я бы ожидал, что большинство пользователей в 2030 году сегодня ещё не используют этот продукт. Возможно, я что-то упускаю.

РЕДАКТИРОВАНИЕ:
@Canapin, какова политика поддержки браузеров? Текущая стабильная версия минус 2 (N-2), или N-1, или только «последняя»?

Вопросы безопасности, отмеченные здесь (больше беспокоятся пользователи, а не конкретно использование Discourse, я уверен), не могут быть настолько специфичными, чтобы Discourse требовал чего-то, что не поддерживается в основных библиотеках JavaScript, которые почти не менялись за последние 6 лет. Даже Gmail через веб-браузер на таких старых устройствах работает нормально, без проблем. Не считая вопросов безопасности, это уже отмечено здесь.

Привет @codev,

Я бы хотел приветствовать вас в нашем сообществе при лучших обстоятельствах.

Боюсь, что мои слова могут показаться довольно пустыми в ответ, но я действительно понимаю ваше разочарование.

Существует проблема, присущая процессу эволюции программного обеспечения, и люди часто спрашивают: «Ваше программное обеспечение больше не поддерживает мой телефон, а подобное — поддерживает; почему?». К сожалению, простого ответа нет.

Мы понимаем, что ваше сообщество испытывает трудности. Мы ясно видим тревогу и страдания ваших участников из-за перспективы быть отрезанными от системы поддержки.

Посещение библиотеки для использования компьютера никоим образом не заменяет доступ к вашей сети поддержки в нужный момент, а также разницу между использованием общественного пространства и обменом мнениями и вкладом из комфорта и приватности собственного дома.

Это беспокоит нас, учитывая, что наша миссия — сделать онлайн-обсуждения проще для всех и сохранить эти обсуждения в долгосрочной перспективе.

Мы, как и вы, разочарованы тем, что люди не могут использовать устройства, пока они буквально не развалятся. Однако устройства типа «чёрного ящика», такие как iPhone, должны продолжать поддерживаться и обновляться производителем, иначе они активно опасны в использовании. Мы отмечаем, что Apple в настоящее время предоставляет лишь очень ограниченное обновление для наиболее серьёзных уязвимостей iOS 12, а Safari уже несколько лет не обновляется.

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

К сожалению, любое такое решение имеет недостатки, и ваше сообщение — болезненный и честный пример проблем, которых мы надеемся избежать как можно больше.

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

Вопрос остаётся: как мы можем помочь решить эту проблему для ваших участников, которым необходимо получать доступ к вашему форуму и участвовать в нём?

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

Официально:

Discourse поддерживает последние стабильные версии всех основных браузеров и платформ:

  • Microsoft Edge
  • Google Chrome
  • Mozilla Firefox
  • Apple Safari

Кроме того, мы стремимся поддерживать Safari на iOS 15.7 и выше.

Источник: What is Discourse? | Discourse - Civilized Discussion

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

Последняя строка:

Кроме того, мы стремимся поддерживать Safari на iOS 15.7 и выше.

по сути означает поддержку как минимум версии N-1, а в случае с iOS — даже N-2, поскольку актуальная версия — 16.3.x.

Проблема данного заявления о поддержке заключается в том, что оно потенциально отталкивает целую категорию пользователей, чьи клиенты «технически совместимы», однако Discourse не гарантирует их тестирование. Как отмечает @Canapin: «Это просто не гарантировано, и в какой-то момент всё может перестать работать». По сути, это означает «используйте на свой страх и риск». Это отличается от того, когда веб-приложение проверяет версию клиента и с помощью элемента интерфейса сообщает о несовместимости. Или, что ещё хуже, ограничивает функциональность, которая в противном случае «просто работала бы», но больше не проходит QA или регрессионное тестирование и постепенно выводится из употребления под предлогом «сейчас никто это не тестирует и нет ресурсов для этого».

Если бы было возможно поддерживать версию N-2 в большинстве применимых случаев, существовала бы высокая вероятность охвата почти 80% потенциальной пользовательской базы «веб-клиентов». Для N-2 в случае iOS это означало бы поддержку Safari 14 / iOS 14.

Если слово «поддержка» является триггерным, то при возможности разрешить N-2 с оговоркой *«если возникают какие-либо проблемы, пожалуйста, обновитесь до поддерживаемого клиента»», вероятно, многое всё ещё будет «просто работать», возможно, не в рамках наиболее предпочтительного опыта (отображение интерфейса и т. д.), но хотя бы не блокировать доступ к функционалу. В конце концов, это доска объявлений, а не Microsoft Office 365. (никаких обид команде Discourse не intended!)