Discourse ne se charge pas sur les anciens navigateurs

Je suis un utilisateur de community(dot)jenkins(dot)io (désolé, je ne peux poster que 2 liens) qui, selon l’un des administrateurs, utilise une instance Discourse sponsorisée par le groupe officiel Discourse. La balise Meta dans l’en-tête/la source indique Discourse 2.9.0.beta2

Entre lundi et mercredi de cette semaine (14/03/2022-16/03/2022), le site ne se charge plus sur les anciens navigateurs Firefox pour Android. Spécifiquement, Firefox Android 68.11.0. C’est aussi visiblement le cœur d’autres navigateurs comme Waterfox, le navigateur Silk sur FireStick. Je ne suis jamais venu ici auparavant, mais ça ne se charge pas non plus. La page semble récupérer des données pendant quelques secondes, puis devient vide. “Demander le site de bureau” est également vide. “Afficher la source” mène à un abîme de néant.

J’ai signalé cela sur le site Jenkins et l’administrateur a indiqué que c’était probablement “parce que replaceAll n’est pas disponible dans Firefox 68” et a fourni des preuves de Saucelabs vers la marque 00:17 sec, le message d’erreur.

Plus tôt ce mois-ci, un changement JavaScript a cassé la fonctionnalité de StackOverflow (lien ci-dessous) pour la deuxième fois sur les sites StackOverflow/Exchange. Ils l’ont cassé et réparé une fois auparavant en décembre et nous espérons sincèrement qu’ils pourront annuler ce changement et rétablir cette fonctionnalité.

Fait intéressant, j’ai démarré un PC sous WINXP exécutant FF 52.9.0 ESR et malgré la bannière “votre navigateur est trop ancien pour fonctionner sur ce site”, le site semblait se charger correctement, donc cela semble plutôt spécifique/ésotérique.

Je demanderais à l’équipe Discourse de revoir les changements apportés et s’il existe un moyen d’atténuer ce changement qui casse tout. Je reconnais que rien ne peut être supporté éternellement, surtout lorsque ce n’est pas dans le cadre des tests, mais lorsque cela est signalé et s’il s’agit d’une solution évidente qui n’impacte pas significativement l’opérabilité, envisagez-la. Je ne cherche pas toutes les fonctionnalités, juste quelques fonctionnalités de base (au moins lire le contenu).

Lien StackExchange : meta(dot)stackexchange(dot)com/q/376694

10 « J'aime »

Nous voulons certainement toujours afficher au moins une vue en lecture seule sur les anciens navigateurs non pris en charge. Le rendu qui échoue et l’affichage d’une page blanche sont un bug.

Nous examinerons cette régression au cours de la semaine prochaine.

8 « J'aime »

replaceAll n’est pas pris en charge sur iOS <= 13.3

Cette PR ajoutera la détection de cette fonctionnalité et se rabattra sur la vue HTML de base si nécessaire :

12 « J'aime »

3 messages ont été fusionnées dans un sujet existant : Frontend sur le site de production en panne – Erreur Ember/Test

Merci @Ian_W pour le rapport :+1:

Nous avons maintenant résolu le problème. Ce sujet sera clos dans un jour.

4 « J'aime »

Je ne peux faire état que d’un succès partiel sur Firefox hérité sur Android.

Sur meta.discourse.org et community.jenkins.io, je vois maintenant la bannière « le navigateur est trop ancien », tout comme sur le PC sous WINXP exécutant FF 52.9.0 ESR.

Mais il n’y a pas de sujets, seulement le logo et le pied de page [Accueil .. Politique de confidentialité].

Sur le site Jenkins, je vois les catégories, la description des catégories et le nombre de « Sujets », mais en cliquant sur n’importe quelle catégorie, je ne peux à nouveau voir aucun problème.

4 « J'aime »

1 « J'aime »

J’ai réussi à faire rendre la vieille version HTML de meta.discourse.org dans Firefox 40 :

Cela devrait se produire sur tous les Firefox < 77.

3 « J'aime »

Comme indiqué, ma capture d’écran provient de la variante Android. Le site semble fonctionner correctement sur une variante de bureau.

Je n’ai aucune idée de la manière dont je peux extraire des informations supplémentaires du navigateur FF Android pour aider au débogage.

3 « J'aime »

Je viens d’installer la version obsolète de Firefox 68.9 sur mon téléphone, et elle semble fonctionner maintenant :

Des idées sur ce qui me manque pour tenter de reproduire le bug ?

3 « J'aime »

Eh bien, je ne suis pas sûr de quoi dire. Je viens de prendre un téléphone Android réinitialisé en usine (exécutant 7.0 car c’est un vieux téléphone), j’ai téléchargé Firefox Android 68.11 APK, je l’ai installé et j’ai navigué vers meta(.)discourse(.)org ** et j’obtiens la capture d’écran précédente.

Ensuite, ça devient bizarre. Allez sur meta(.)discourse(.)org/t/ ** et j’obtiens :

« Oups ! Cette page n’existe pas ou est privée.

Mais ensuite, j’obtiens une liste de sujets « Populaires » et « Récents » et je peux voir ce sujet très précis.
En cliquant sur le sujet, je vois maintenant le titre du sujet, ainsi que « bug », « pri-high », mais aucun contenu.

**: publication limitée à 2 liens
(je ne peux pas non plus télécharger de captures d’écran via l’interface utilisateur, j’ai donc dû les télécharger par réponse, une par une)

1 « J'aime »

1 « J'aime »

Je regarde au cas où quelqu’un trouverait une solution pour utiliser Discourse sur un iPhone 6 avant que je n’achète un nouveau téléphone.

1 « J'aime »

J’ai le même problème, comme expliqué ci-dessous :

1 « J'aime »

Pour iOS < 13 ou Firefox Fennec obsolète sur Android, nous devrions afficher la vue HTML.

Cependant, nous n’y parvenons pas car il n’y a pas de vue HTML en raison de

qui est dans notre base de code depuis toujours.

Inclure le contenu du crawler pour que nous puissions revenir à la vue HTML est coûteux, alors peut-être que nous voulons ajouter l’ancien Safari à

afin que cela ne soit fait que lorsque nécessaire ?

L’autre alternative serait de dire à Babel de transpiler replaceAll / de trouver un polyfill suffisamment bon.

cc @sam @david @gerhard

5 « J'aime »

D’autres alternatives auxquelles je peux penser :

  1. Éliminer complètement browser_update_user_agents, utiliser une requête XHR compatible avec IE6 pour obtenir le contenu à afficher sur ces navigateurs sur mobile. (désactiver javascript est déjà cassé sur mobile de toute façon)

  2. Polyfill replaceAll

  3. Inclure le contenu du robot d’indexation inconditionnellement (sur mobile également)

  4. Identique à (1) mais laisser le paramètre comme une micro optimisation, de repli vers XHR.

Je penche quelque part entre (1) et (3), (4)

7 « J'aime »

3 est quelque chose que je crains que nous devrons faire à terme, car le nombre d’appareils mobiles abandonnés par leurs fabricants ne fera qu’augmenter avec le temps. Cela augmentera la charge de certains serveurs lors du remplissage du modèle et agrandira notre taille HTML sur mobile, mais à mon avis, nous devrions le faire.

Je dirais donc que nous faisons 3 et que nous étudions la faisabilité de faire 1 et 2.

5 « J'aime »

Nous pourrions inverser la situation, n’activer l’optimisation mobile que sur des navigateurs spécifiques, ce qui nous permettrait de conserver cette optimisation sur 95 % du trafic mobile qui nous parvient tout en restant très sûrs ?

3 « J'aime »