Chrome und Firefox erreichen bald Hauptversion 100

Änderungen am User-Agent-String, die Strategien von Chrome und Firefox zur Begrenzung der Auswirkungen und wie Sie helfen können.

Chrome und Firefox erreichen in wenigen Monaten Version 100. Dies kann zu Fehlern auf Websites führen, auf denen die Geschäftslogik auf der Identifizierung der Browserversion basiert. In diesem Beitrag erfahren Sie, wie es zu dem Problem kam, welche Maßnahmen wir in Chrome und Firefox ergreifen, um die Auswirkungen zu minimieren, und wie Sie uns unterstützen können.

User-Agent-String

Der User-Agent (UA) ist ein String, den Browser in HTTP-Headern senden, damit Server den Browser identifizieren können. Der String ist auch über JavaScript mit navigator.userAgent zugänglich. Er hat normalerweise das folgende Format:

<browser_name>/<major_version>.<minor_version>

Zum Zeitpunkt der Veröffentlichung dieses Beitrags sind beispielsweise die folgenden Release-Versionen der Browser verfügbar:

  • 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

Hauptversion 100 – dreistellige Versionsnummer

Die Hauptversion 100 ist sowohl für Chrome als auch für Firefox ein wichtiger Meilenstein. Außerdem kann es zu Problemen auf Websites kommen, da wir von einer zweistelligen zu einer dreistelligen Versionsnummer wechseln. Webentwickler verwenden alle möglichen Techniken zum Parsen dieser Strings, von benutzerdefiniertem Code bis hin zu User-Agent-Parse-Bibliotheken, mit denen sich dann die entsprechende Verarbeitungslogik bestimmen lässt. Der User-Agent und alle anderen Mechanismen zur Versionsmeldung geben bald eine dreistellige Versionsnummer an.

Zeitleisten für Version 100

Browser der Version 100 werden zuerst in experimentellen Versionen (Chrome Canary, Firefox Nightly), dann in Betaversionen und schließlich im Stable Channel veröffentlicht.

Browser Zeitachse
Chrome (Veröffentlichungszeitplan) 29. März 2022
Firefox (Veröffentlichungszeitplan) 3. Mai 2022

Warum kann eine dreistellige Versionsnummer problematisch sein?

Als vor etwas mehr als 12 Jahren die Version 10 eingeführt wurde, wurden viele Probleme mit User-Agent-Parsing-Bibliotheken festgestellt, da die Hauptversionsnummer von einer auf zwei Ziffern angestiegen war.

Da es keine einheitliche Spezifikation gibt, haben verschiedene Browser unterschiedliche Formate für den User-Agent-String und ein websitespezifisches User-Agent-Parsing. Es ist möglich, dass einige Parsing-Bibliotheken hartcodierte Annahmen oder Fehler enthalten, die keine dreistelligen Hauptversionsnummern berücksichtigen. Bei vielen Bibliotheken wurde die Parsing-Logik verbessert, als Browser auf zweistellige Versionsnummern umgestellt wurden. Daher sollte die Umstellung auf dreistellige Versionsnummern weniger Probleme verursachen. Mike Taylor, ein Entwickler im Chrome-Team, hat eine Umfrage zu gängigen UA-Parsing-Bibliotheken durchgeführt, bei der keine Probleme festgestellt wurden. Bei der Durchführung von Chrome-Tests im Feld sind einige Probleme aufgetreten, an deren Behebung wir arbeiten.

Was unternehmen Browser dagegen?

Sowohl Firefox als auch Chrome haben Tests durchgeführt, bei denen die aktuellen Versionen des Browsers die Hauptversion 100 melden, um mögliche Websiteausfälle zu erkennen. Dies hat zu einigen gemeldeten Problemen geführt, von denen einige bereits behoben wurden. Diese Tests werden bis zur Veröffentlichung von Version 100 fortgesetzt.

Es gibt auch Notfallstrategien, falls die Veröffentlichung von Version 100 auf stabilen Kanälen mehr Schaden an Websites anrichtet als erwartet.

Chrome-Maßnahme

In Chrome wird als Back-up-Plan ein Flag verwendet, um die Hauptversion auf „99“ zu fixieren und die tatsächliche Hauptversionsnummer im Teil für die Nebenversion des User-Agent-Strings anzugeben. Der Code wurde bereits veröffentlicht.

Die im User-Agent-String angegebene Chrome-Version folgt dem Muster <major_version>.<minor_version>.<build_number>.<patch_number>.

Wenn der Sicherungsplan verwendet wird, sieht der User-Agent-String so aus:

99.101.4988.0

In Chrome werden auch Tests durchgeführt, um sicherzustellen, dass die Meldung eines dreistelligen Werts im Teil des Strings für die Minor-Version nicht zu Fehlern führt, da die Minor-Version im Chrome-User-Agent-String seit sehr langer Zeit mit „0“ angegeben wird. Das Chrome-Team entscheidet basierend auf der Anzahl und dem Schweregrad der gemeldeten Probleme, ob die Sicherungsoption verwendet wird.

Firefox-Abhilfe

In Firefox hängt die Strategie davon ab, wie wichtig die Unterbrechung ist. Firefox hat einen Mechanismus für Website-Interventionen. Das Mozilla-Webkompatibilitätsteam kann mit diesem Mechanismus Fehler auf Websites in Firefox beheben. Wenn Sie about:compat in die URL-Leiste von Firefox eingeben, sehen Sie, was gerade behoben wird. Wenn eine Website bei der Hauptversion 100 auf einer bestimmten Domain nicht funktioniert, können Sie das Problem beheben, indem Sie stattdessen Version 99 senden.

Wenn das Problem weit verbreitet ist, können Sie die Hauptversionsnummer einfrieren. Es gibt dann verschiedene mögliche Strategien, jede mit ihren Vor- und Nachteilen. Mozilla kann die tatsächliche Versionsnummer als Minor-Versionsnummer senden, den String unverändert einfrieren oder die tatsächliche Versionsnummer über andere Parameter senden.

Jede Strategie, die den User-Agent-String komplexer macht, hat starke Auswirkungen auf das System. Lassen Sie uns gemeinsam daran arbeiten, dass es nicht noch einmal zu einem solchen Problem kommt.

Was können Sie tun, um zu helfen?

In Chrome und Firefox Nightly können Sie den Browser so konfigurieren, dass die Version als 100 gemeldet wird, und alle auftretenden Probleme melden.

Chrome so konfigurieren, dass die Hauptversion als 100 gemeldet wird

  1. Öffnen Sie chrome://flags/#force-major-version-to-100.
  2. Legen Sie die Option auf Enabled fest.

Firefox Nightly so konfigurieren, dass die Hauptversion als 100 gemeldet wird

  1. Öffnen Sie das Menü „Einstellungen“ in Firefox Nightly.
  2. Suchen Sie nach „Firefox 100“ und setzen Sie ein Häkchen bei „Firefox 100 User-Agent-String“.

Testen und Berichte senden

  • Wenn Sie für eine Website verantwortlich sind, testen Sie Ihre Website mit Chrome und Firefox 100. Prüfen Sie den Code und die Bibliotheken zum Parsen von User-Agents und achten Sie darauf, dass sie dreistellige Versionsnummern verarbeiten können. Wir haben einige der aktuellen Trends zusammengestellt.
  • Wenn Sie eine User-Agent-Parsing-Bibliothek entwickeln, fügen Sie Tests hinzu, um Versionen zu parsen, die größer oder gleich 100 sind. Unsere ersten Tests haben gezeigt, dass neuere Versionen von Bibliotheken das Problem richtig behandeln können. Das Web hat jedoch eine lange Geschichte. Wenn Sie also alte Versionen von Parsing-Bibliotheken verwenden, sollten Sie nach Problemen suchen und gegebenenfalls ein Upgrade durchführen.
  • Wenn Sie im Web surfen und Probleme mit der Hauptversion 100 feststellen, erstellen Sie einen Bericht unter webcompat.com.