Versionsnummer 100: Wieso Firefox und Chrome bald für Probleme im Web sorgen könnten
Der Stable Release von Google Chrome Version 100 ist für den 29. März 2022 geplant, Firefox wird voraussichtlich am 3. Mai 2022 nachziehen. Die dreistelligen Versionsnummern können offenbar zu Problemen auf Websites führen, die auf die Erkennung der Browserversion angewiesen sind. Laut eines Blogposts von Mozilla arbeiten Firefox und Chrome bereits an Strategien, um die Auswirkungen abzumildern.
Was ist der User-Agent-String?
Browser (und andere User-Agents wie Video-Clients oder Crawler) identifizieren sich im Web über einen Http-Header, der den sogenannten User-Agent-String enthält. Mit jedem Request, den der Browser an den Server stellt, wird dieser String mitgeschickt. Dieses User-Agent-Feld hat normalerweise folgendes Format: browserName/majorVersion.minorVersion
Es enthält Informationen über den User-Agent, also im Fall von Chrome/Firefox den Browser, von dem die Anfrage ausgeht. Diese Informationen werden von Servern verwendet, um den Umfang etwaiger Interoperabilitätsprobleme zu ermitteln, um Antworten anzupassen, um etwaige Einschränkungen des Browsers zu umgehen oder auch zu Analysezwecken (welcher Browser, welches OS).
Der Sprung von Version 9 auf 10 war offenbar problematischer
Schon vor etwa zwölf Jahren, als die Browser mit Version 10 das erste Mal eine zweistellige Versionsnummer erreicht hatten, wurden eine Reihe von Problemen mit User-Agent-Parsing-Bibliotheken identifiziert. Weil es keine einheitliche Spezifikation gibt, hat der User-Agent-String über die verschiedenen Browser hinweg verschiedene Formate. Problematisch ist außerdem, dass einige Parsing-Bibliotheken fehlerhaft sind oder hart gecodete Annahmen treffen, die die Existenz einer dreistelligen Hauptversionsnummer schlicht nicht berücksichtigen. Allerdings haben viel UA-Parser ihre Parsing-Logik seit dem Wechsel von einer ein- auf eine zweistellige Versionsnummer deutlich verbessert, sodass davon ausgegangen wird, dass das Erreichen einer dreistelligen Nummer deutlich weniger Probleme verursachen wird.
Es gibt bereits Strategien zur Schadensbegrenzung
Die Teams um beide Browser haben bereits vor mehreren Monaten angefangen, in diesem Bereich zu experimentieren, und arbeiten laut Blogpost an den in diesem Zuge identifizierten Problemen. Diese Experimente sollen bis zur Veröffentlichung der stabilen Versionen 100 beider Browser fortgeführt werden. Zudem haben Chrome und Firefox Strategien zur Schadensbegrenzung erarbeitet, für den Fall, dass der stabile Release der jeweiligen Versionen 100 mehr Schäden verursacht, als ursprünglich antizipiert. Bei Firefox soll hier ein Reparationsmechanismus zum Einsatz kommen, der statt der eigentlichen Versionnummer 100 die Versionsnummer 99 an die Parser sendet. Falls sich der Fehler als sehr verbreitet herausstellen sollte, plant Firefox, die Hauptversion zunächst bei Version 99 zu freezen und dann weitere Optionen zu testen.
Chrome verfolgt eine ähnliche Strategie. Die Abfolge des User-Agent-Strings in Chrome folgt dem Muster
major_version.minor_version.build-number.patch_number
. Bei einem Einsatz der Strategie zur Schadensbegrenzung sähe dieser also wie folgt aus: 99.101.4988.0
Befindet sich die dreistellige Zahl erst an zweiter Stelle, führt das offenbar nicht zu Problemen.
Entwickler:innen sind zum Testen aufgerufen
Um ein weiteres Vorkommen einer solchen Problematik in Zukunft zu verhindern, bittet der Mozilla-Blog Webentwickler:innen um ihre Mithilfe. Unnötige Komplexität der User-Agent-String-Thematik wirke sich negativ auf das gesamte Ökosystem aus. Sowohl in Chrome als auch in Firefox ist es bereits jetzt möglich, den Browser so zu konfigurieren, dass er sich als Major-Version 100 ausgibt. Wer dabei auf Probleme stößt, soll diese gerne melden. Wer Interesse an einem Deep Dive hat: Weiterführende Informationen zum Thema finden sich beispielsweise auf dem Blog eines Mozilla-Mitarbeiters.
Websites, deren Content vom User-Agent abhängt, gehören sowieso abgestraft. Und dass in einem solchen Fall der User eher dem Browser die Schuld gibt, ist auch berechtigt. Ich halte noch immer nichts von der Art der Versionierung, die Chrome losgetreten hat und Firefox im „Versionen-Wettkampf“ blind folgte.
Wollten nicht zumindest die Chrome Entwickler endlich den User-Agent obsolet machen, indem sie in einfrieren? Es wird Zeit, dass stattdessen die einheitlicheren und Datenschutz-freundlicheren UA-CH als Standard finalisiert wird und überall Einzug hält.