A breve Chrome e Firefox raggiungeranno la versione principale 100

Modifiche alla stringa dello user agent, le strategie che Chrome e Firefox stanno adottando per mitigare l'impatto e come puoi contribuire.

Chrome e Firefox raggiungeranno la versione 100 entro un paio di mesi. Ciò potrebbe causare interruzioni sui siti che si basano sull'identificazione della versione del browser per eseguire la logica di business. Questo post descrive la cronologia degli eventi, le strategie che Chrome e Firefox stanno adottando per mitigare l'impatto e spiega come puoi contribuire.

Stringa dello user agent

Lo user agent (UA) è una stringa inviata dai browser nelle intestazioni HTTP, in modo che i server possano identificare il browser. La stringa è accessibile anche tramite JavaScript con navigator.userAgent. In genere ha il seguente formato:

<browser_name>/<major_version>.<minor_version>

Ad esempio, le versioni più recenti dei browser al momento della pubblicazione di questo post sono:

  • Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.54 Safari/537.36
  • Firefox: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:96.0) Gecko/20100101 Firefox/96.0
  • Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.2 Safari/605.1.15

Versione principale 100: numero di versione a tre cifre

La versione 100 rappresenta un grande traguardo sia per Chrome sia per Firefox. Inoltre, potrebbe causare danni ai siti web quando si passa da un numero di versione a due cifre a un numero di versione a tre cifre. Gli sviluppatori web utilizzano tutti i tipi di tecniche per analizzare queste stringhe, dal codice personalizzato all'utilizzo delle librerie di analisi user agent, che possono poi essere utilizzate per determinare la logica di elaborazione corrispondente. Lo user agent e qualsiasi altro meccanismo di segnalazione delle versioni riporteranno presto un numero di versione a tre cifre.

Cronologia della versione 100

I browser della versione 100 verranno rilasciati inizialmente nelle versioni sperimentali (ChromeCanary, Firefox Nightly), quindi nelle versioni beta e infine nel canale stabile.

Browser Sequenza
Chrome (programma di rilascio) 29 marzo 2022
Firefox (programma di rilascio) 3 maggio 2022

Perché un numero di versione a tre cifre può rappresentare un problema?

Quando i browser hanno raggiunto per la prima volta la versione 10, poco più di 12 anni fa, sono stati rilevati molti problemi con le librerie di analisi dello user agent, dato che il numero di versione principale è passato da una cifra a due.

Senza un'unica specifica da seguire, i browser diversi hanno formati diversi per la stringa dello user agent e per l'analisi dello user agent specifico per il sito. È possibile che alcune librerie di analisi contengano ipotesi hardcoded o bug che non prendono in considerazione i numeri di versione principali a tre cifre. Molte librerie hanno migliorato la logica di analisi quando i browser sono passati a numeri di versione a due cifre, quindi il raggiungimento del traguardo a tre cifre dovrebbe causare meno problemi. Mike Taylor, un ingegnere del team di Chrome, ha condotto un sondaggio sulle librerie di analisi UA comuni, che non ha evidenziato alcun problema. L'esecuzione degli esperimenti di Chrome sul campo ha rivelato alcuni problemi, di cui stiamo lavorando.

Cosa fanno i browser al riguardo?

Sia Firefox sia Chrome stanno eseguendo esperimenti in cui le versioni attuali del browser riferiscono alla versione principale 100 per rilevare possibili violazioni del sito web. Questo ha portato ad alcuni problemi segnalati, alcuni dei quali sono già stati risolti. Questi esperimenti continueranno a essere eseguiti fino alla release della versione 100.

Esistono anche strategie di mitigazione del backup, qualora il rilascio della versione 100 sui canali stabili provochi più danni ai siti web del previsto.

Mitigazione di Chrome

In Chrome, il piano di backup prevede l'utilizzo di un flag per bloccare la versione principale alla versione 99 e la segnalazione del numero di versione principale reale nella parte della versione secondaria della stringa dello user agent (il codice è già ricevuto).

La versione di Chrome riportata nella stringa User-Agent segue il pattern <major_version>.<minor_version>.<build_number>.<patch_number>.

Se viene utilizzato il piano di backup, la stringa dello user agent sarà simile a questa:

99.101.4988.0

Chrome sta anche eseguendo esperimenti per garantire che la segnalazione di un valore a tre cifre nella parte della versione secondaria della stringa non comporti interruzioni, dato che la versione secondaria nella stringa dello user agent di Chrome ha riportato 0 da molto tempo. Il team di Chrome deciderà se ricorrere all'opzione di backup in base al numero e alla gravità dei problemi segnalati.

Mitigazione di Firefox

In Firefox, la strategia dipende dall'importanza della interruzione. Firefox ha un meccanismo di intervento sul sito. Il team del webcompat di Mozilla può correggere i siti web non funzionanti in Firefox utilizzando questo meccanismo. Se digiti about:compat nella barra degli URL di Firefox, puoi vedere gli errori attualmente in fase di risoluzione. Se un sito smette di funzionare con la versione principale 100 su un dominio specifico, è possibile risolvere il problema inviando la versione 99.

Se l'interruzione è diffusa, è possibile bloccare il numero della versione principale. Esistono poi diverse strategie possibili, ognuna con i suoi pro e i suoi contro. Mozilla può inviare il numero di versione reale come numero di versione secondaria, bloccare completamente la stringa così com'è o inviare il numero di versione reale tramite altri parametri.

Ogni strategia che aggiunge complessità alla stringa dello user agent ha un forte impatto sull'ecosistema. Lavoriamo insieme per evitare un altro comportamento stravagante.

Che cosa puoi fare per aiutarti?

In Chrome e Firefox Nightly, puoi configurare il browser in modo che segnali la versione 100 al momento e segnalare eventuali problemi riscontrati.

Configura Chrome in modo che segnali la versione principale come 100

  1. Vai a chrome://flags/#force-major-version-to-100.
  2. Imposta l'opzione su Enabled.

Configura Firefox Nightly per segnalare la versione principale come 100

  1. Apri il menu Impostazioni di Firefox Nightly.
  2. Cerca "Firefox 100" e seleziona l'opzione "Stringa User-Agent Firefox 100".

Report di test e file

  • Se ti occupi della gestione di siti web, testa il sito con Chrome e Firefox 100. Esamina il codice di analisi e le librerie dello user agent e assicurati che siano in grado di gestire numeri di versione a tre cifre. Abbiamo stilato alcuni dei pattern attualmente non aggiornati.
  • Se sviluppi una libreria di analisi dello user agent, aggiungi test per analizzare versioni maggiori e uguali a 100. I primi test dimostrano che le versioni recenti delle librerie sono in grado di gestirlo correttamente. Tuttavia, il web ha una lunga eredità, quindi se hai versioni precedenti delle librerie di analisi, è il momento di verificare la presenza di eventuali problemi e alla fine eseguire l'upgrade.
  • Se stai navigando sul web e riscontri problemi con la versione principale 100, invia una segnalazione su webcompat.com.