A breve Chrome e Firefox raggiungeranno la versione principale 100

Le modifiche alla stringa user-agent, le strategie adottate da Chrome e Firefox per mitigare l'impatto e come puoi contribuire.

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

Stringa user agent

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. Di solito è formattato come segue:

<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 principale 100 è un traguardo importante sia per Chrome che per Firefox. Inoltre, ha il potenziale di causare interruzioni sui siti web durante il passaggio da un numero di versione a due cifre a uno a tre cifre. Gli sviluppatori web utilizzano tutti i tipi di tecniche per analizzare queste stringhe, dal codice personalizzato all'utilizzo di librerie di analisi dell'agente utente, che possono essere utilizzate per determinare la logica di elaborazione corrispondente. L'agente utente e qualsiasi altro meccanismo di generazione di report sulle versioni registreranno a breve un numero di versione di tre cifre.

Tempistiche della versione 100

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

Browser Cronologia
Chrome (tempistiche delle release) 29 marzo 2022
Firefox (programmazione delle release) 3 maggio 2022

Perché un numero di versione di tre cifre può essere problematico?

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

Senza una singola specifica da seguire, diversi browser hanno formati diversi per la stringa user agent e l'analisi dello user agent specifica del sito. È possibile che alcune librerie di analisi del codice abbiano presupposti o bug hardcoded che non tengono conto dei 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, pertanto si prevede che il raggiungimento del traguardo di tre cifre causi meno problemi. Mike Taylor, un ingegnere del team di Chrome, ha condotto un sondaggio sulle librerie di analisi dell'UA comuni che non ha rilevato problemi. L'esecuzione di esperimenti su Chrome sul campo ha evidenziato alcuni problemi, su cui stiamo lavorando.

Cosa stanno facendo i browser in merito?

Sia Firefox che Chrome hanno eseguito esperimenti in cui le versioni correnti del browser segnalano la versione principale 100 per rilevare possibili interruzioni del sito web. Ciò ha portato a alcuni problemi segnalati, alcuni dei quali sono già stati risolti. Questi esperimenti continueranno a essere eseguiti fino al rilascio della versione 100.

Sono inoltre previste strategie di mitigazione dei backup nel caso in cui il rilascio della versione 100 nei canali stabili causi danni ai siti web maggiori del previsto.

Mitigazione di Chrome

In Chrome, il piano di riserva prevede l'utilizzo di un flag per bloccare la versione principale su 99 e indicare il numero della versione principale reale nella parte della versione secondaria della stringa user agent (il codice è già stato implementato).

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

Se il piano di backup è attivo, la stringa User-Agent sarà la seguente:

99.101.4988.0

Chrome esegue anche esperimenti per assicurarsi che la registrazione di un valore di tre cifre nella parte della versione minore della stringa non causi interruzioni, poiché la versione minore nella stringa user agent di Chrome ha registrato 0 per molto tempo. Il team di Chrome deciderà se ricorrere all'opzione di backup in base al numero e alla gravità dei problemi segnalati.

Mitigazione per Firefox

In Firefox, la strategia dipende dall'importanza del malfunzionamento. Firefox possiede un meccanismo di intervento sul sito. Il team di compatibilità web di Mozilla può correggere i siti web inaccessibili in Firefox utilizzando questo meccanismo. Se digiti about:compat nella barra degli URL di Firefox, puoi vedere cosa viene attualmente corretto. Se un sito si interrompe con la versione principale 100 su un dominio specifico, è possibile risolvere il problema inviando la versione 99.

Se il malfunzionamento è diffuso, è possibile bloccare il numero della versione principale. Esistono quindi diverse strategie possibili, ognuna con i suoi pro e contro. Mozilla può inviare il numero di versione reale come numero di versione minore, bloccare la stringa così com'è o inviare il numero di versione reale tramite altri parametri.

Ogni strategia che aggiunge complessità alla stringa User-Agent ha un forte impatto sull'ecosistema. Collaboriamo per evitare un altro comportamento strano.

Cosa puoi fare per aiutarmi?

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

Configurare Chrome in modo che registri la versione principale come 100

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

Configura Firefox Nightly in modo che registri la versione principale come 100

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

Testare e generare report

  • Se sei un gestore di siti web, testa il tuo sito web con Chrome e Firefox 100. Esamina il codice e le librerie di analisi dell'user agent e assicurati che siano in grado di gestire i numeri di versione a tre cifre. Abbiamo compilato alcuni dei pattern che al momento non funzionano.
  • Se sviluppi una libreria di analisi dell'agente utente, aggiungi test per analizzare le versioni maggiori o uguali a 100. I nostri primi test mostrano che le versioni recenti delle librerie possono gestirlo correttamente. Tuttavia, il web ha una lunga storia, quindi se hai versioni precedenti delle librerie di analisi, è il momento di verificare la presenza di problemi ed eventualmente eseguire l'upgrade.
  • Se navighi sul web e noti problemi con la versione principale 100, invia una segnalazione su webcompat.com.