Discourse non si carica sui browser legacy

Sono un utente di community(dot)jenkins(dot)io (mi dispiace, posso postare solo 2 link) che, secondo uno degli amministratori, utilizza un’istanza Discourse sponsorizzata dal gruppo ufficiale di Discourse. Il meta tag nell’header/sorgente dice Discourse 2.9.0.beta2

Tra lunedì e mercoledì di questa settimana (14/16/2022), il sito non si carica più sui browser Firefox legacy per Android. Nello specifico, Firefox Android 68.11.0. Questo è evidentemente anche il nucleo per altri browser come Waterfox, Silk browser su FireStick. Non ci sono mai stato prima, ma non si carica neanche. La pagina sembra recuperare dati per alcuni secondi, poi diventa bianca. Anche “Richiedi sito desktop” è vuoto. “Visualizza sorgente” porta a un abisso di nulla.

Ho segnalato questo sul sito Jenkins e l’amministratore ha indicato che è probabile, “perché replaceAll non è disponibile in Firefox 68” e ha fornito prove da Saucelabs intorno al segno di 00:17 secondi il messaggio di errore.

All’inizio di questo mese, una modifica JavaScript ha interrotto la funzionalità di StackOverflow (link sotto) per la seconda volta sui siti StackOverflow/Exchange. L’hanno interrotta e riparata una volta prima a dicembre e speriamo sinceramente che possano annullare quella modifica e ripristinare quella funzionalità.

Interessante, ho avviato un PC WINXP con FF 52.9.0 ESR e nonostante il banner “il tuo browser è troppo vecchio per funzionare su questo sito”, il sito sembrava caricarsi bene, quindi sembra piuttosto specifico/esoterico.

Chiederei al team di Discourse di rivedere quali modifiche sono state apportate e se esiste un modo per mitigare questa modifica che interrompe il funzionamento. Riconosco che nulla può essere supportato per sempre, specialmente quando non rientra nell’ambito dei test, ma quando viene segnalato e se si tratta di una correzione ovvia che non influisce in modo significativo sull’operatività, prendila in considerazione. Non cerco tutte le funzionalità, solo alcune funzionalità di base (almeno leggere i contenuti).

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

10 Mi Piace

Vogliamo certamente visualizzare sempre almeno una vista di sola lettura sui vecchi browser non supportati. Il rendering interrotto e la visualizzazione di una pagina bianca sono un bug.

Esamineremo questa regressione nel corso della prossima settimana.

8 Mi Piace

replaceAll non è supportato su iOS <= 13.3

Questa PR aggiungerà il rilevamento per questa funzionalità e, se necessario, tornerà alla visualizzazione HTML di base:

12 Mi Piace

3 post sono stati uniti a un argomento esistente: Frontend sul sito di produzione non disponibile – Errore Ember/Test

Grazie @Ian_W per la segnalazione :+1:

Abbiamo risolto il problema. Questo argomento verrà chiuso tra un giorno.

4 Mi Piace

Posso segnalare solo un successo parziale su Firefox legacy su Android.

Sia su meta.discourse.org che su community.jenkins.io vedo ora il banner “il browser è troppo vecchio”, lo stesso del PC WINXP con FF 52.9.0 ESR.

Ma non ci sono argomenti, solo il logo e il piè di pagina [Home .. Privacy Policy].

Sul sito di Jenkins, vedo le Categorie, la descrizione delle categorie e il conteggio degli “Argomenti”, ma cliccando su qualsiasi categoria, di nuovo non riesco a vedere alcun problema.

4 Mi Piace

1 Mi Piace

Ho fatto in modo che meta.discourse.org visualizzasse la vecchia versione HTML in Firefox 40:

Questo dovrebbe accadere su tutti i Firefox < 77.

3 Mi Piace

Come notato, il mio screenshot proviene dalla variante Android. Il sito sembra funzionare bene su una variante Desktop.

Non ho idea di come estrarre ulteriori informazioni dal browser FF Android per aiutare nel debug.

3 Mi Piace

Ho appena installato la versione deprecata di Firefox 68.9 su il mio telefono e sembra funzionare:\n\n

\n\n\n\n\nQualche idea su cosa mi manca mentre cerco di riprodurre il bug?

3 Mi Piace

Beh, non sono sicuro di cosa dire. Ho appena preso un telefono Android resettato alle impostazioni di fabbrica (con Android 7.0 perché è un vecchio telefono), ho scaricato Firefox Android 68.11 APK, l’ho installato e sono andato su meta(.)discourse(.)org ** e ottengo lo screenshot precedente.

Poi le cose si fanno strane. Vado su meta(.)discourse(.)org/t/ ** e ottengo:

“Oops! That page doesn’t exist or is private.”

Ma poi ottengo un elenco di argomenti “Popolari” e “Recenti” e posso vedere questo stesso argomento.
Cliccando sull’argomento, vedo il titolo dell’argomento, più “bug”, “pri-high” ma nessun contenuto.

**: post limitato a 2 link
(non riesco nemmeno a caricare screenshot tramite l’interfaccia utente, quindi ho dovuto caricarli tramite risposta, uno alla volta)

1 Mi Piace

1 Mi Piace

Guardo per sicurezza nel caso in cui qualcuno trovi una soluzione per usare Discourse su un iPhone 6 prima che io finisca per comprare un nuovo telefono.

1 Mi Piace

Ho lo stesso problema, come spiegato di seguito:

1 Mi Piace

Per iOS < 13 o Firefox Fennec deprecato su Android, dovremmo mostrare la vista HTML.

Tuttavia, non ci riusciamo perché non esiste una vista HTML a causa di

che è nel nostro codebase da sempre.

Includere il contenuto del crawler in modo da poter tornare alla vista HTML è costoso, quindi forse vogliamo aggiungere vecchi Safari a

in modo che venga fatto solo quando necessario?

L’altra alternativa è dire a Babel di eseguire il transpiling di replaceAll / trovare un polyfill sufficientemente valido.

cc @sam @david @gerhard

5 Mi Piace

Altre alternative a cui riesco a pensare:

  1. Eliminare del tutto browser_update_user_agents, utilizzare una richiesta XHR compatibile con IE6 per ottenere il contenuto da renderizzare su questi browser su mobile. (disabilitare javascript è già rotto su mobile comunque)

  2. Polyfill replaceAll

  3. Includere il contenuto del crawler incondizionatamente (anche su mobile)

  4. Come (1) ma lasciare l’impostazione come micro ottimizzazione, fallback a XHR.

Sto oscillando tra (1) e (3), (4)

7 Mi Piace

3 è qualcosa che temo dovremo fare alla fine, poiché il numero di dispositivi mobili abbandonati dai loro produttori aumenterà solo nel tempo. Aumenterà il carico del server per il riempimento del template e ingrandirà le nostre dimensioni HTML su mobile, ma secondo me dovremmo farlo.

Quindi direi che facciamo 3 e indaghiamo se fare 1 e 2 è fattibile.

5 Mi Piace

Potremmo capovolgere le cose, abilitare l’ottimizzazione mobile solo su browser specifici, ci permetterà ancora di avere questa ottimizzazione sul 95% del traffico mobile che ci raggiunge ed essere ancora molto sicuri?

3 Mi Piace